IP Library Granted Patent US 9,032,133
Granted Patent B2
US 9,032,133 · App. 14/494,504 · Granted May 12, 2015

High availability virtual machine cluster

Inventors: Rene W. Schmidt (Aarhus, DK); Sridhar Rajagopal (Mountain View, CA)
Assignee: VMware, Inc.
G06F11/203G06F12/08G06F11/2033G06F11/2035G06F11/2046G06F9/455G06F9/45558G06F11/1084G06F2009/45587
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,032,133
App. No.
14/494,504
Granted
May 12, 2015
Kind
B2
Abstract

One embodiment of the present invention is a system including: (a) plural virtualization systems configured in a cluster; (b) storage accessible to each virtualization system of the cluster, wherein for each virtual machine operative in a virtualization system of the cluster, the storage maintains a representation of virtual machine state that includes at least a description of a hardware system virtualized and an image of virtualized memory state for the virtual machine; and (c) a failover system that, responsive to an interruption of, or on, a particular one of the virtualization systems, transitions at least one affected virtual machine to another virtualization system of the cluster and resumes computations of the transitioned virtual machine based on state encoded by a corresponding one of the virtual machine states represented in the storage.

Claims (72)

1. A system comprising:

plural virtualization systems configured in a cluster for operations of virtual machines;

storage shared by the virtualization systems of the cluster, wherein the storage maintains encapsulated representations of virtual machine state of the virtual machines, wherein each of the encapsulated representations encodes at least one or more virtual disks for a particular virtual machine of the cluster; and

a failover system that transitions at least one virtual machine affected by an interruption to another virtualization system of the cluster.

2. The system of claim 1 , wherein each of the encapsulated representations is configured to limit guest access to data residing in the one or more virtual disks.

3. The system of claim 1 , wherein one of the encapsulated representations of virtual machine state includes at least a description of a hardware system virtualized and an image of virtualized memory state for a virtual machine, and wherein the transitioning by the failover system includes:

starting a new instance of the affected virtual machine using the virtualized hardware system description; and

at least partially defining state of the new instance using the image of virtualized memory state.

4. The system of claim 1 , wherein one of the encapsulated representations of virtual machine state includes at least a description of a hardware system virtualized and an image of virtualized memory state for a virtual machine, and wherein the image of virtualized memory state for a particular virtual machine is encoded in a volume of the storage that is distinct from, and not commingled with, storage used to encode an image of virtualized memory state for any other virtual machine.

5. The system of claim 1 , wherein each of the encapsulated representations encodes at least a description of a hardware system virtualized and backing state data of its corresponding virtual machine

6. The system of claim 1 ,

wherein the encapsulated representations are distinct from, and are not commingled with, each other, and wherein each of the respective volumes of the storage is configured for exclusive block level access in connection with operation of its corresponding virtual machine.

7. The system of claim 1 ,

wherein the encapsulated representations further encode state of one or more virtualized storage resources employed by the corresponding virtual machine

8. The system of claim 1 ,

wherein the encapsulated representations further encode one or more snapshots of virtual machine state in addition to a current state.

9. The system of claim 1 , wherein the failover system includes:

an availability agent associated with each virtualization system of the cluster, wherein respective availability agents maintain identifiers for respective encapsulated representations of virtual machine state for at least those ones of the virtual machines which the associated virtualization system may be called upon to continue computations.

10. The system of claim 9 ,

wherein the availability agents together maintain a coherent replicated representation of identifiers for the encapsulated representations of virtual machine state.

11. The system of claim 9 ,

wherein the availability agents each maintain, for at least those virtual machines executing on another virtualization system of the cluster, identifiers for the respective encapsulated representations of virtual machine state in the storage.

12. The system of claim 9 ,

wherein, for each virtual machine executing on one of the virtualization systems of the cluster, one of the availability agents pre-identifies its corresponding virtualization system as the primary failover host.

13. The system of claim 9 , further comprising:

a provisioning mechanism that tracks, for each virtual machine, a set of resource requirements, the provisioning mechanism admitting virtual machine computations to the cluster based on an admission control policy that, consonant with the resource requirements of virtual machines provisioned to any particular set of virtualization systems, assures sufficient excess capacity on other virtualization systems of the cluster to support, in the event of interruption of the particular set, transition of all virtual machines operative thereon to the other virtualization systems of the cluster.

14. The system of claim 13 ,

wherein the resource requirements include both computational and memory requirements.

15. The system of claim 13 ,

wherein the admission control policy conservatively estimates, for each resource requirement, a worst case capacity sufficient to support the most resource intense virtual machine operative in the cluster, and based on the estimated worst case capacity requirements admits new virtual machine computations only if sufficient excess capacity exists on the virtualization systems of the cluster to support, in the event of interruption of the particular set of virtualization systems, all virtual machines operative thereon.

16. The system of claim 13 , wherein the particular set is selected based on one or more of:

number of interruptions or failures to be tolerated; and

specialized resources and/or connectivity of any particular virtualization system of the cluster.

17. The system of claim 13 ,

wherein the particular set includes at least the most heavily provisioned virtualization system.

18. The system of claim 13 ,

wherein the particular set is sufficient to span multiple virtualization system failures.

19. The system of claim 1 , further comprising:

a distributed resource scheduling mechanism that assigns virtual machines to virtualization systems based on actual runtime load conditions and precomputes, for each virtual machine, a preferred alternative virtualization system based on the actual runtime load conditions.

20. The system of claim 1 ,

wherein the storage includes a storage area network (SAN).

21. The system of claim 1 ,

wherein the storage is configured as network attached storage (NAS) or is interfaced using a small computer systems interface over TCP/IP (iSCSI) protocol.

22. The system of claim 1 ,

wherein the virtualization systems each execute on an underlying hardware platform; and

wherein the interruption includes one or more of:

a failure of the underlying hardware platform or connectivity of the underlying hardware platform with a network, device or resource;

a failure of the particular virtualization system, and

a failure of the virtual machine to be transitioned.

23. The system of claim 1 ,

wherein the interruption includes scheduled or unscheduled power down of the virtual machine to be transitioned, of or of an underlying hardware platform.

24. A method of operating a cluster of virtualization systems, the method comprising:

maintaining, for virtual machines executing on the virtualization systems of the cluster, encapsulated representations of virtual machine state in storage shared by the virtualization systems of the cluster; and

transitioning at least one of the virtual machines to another virtualization system of the cluster,

wherein each of the encapsulated representations encodes one or more virtual disks for a particular virtual machine of the cluster.

25. The method of claim 24 , further comprising configuring each of the

encapsulated representation to limit guest access to data residing in the one or more virtual disks.

26. The method of claim 24 ,

wherein the transitioning is in response to an interruption of, or on, a particular one of the virtualization systems.

27. The method of claim 24 ,

wherein the encapsulated representations are distinct from, and are not commingled with, each other, and

further comprising configuring respective ones of the encapsulated representations for exclusive block level access in connection with operation of a corresponding one of the virtual machines

28. A non-transitory computer readable storage medium embodying computer software implementing a method of operating a cluster of virtualization systems, the method comprising:

maintaining, for virtual machines executing on the virtualization systems of the cluster, encapsulated representations of virtual machine state in storage shared by the virtualization systems of the cluster; and

transitioning at least one of the virtual machines to another virtualization system of the cluster,

wherein each of the encapsulated representation encodes one or more virtual disks for a particular virtual machine of the cluster.

29. The computer readable storage medium of claim 28 , the method further comprising configuring each of the encapsulated representation to limit guest access to data residing in the one or more virtual disks.

30. The computer readable storage medium of claim 28 ,

wherein the transitioning is in response to an interruption of, or on, a particular one of the virtualization systems.

31. The computer readable storage medium of claim 28 ,

wherein the encapsulated representations are distinct from, and are not commingled with, each other, and

wherein the method further comprises configuring respective ones of the encapsulated representations for exclusive block level access in connection with operation of a corresponding one of the virtual machines.

Assignments (1)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
Continuity (4)
Continuation 14047963 · Oct 7, 2013
Continuation 12017255 · Jan 21, 2008
Provisional Application 60887958 · Feb 2, 2007
Related Publication 20150058663A1 · Feb 26, 2015