Virtual mode execution manager
US-12118376-B2 · Oct 15, 2024 · US
US9720717B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9720717-B2 |
| Application number | US-201313831412-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 14, 2013 |
| Priority date | Mar 14, 2013 |
| Publication date | Aug 1, 2017 |
| Grant date | Aug 1, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Techniques are disclosed relating to enabling virtual machines to access data on a physical recording medium. In one embodiment, a computing system provides a logical address space for a storage device to an allocation agent that is executable to allocate the logical address space to a plurality of virtual machines having access to the storage device. In such an embodiment, the logical address space is larger than a physical address space of the storage device. The computing system may then process a storage request from one of the plurality of virtual machines. In some embodiments, the allocation agent is a hypervisor executing on the computing system. In some embodiments, the computing system tracks utilizations of the storage device by the plurality of virtual machines, and based on the utilizations, enforces a quality of service level associated with one or more of the plurality of virtual machines.
Opening claim text (preview).
What is claimed is: 1. A method, comprising: a computing system establishing a logical address space for a storage device, and maintaining a map that associates logical addresses of the logical address space with physical storage locations of data stored on the storage device; the computing system allocating regions of the logical address space to respective virtual machines hosted within a virtualization environment of the computing system, wherein allocating a first region of the logical address space to a particular virtual machine comprises providing relative addresses to the particular virtual machine, each relative address corresponding to a respective logical address in the first region of the logical address space and being different from the corresponding logical address; and the computing system processing a storage request from the particular virtual machine, by: performing a first translation to determine a logical address for the storage request, the first translation based on a relative address provided to the particular virtual machine and an identifier associated with the particular virtual machine, performing a second translation to associate the determined logical address for the storage request in the first translation with a physical storage location on the storage device by use of the map, and processing the storage request at the storage device using the determined logical address for the storage request and the physical storage location associated with the determined logical address. 2. The method of claim 1 , wherein providing the relative addresses to the particular virtual machine comprises exposing the first region of the logical address space to the particular virtual machine such that logical addresses other than the logical addresses within the first region are not exposed to the particular virtual machine. 3. The method of claim 2 further comprising disabling a collision prevision monitor of a hypervisor of the virtual machines. 4. The method of claim 1 , wherein the relative addresses provided to the particular virtual machine are of a different size than the logical addresses of the logical address space. 5. The method of claim 4 , wherein each of the relative addresses provided to the virtual machine comprises a respective logical address of the logical address space and a virtual machine identifier of the particular virtual machine. 6. The method of claim 1 , wherein: the first translation is performed by a storage driver; and wherein the second translation is performed by the storage device. 7. An apparatus, comprising: a storage controller configured to process storage requests directed to a storage device, wherein processing the storage requests comprises associating physical addresses of data stored within the storage device with logical addresses of a logical address space, the storage controller comprising one of a circuit, a programmable logic circuit, and computer-readable instructions stored on a non-transitory storage medium; an allocation agent configured to allocate portions of the logical address space to virtual machines managed by a hypervisor, wherein allocating the portions comprises creating identifiers for the virtual machines, each identifier comprising a first portion and a second portion, wherein the first portion of each identifier comprises a respective logical address of the logical address space, and wherein the second portion of each identifier comprises a virtual machine identifier; and a virtual machine storage driver configured to: receive a storage request directed to the storage device from a virtual machine, the storage request associated with an identifier having a first portion and a second portion, derive a logical address from the first portion and the second portion of the identifier associated with the storage request, modify the storage request to include the derived logical address, and issue the storage request, including the derived logical address, to the storage controller, wherein, to process the storage request, the storage controller is configured to associate a physical address of data stored within the storage device with the derived logical address included with the storage request. 8. The apparatus of claim 7 , wherein: the second portion of the identifier comprises an address offset for the virtual machine; and the virtual machine storage driver is configured to derive the logical address by applying the address offset to the logical address of the first portion of the identifier. 9. The apparatus of claim 7 , wherein: the storage controller is further configured to maintain a map data structure; the map data structure comprises translations associated with the virtual machine; the translations are configured to associate logical addresses allocated to the virtual machine with data of the virtual machine stored on the storage device; and the virtual machine storage driver is further configured to create a snapshot of the virtual machine by: allocating logical addresses for the snapshot, and creating translations in the map data structure configured to duplicate the translations associated with the virtual machine such that the map data structure associates the data of the virtual machine with the logical addresses allocated to the virtual machine and the logical addresses allocated for the snapshot. 10. The apparatus of claim 7 , wherein the allocation agent is configured to create a set of identifiers for the virtual machine, the set including identifiers that correspond to the portion of the logical address space allocated to the virtual machine and excluding identifiers that correspond to logical addresses outside of the portion of the logical address space allocated to the virtual machine. 11. The apparatus of claim 7 , wherein the virtual machine storage driver is configured to: receive requests within a guest operating system of the virtual machine; and send the received requests directly to the storage controller, independent of one or more layers of an input/output (I/O) stack of the guest operating system. 12. The apparatus of claim 7 , wherein the virtual machine storage driver is further configured to: determine a utilization of the storage device by the virtual machine based on storage requests received from the virtual machine; and queue storage requests received from the virtual machine such that the received storage requests are sent to the storage controller for execution based on the determined utilization of the storage device by the virtual machine and quality of service level assigned to the virtual machine. 13. The apparatus of claim 7 , wherein the storage device is a solid-state device. 14. An apparatus, comprising: a first means for storing data within physical storage locations of a storage medium and for associating the physical storage locations with logical identifiers of a logical address space corresponding to the storage medium; a second means for allocating regions of the logical address space to respective virtual machines managed by a hypervisor, wherein allocating a region of the logical address space to a virtual machine comprises providing relative addresses to the virtual machine, each relative address associated with a corresponding logical identifier of the logical address space and being different from the corresponding logical identifier; and means for identifying a storage request of the virtual machine directed to the first means, for performing a first translation to derive a logical identifier from a relative address of the identified storage request, and for sending t
I/O management, e.g. providing access to device drivers or storage · CPC title
Hypervisors; Virtual machine monitors · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.