IP Library Granted Patent US 9,983,998
Granted Patent B2
US 9,983,998 · App. 15/145,109 · Granted May 29, 2018

Transparent host-side caching of virtual disks located on shared storage

Inventors: Thomas A Phelan (San Francisco, CA); Mayank Rawat (Sunnyvale, CA); Deng Liu (Mountain View, CA); Kiran Madnani (Santa Clara, CA); Sambasiva Bandarupalli (Sunnyvale, CA)
Assignee: VMWARE, Inc.
G06F12/0866G06F3/061G06F3/0631G06F3/0685G06F9/455G06F9/45558G06F9/5088G06F12/0871G06F2009/45579G06F2212/217
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,983,998
App. No.
15/145,109
Granted
May 29, 2018
Kind
B2
Abstract

Techniques for using a cache to accelerate virtual machine (VM) I/O are provided. In one embodiment, a host system can intercept an I/O request from a VM running on the host system, where the I/O request is directed to a virtual disk residing on a shared storage device. The host system can then process the I/O request by accessing a cache that resides on one or more cache devices directly attached to the host system, where the accessing of the cache is transparent to the VM.

Claims (39)

1. A host system comprising:

a processor;

one or more cache devices; and

a non-transitory computer readable medium having stored thereon program code that, when executed by the processor, causes the processor to:

intercept an I/O request from a VM running on the host system, the I/O request being directed to a virtual disk residing on a shared storage device; and

process the I/O request by accessing a cache that resides on the one or more cache devices, the accessing of the cache being transparent to a guest operating system of the VM,

wherein the VM or the virtual disk is allocated a portion of the cache when the VM is powered on, and

wherein the portion of the cache allocated to the VM or the virtual disk is freed when the VM is powered off or suspended.

2. The host system of claim 1 wherein the program code that causes the processor to process the I/O request by accessing the cache comprises program code that causes the processor to invoke a caching module that has been preconfigured for use with the VM or the virtual disk.

3. The host system of claim 2 wherein the caching module is a modular component that is implemented by a third-party developer.

4. The host system of claim 1 wherein the cache is spread across a plurality of cache devices that are pooled into a single logical resource by applying a common file system to the plurality of cache devices.

5. The host system of claim 4 wherein the plurality of cache devices are heterogeneous devices.

6. The host system of claim 1 wherein the portion of the cache allocated to the VM or the virtual disk when the VM is powered on has a preconfigured minimum size and a preconfigured maximum size.

7. The host system of claim 1 wherein the allocated portion is further freed when the VM is migrated to another host system.

8. The host system of claim 1 wherein the one or more cache devices are distinct from the shared storage device.

9. A method for using a cache to accelerate virtual machine (VM) I/O, the method comprising:

intercepting an I/O request from a VM running on a host system, the I/O request being directed to a virtual disk residing on a shared storage device; and

processing the I/O request by accessing a cache that resides on one or more cache devices directly attached to the host system, the accessing of the cache being transparent to a guest operating system of the VM,

wherein the VM or the virtual disk is allocated a portion of the cache when the VM is powered on, and

wherein the portion of the cache allocated to the VM or the virtual disk is freed when the VM is powered off or suspended.

10. The method of claim 9 wherein processing the I/O request by accessing the cache comprises invoking a caching module that has been preconfigured for use with the VM or the virtual disk.

11. The method of claim 10 wherein the caching module is a modular component that is implemented by a third-party developer.

12. The method of claim 9 wherein the cache is spread across a plurality of cache devices that are pooled into a single logical resource by applying a common file system to the plurality of cache devices.

13. The method of claim 12 wherein the plurality of cache devices are heterogeneous devices.

14. The method of claim 9 wherein the portion of the cache allocated to the VM or the virtual disk when the VM is powered on has a preconfigured minimum size and a preconfigured maximum size.

15. The method of claim 9 wherein the allocated portion is further freed when the VM is migrated to another host system.

16. The method of claim 9 wherein the one or more cache devices are distinct from the shared storage device.

17. A non-transitory computer readable storage medium having stored thereon computer software executable by a processor of a host system, the computer software embodying a method for using a cache to accelerate VM I/O, the method comprising:

intercepting an I/O request from a VM running on the host system, the I/O request being directed to a virtual disk residing on a shared storage device; and

processing the I/O request by accessing a cache that resides on one or more cache devices directly attached to the host system, the accessing of the cache being transparent to a guest operating system of the VM,

wherein the VM or the virtual disk is allocated a portion of the cache when the VM is powered on, and

wherein the portion of the cache allocated to the VM or the virtual disk is freed when the VM is powered off or suspended.

18. The non-transitory computer readable storage medium of claim 17 wherein processing the I/O request by accessing the cache comprises invoking a caching module that has been preconfigured for use with the VM or the virtual disk.

19. The non-transitory computer readable storage medium of claim 18 wherein the caching module is a modular component that is implemented by a third-party developer.

20. The non-transitory computer readable storage medium of claim 17 wherein the cache is spread across a plurality of cache devices that are pooled into a single logical resource by applying a common file system to the plurality of cache devices.

21. The non-transitory computer readable storage medium of claim 20 wherein the plurality of cache devices are heterogeneous devices.

22. The non-transitory computer readable storage medium of claim 17 wherein the portion of the cache allocated to the VM or the virtual disk when the VM is powered on has a preconfigured minimum size and a preconfigured maximum size.

23. The non-transitory computer readable storage medium of claim 17 wherein the allocated portion is further freed when the VM is migrated to another host system.

24. The non-transitory computer readable storage medium of claim 17 wherein the one or more cache devices are distinct from the shared storage device.

Assignments (1)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
Continuity (3)
Continuation 13922985 · Jun 20, 2013
Provisional Application 61693591 · Aug 27, 2012
Related Publication 20160246503A1 · Aug 25, 2016