Patent ID: 8924967

Claim:
A system for maintaining high availability of a plurality of virtual machines in a fault domain, the system comprising: a memory for storing a list identifying a plurality of virtual machines within a fault domain that are to be maintained in an operating state; a network communication interface configured to receive heartbeat messages from a plurality of hosts executing the virtual machines; and a processor coupled to the memory and programmed to: associate a datastore with a host by ranking a plurality of datastores based on their accessibility and discarding a datastore with an accessibility score that is below a threshold value, wherein the accessibility score is based on at least two of the following factors: 1) quantity of hosts that have access to the datastore, 2) whether the datastore is associated with the same storage device as another datastore, and 3) the file system type of the datastore; monitor the heartbeat messages received from the plurality of hosts at predetermined intervals and determine the host, within the plurality of hosts, from which the network communication interface has not received a heartbeat message within a first predetermined duration to identify the host as an unreachable host; after the unreachable host is identified, designate the unreachable host as a dead host when no response to a previously sent ping message is received from the unreachable host; and if the dead host has stored heartbeat data in the associated datastore within a second predetermined duration, monitor a power-on list stored in the associated datastore by the dead host, wherein the power-on list indicates virtual machines being executed by the dead host, and change the status of the dead host.