Native storage quality of service for virtual machines
AssigneeTintri by DDN, Inc.
InventorsSumedh V. Sakdeo, Edward K. Lee, Brandon W. Salmon
Life of this patent
Estimating the term…
Abstract
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.
Claims20
A storage system comprising:
- a memory configured to store for each of a plurality of virtual machines a corresponding virtual machine-specific input/output (I/O) request queue included in a set of queues;
- and
- a processor coupled to the memory and configured to:
- receive at the storage system from a hypervisor a request to create a file;
- in response to the request to create the file, determine at the storage system a virtual machine associated with the file;
- store in a data structure stored at the storage system data representing the determined association between the file and the virtual machine, wherein the created file is included in a plurality of files stored at the storage system and each file comprising at least a subset of the files in the plurality of files is associated with a corresponding virtual machine with which each file is associated;
- receive I/O requests, each received I/O request being associated with a corresponding file identified in the received I/O request;
- for each received I/O request, use the corresponding file identified in the received I/O request and data stored in the data structure to identify the corresponding virtual machine with which the file is associated and place the I/O request in the virtual machine-specific I/O request queue corresponding to the corresponding virtual machine with which the file is associated;
- and
- schedule the received I/O requests to be pulled from the set of request queues and added to a corresponding storage operation pipeline based at least in part on a per virtual machine quality of service parameter.
A method comprising:
- storing, for each of a plurality of virtual machines, a corresponding virtual machine-specific input/output (I/O) request queue included in a set of request queues;
- receiving at a storage system from a hypervisor a request to create a file;
- in response to the request to create the file, determining at the storage system a virtual machine associated with the file;
- storing in a data structure stored at the storage system data representing the determined association between the file and the virtual machine, wherein the created file is included in a plurality of files stored at the storage system and each file comprising at least a subset of the files in the plurality of files is associated with a corresponding virtual machine with which each file is associated;
- receiving I/O requests, each received I/O request being associated with a corresponding file identified in the received I/O request;
- for each received I/O request, using the corresponding file identified in the I/O request and data stored in the data structure to identify the corresponding virtual machine with which the file is associated and placing the received I/O request in the virtual machine-specific I/O request queue corresponding to the corresponding virtual machine with which the file is associated;
- and
- scheduling the received I/O requests to be pulled from the set of request queues and added to a corresponding storage operation pipeline based at least in part on a per virtual machine quality of service parameter.
A computer program product embodied in a non-transitory computer readable storage medium and comprising computer instructions for:
- storing, for each of a plurality of virtual machines, a corresponding virtual machine-specific input/output (I/O) request queue included in a set of request queues;
- receiving at a storage system from a hypervisor a request to create a file;
- in response to the request to create the file, determining at the storage system a virtual machine associated with the file;
- storing in a data structure stored at the storage system data representing the determined association between the file and the virtual machine, wherein the created file is included in a plurality of files stored at the storage system and each file comprising at least a subset of the files in the plurality of files is associated with a corresponding virtual machine with which each file is associated;
- receiving I/O requests, each received I/O request being associated with a corresponding file identified in the received I/O request;
- for each received I/O request, using the corresponding file identified in the received I/O request and data stored in the data structure to identify the corresponding virtual machine with which the file is associated and placing the received I/O request in the virtual machine-specific I/O request queue corresponding to the corresponding virtual machine with which the file is associated;
- and
- scheduling the received I/O requests to be pulled from the set of request queues and added to a corresponding storage operation pipeline based at least in part on a per virtual machine quality of service parameter.
Dependencies are inferred from the claim text.