IP Library › Granted Patent US 9,250,827
Granted Patent B2
US 9,250,827 · App. 13/764,516 · Granted Feb 2, 2016

Storing checkpoint file in high performance storage device for rapid virtual machine suspend and resume

Inventor: Daniel James Beveridge (Apollo Beach, FL)
Assignee: VMware, Inc.
G06F3/0655G06F3/0689G06F9/00G06F11/14G06F12/084G06F12/0813G06F12/0868G06F12/126G06F11/1438G06F2201/815G06F2212/152G06F2212/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,250,827
App. No.
13/764,516
Granted
Feb 2, 2016
Kind
B2
Abstract

A method of enabling “fast” suspend and “rapid” resume of virtual machines (VMs) employs a cache that is able to perform input/output operations at a faster rate than a storage device provisioned for the VMs. The cache may be local to a computer system that is hosting the VMs or may be shared cache commonly accessible to VMs hosted by different computer systems. The method includes the steps of saving the state of the VM to a checkpoint file stored in the cache and locking the checkpoint file so that data blocks of the checkpoint file are maintained in the cache and are not evicted, and resuming execution of the VM by reading into memory the data blocks of the checkpoint file stored in the cache.

Claims (40)

1. A method of resuming execution of a virtual machine (VM) from a suspended state in one of a plurality of host computers each having a local cache and connected to a shared cache, said method comprising:

determining whether a suspended image of the VM is stored in the shared cache;

if the suspended image of the VM is stored in the shared cache, selecting one of the host computers as a host computer for the VM and issuing a command to the selected host computer to resume execution of the VM therein; and

if the suspended image of the VM is not stored in the shared cache, issuing a command to resume execution of the VM to one of the host computers that has the local cache in which the suspended image of the VM is stored to resume execution of the VM therein.

2. The method of claim 1 , wherein, if the suspended image of the VM is stored in the shared cache, one of the host computers is selected as the host computer according to resource availability.

3. The method of claim 1 , further comprising:

if the suspended image of the VM is stored in the shared cache, increasing available capacity of the shared cache by the size of the suspended image of the VM after the execution of the VM has been resumed; and

if the suspended image of the VM is not stored in the shared cache, increasing available capacity of the local cache by the size of the suspended image of the VM after the execution of the VM has been resumed.

4. The method of claim 1 , further comprising:

if the suspended image of the VM is not stored in the shared cache, after execution of the VM is resumed in one of the host computers, migrating the VM to another one of the host computers for execution therein.

5. The method of claim 1 , wherein the local caches are solid state drives (SSDs) and the shared cache is an SSD array.

6. A non-transitory computer readable medium comprising instructions for causing a computer system to carry out a method of resuming execution of a virtual machine (VM) from a suspended state in one of a plurality of host computers each having a local cache and connected to a shared cache, said method comprising:

determining whether a suspended image of the VM is stored in the shared cache;

if the suspended image of the VM is stored in the shared cache, selecting one of the host computers as a host computer for the VM and issuing a command to the selected host computer to resume execution of the VM therein; and

if the suspended image of the VM is not stored in the shared cache, issuing a command to resume execution of the VM to one of the host computers that has the local cache in which the suspended image of the VM is stored to resume execution of the VM therein.

7. The non-transitory computer readable medium of claim 6 , wherein, if the suspended image of the VM is stored in the shared cache, one of the host computers is selected as the host computer according to resource availability.

8. The non-transitory computer readable medium of claim 6 , wherein the method further comprises:

if the suspended image of the VM is stored in the shared cache, increasing available capacity of the shared cache by the size of the suspended image of the VM after the execution of the VM has been resumed; and

if the suspended image of the VM is not stored in the shared cache, increasing available capacity of the local cache by the size of the suspended image of the VM after the execution of the VM has been resumed.

9. The non-transitory computer readable medium of claim 6 , wherein the method further comprises:

if the suspended image of the VM is not stored in the shared cache, after execution of the VM is resumed in one of the host computers, migrating the VM to another one of the host computers for execution therein.

10. The non-transitory computer readable medium of claim 6 , wherein the local caches are solid state drives (SSDs) and the shared cache is an SSD array.

11. A virtualized computer system comprising:

a plurality of host computers each having one or more virtual machines (VMs) running therein and a local cache;

a shared cache accessible by the host computers, and a management server configured to carry out steps of resuming execution of a VM from a suspended state, the steps including:

determining whether a suspended image of the VM is stored in the shared cache,

if the suspended image of the VM is stored in the shared cache, selecting one of the host computers as a host computer for the VM and issuing a command to the selected host computer to resume execution of the VM therein, and

if the suspended image of the VM is not stored in the shared cache, issuing a command to resume execution of the VM to one of the host computers that has the local cache in which the suspended image of the VM is stored to resume execution of the VM therein.

12. The virtualized computer system of claim 11 , further comprising a storage device accessible by the host computers, the storage device having higher input/output latency and lower input/output throughput than the shared cache.

13. The virtualized computer system of claim 12 , wherein the storage device includes rotating disks and the shared cache does not include rotating disks.

14. The virtualized computer system of claim 13 , wherein the storage device is a disk-based storage array and the shared cache is a solid state drive (SSD).

15. The virtualized computer system of claim 14 , wherein the local cache is an SSD.

16. The virtualized computer system of claim 11 , wherein, if the suspended image of the VM is stored in the shared cache, one of the host computers is selected as the host computer according to resource availability.

17. The virtualized computer system of claim 16 , wherein the steps further include:

if the suspended image of the VM is stored in the shared cache, increasing available capacity of the shared cache by the size of the suspended image of the VM after the execution of the VM has been resumed.

18. The virtualized computer system of claim 16 , wherein the steps further include:

if the suspended image of the VM is not stored in the shared cache, increasing available capacity of the local cache by the size of the suspended image of the VM after the execution of the VM has been resumed.

19. The virtualized computer system of claim 16 , wherein the steps further include:

if the suspended image of the VM is not stored in the shared cache, after execution of the VM is resumed in one of the host computers, migrating the VM to another one of the host computers for execution therein.

20. The virtualized computer system of claim 19 , wherein said another one of the host computers is selected based on resource availability.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2013
From: BEVERIDGE, DANIEL JAMES
To: VMWARE, INC.
Reel/Frame 029792/0118 →
Continuity (2)
Provisional Application 61849808 · Dec 14, 2012
Related Publication 20140173213A1 · Jun 19, 2014