Virtual Machine-Aware Storage System for Per-VM QoS
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional storage systems lack native awareness of virtual machines (VMs), making it difficult to provide performance isolation and protection, leading to imbalances in resource allocation and potential starvation among VMs, as they are unaware of which I/O requests belong to which VMs, and rely on inadequate performance metrics like IOPS that do not account for varying request sizes.
Innovation Solution
A virtual machine-aware storage system that maintains separate queues for read and write requests from hypervisors, maps requests to VM-specific queues based on QoS parameters, and uses a scheduler to admit requests to a pipeline according to these parameters, integrating with hypervisor environments to track file associations with VMs and model storage performance across different request sizes to provide per-VM Quality of Service (QoS).
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If traditional storage systems process file system requests without VM awareness, then system simplicity is maintained, but performance isolation and per-VM QoS cannot be provided
Solution Approach 1:
The patent introduces a VM identification module as an intermediary component that bridges the gap between traditional file system requests and VM-specific QoS requirements. This module extracts VM identifiers from requests without fundamentally redesigning the storage system architecture, enabling performance isolation while maintaining relative system simplicity.
Solution Approach 2:
The storage system is segmented into distinct functional modules: a VM identification module that extracts VM information from requests, a QoS parameter determination module that selects appropriate metrics, and a performance monitoring module that enforces QoS policies. This segmentation allows per-VM QoS to be implemented without requiring complete system redesign.
2Ease of operation
If IOPS is used as the performance metric for QoS, then user familiarity is maintained, but accurate performance measurement is compromised due to varying request sizes
Solution Approach 1:
The patent implements dynamic metric selection that adapts to different VM workloads and request characteristics. The system can switch between IOPS and throughput metrics based on the specific QoS requirements and workload patterns, providing both user familiarity and measurement accuracy as needed.
Solution Approach 2:
The system changes the performance measurement parameter based on the specific QoS scenario. For throughput-sensitive applications, it uses throughput (bytes/sec) as the metric, while for latency-sensitive applications, it uses IOPS. This parameter flexibility ensures accurate performance measurement while maintaining user understanding.
3Device complexity
If storage systems do not track per-VM I/O requests, then implementation complexity is reduced, but resource allocation imbalance and starvation occur
Solution Approach 1:
The VM identification module performs preliminary extraction of VM identifiers from incoming file system requests before the requests are processed by the storage system. This early identification enables subsequent per-VM QoS enforcement without requiring complex tracking mechanisms throughout the entire request processing chain.
Solution Approach 2:
The patent implements a universal QoS framework that can handle multiple VMs with different performance requirements using a common infrastructure. The same storage system can simultaneously provide performance isolation for multiple VMs, prevent resource monopolization, and ensure fair allocation without requiring separate tracking systems for each VM.
Data Source
AI summary
Techniques to satisfy quality of service (QoS) requirements on a per virtual machine basis natively in a storage system are disclosed. In various embodiments, for each of a plurality of virtual machines a corresponding input/output (I/O) request queue is stored on the storage system. Requests are scheduled to be pulled from the respective request queues and added to a corresponding storage operation pipeline at the storage system in an order determined based at least in part on a per virtual machine quality of service parameter.


