Managing data input/output operations
First Claim
Patent Images
1. A method, comprising:
- provisioning respective amounts of cache resources to virtual machines operating on a host computing device, such that a first one of the virtual machines is provisioned a first amount of cache resources and a second one of the virtual machines is provisioned a second, different amount of cache resources;
modifying the cache resources provisioned to the first virtual machine by assigning a set of cache storage locations comprising data of another virtual machine to the first virtual machine; and
servicing storage requests of the virtual machines by use of cache storage resources of the host computing device in accordance with the cache resources provisioned to the respective virtual machines, wherein servicing the storage requests of the virtual machines comprises;
blocking the first virtual machine from reading data stored on the set of cache storage locations;
allowing read access to a cache storage location of the set of cache storage locations in response the first virtual machine writing data to the cache storage location.
10 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for managing data input/output operations are described that include virtual machines operating with a shared storage within a host. In such a system, a computer-implemented method is provided for dynamically provisioning cache storage while operating system applications continue to operate, including stalling the virtual machine'"'"'s local cache storage operations, changing the provision of cache storage size; and resuming the operations of the virtual machine.
-
Citations
21 Claims
-
1. A method, comprising:
-
provisioning respective amounts of cache resources to virtual machines operating on a host computing device, such that a first one of the virtual machines is provisioned a first amount of cache resources and a second one of the virtual machines is provisioned a second, different amount of cache resources; modifying the cache resources provisioned to the first virtual machine by assigning a set of cache storage locations comprising data of another virtual machine to the first virtual machine; and servicing storage requests of the virtual machines by use of cache storage resources of the host computing device in accordance with the cache resources provisioned to the respective virtual machines, wherein servicing the storage requests of the virtual machines comprises; blocking the first virtual machine from reading data stored on the set of cache storage locations; allowing read access to a cache storage location of the set of cache storage locations in response the first virtual machine writing data to the cache storage location. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An apparatus, comprising:
-
a virtual storage driver embodied as computer-readable instructions stored on a non-transitory storage medium of a computing device, the virtual storage driver configured to provide caching services to a plurality of virtual machines by use of a non-volatile storage device; a cache provisioner module configured to allocate storage capacity of the non-volatile storage device to respective virtual machines for storage of cache data of the respective virtual machines; and a cache map module configured to map virtual cache addresses of the virtual machines to storage addresses on the non-volatile storage device, and to control access to data of the virtual machines, wherein the cache provisioner module is configured to assign a cache storage location to a particular virtual machine, and to block the particular virtual machine from reading data stored on the cache storage location until an operation to write data of the particular virtual machine to the cache storage location. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A non-transitory computer readable storage medium having program instructions stored thereon, wherein the program instructions are executable by a computing system to cause the computing system to perform operations, comprising:
-
assigning chunks of shared cache storage to respective virtual machines; modifying a number of chunks allocated to the respective virtual machines in response to cache storage requirements of the virtual machines, wherein modifying the number of chunks allocated to the respective virtual machines comprises, assigning a chunk of the shared virtual machine cache previously assigned to another virtual machine to a first virtual machine, and restricting access, by the first virtual machine, to portions of the chunk corresponding to write operations of the first virtual machine; and representing variably sized cache storage resources corresponding to the chunks of the shared cache storage allocated to the virtual machines as fixed-size storage devices within the respective virtual machines. - View Dependent Claims (19, 20)
-
-
21. A method, comprising:
-
allocating input/output operations (IOPs) capacity to virtual machines operating within a hypervisor, such that a first one of the virtual machines is allocated a first IOPs capacity and a second one of the virtual machines is allocated a second, different IOPs capacity; allocating cache storage capacity to the virtual machines from cache storage resources of the host computing device, including allocating a cache page to a first virtual machine that comprises data of a second virtual machine; servicing storage requests of the virtual machines by use of the cache storage capacity allocated to the virtual machines in the cache storage resources of the host computing device in accordance with the I0Ps capacity allocated to the virtual machines, wherein servicing storage requests comprises restricting read access to the cache page until data is written to the cache page by the first virtual machine.
-
Specification