Virtual Machine High Availability (VMHA) ensures that VMs restart on another AHV host in the cluster if a host fails. VMHA considers RAM when calculating available resources throughout the cluster for starting VMs.
VMHA respects affinity and anti-affinity rules. For example, with VM-host affinity rules, VMHA does not start a VM pinned to AHV host 1 and host 2 on another host when those two are down unless the affinity rule specifies an alternate host.
There are two VM high availability modes:
This mode requires no configuration and is included by default when installing an AHV-based Nutanix cluster. When an AHV host becomes unavailable, the VMs that were running on the failed AHV host restart on the remaining hosts, depending on the available resources. If the remaining hosts do not have sufficient resources, some of the failed VMs may not restart.
This non-default configuration reserves space throughout the AHV hosts in the cluster to guarantee that all VMs can restart on the other hosts in the AHV cluster during a host failure. To enable Guarantee mode, select the Enable HA check box. A message then displays the amount of memory reserved and how many AHV host failures the system can tolerate.
The VMHA configuration reserved resources to protect against:
One AHV host failure. If all Nutanix containers are configured with a replication factor of 2.
Two AHV host failures, if any Nutanix container is configured with a replication factor of 3.
Admins can use the aCLI to manage protection against two AHV host failures when using replication factor 2. The command for designating the maximum number of tolerable AHV host failures is:
nutanix@CVM$acli ha.update num_host_failures_to_tolerate=X
When an unavailable AHV host comes back online after a VMHA event, VMs that were previously running there migrate back to their original host to maintain data locality.
To disable VMHA per VM, set a negative value (-1) when creating or updating the VM. This configuration removes the VM from the VMHA resource calculation.
nutanix@CVM$ acli vm.update <VM Name> ha_priority=-1
nutanix@CVM$ acli vm.create <VM Name> ha_priority=-1
This configuration does not start the VM on a new AHV host when the host where the VM was running fails. The VM starts again when the failed AHV host comes back online.