VMware Cloud Community
STK2
Contributor
Contributor
Jump to solution

vSphere HA Admission Control Calculator

Hi everyone

Today I attempted to place a host into maintenance mode and received the infamous "Insufficient resources to satisfy configured failover level for vSphere HA". I worked around this by temporarily disabling Admission Control but this got me wondering how the cluster would tolerate the loss of one of the hosts.

This is what my cluster looks like:
- 2 x Dell PowerEdge R720s with 96GB memory and 2 x Intel Xeon E5-2650 CPUs (12 cores) per host
- ESXi 5.0 Update 1 + latest patches
- vSphere HA enabled
- Admission Control Enabled (set to reserve 50% of resources)
- DRS enabled
- 16 Windows VMs with CPU configurations ranging from 1 to 4 vCPUs and 1GB to 4GB Memory.

I have researched this in an attempt to ascertain what is causing the problem. To this end I put together an Excel-based calculator to determine the cluster failover capacity. The calculations are based page 22 of "vSphere Availability - ESXi 5.0".

My posting has two parts to it:

1) The attached calculator which I would be very grateful if someone would review and confirm that it is correct (hopefully it is and others will find it useful). I have protected the sheets "CPU" and "Memory" so they can be used as examples. Simply edit the host CPU/Memory details in the other sheets to match your environment. I left my cluster's details in there as I thought people could use it as an example. If you like I can clean this up.

2) A question: how will my cluster behave with the loss of one host? If the behaviour of placing one of the hosts into maintanance mode is anything to go by not all the VMs will start on the surviving hosts as the CPU requirements cannot be met. However, I have read that in a failover event HA will ignore the Admission Control Policy and attempt to start the VMs on the surviving host. Can someone please confirm this?

I hope this is clear enough. If not, I'll be happy to provide any additional information.

Thanks very much!

Sean

Message was edited by: STK2. Spelling, grammar correction. Removed Excel document (will provide updated doc in a separate reply).

Reply
0 Kudos
1 Solution

Accepted Solutions
admin
Immortal
Immortal
Jump to solution

HA admission control uses the cpu and memory reservations for vms, not the configured cpu and memory, when calculating failover capacity. You are probably using the latter in your calculations. Check the cluster's "resource allocation" tab to see the reservations on your vms (by default they are 0).

Elisha

View solution in original post

Reply
0 Kudos
4 Replies
admin
Immortal
Immortal
Jump to solution

When you put a host in maintenance mode it is effectively not part of the cluster from HA's point of view so that leaves you with only a single active host in the cluster which is why you see the "insufficient failover resources" config issue (because if that host failed HA would not be able to restart the vms on it).

To answer you question - you are correct that in the event of a failure HA will ignore the admission control policy when performing failovers (except in case of a "dedicated failover host" admission control policy - in that case HA tries to failover vms to the dedicated failover hosts if possible)

Elisha

STK2
Contributor
Contributor
Jump to solution

Hi

I have used the figures on page 22 from the vSphere Availability guide to confirm that my calculations are correct. I have added sheets for CPU and Memory balanced/unbalanced clusters.

The spreadsheet is attached. Any and all feedback is welcome.

@ Elisha: Thanks very much for taking the time to review my question and for providing the confirmation. Much appreciated.

What I do find a little confusing is that using the calculations from the vSphere Availability guide and applying them to a cluster of mine I get the following:

Current CPU Failover Capacity = -33.22%

Resources available to power on additional VMs = -83%

However, the cluster Summary tab in the client shows Current CPU Failover Capacity at 99%.

Can anyone explain why this differs? Is this because vCenter is looking at current usage rather than what the VMs are configured with? You can see my calculations on the worksheet entitled 'CPU - Working Sheet'.

Thanks very much.

Sean

Message was edited by: STK2 Removed excel spreadsheet as the calculations are correct but the values used are not.

Reply
0 Kudos
admin
Immortal
Immortal
Jump to solution

HA admission control uses the cpu and memory reservations for vms, not the configured cpu and memory, when calculating failover capacity. You are probably using the latter in your calculations. Check the cluster's "resource allocation" tab to see the reservations on your vms (by default they are 0).

Elisha

Reply
0 Kudos
STK2
Contributor
Contributor
Jump to solution

Hi Elisha

Thank you very much for clarifying this for me. I am extremely grateful. You are correct that I am using the incorrect values (assigned resources rather than reserved).

I went back to the vSphere Availability document and noted the following from page 21:

"vSphere HA uses the actual reservations of the virtual machines. If a virtual machine does not have reservations, meaning that the reservation is 0, a default of 0MB memory and 32MHz CPU is applied.

NOTE The Percentage of Cluster Resources Reserved admission control policy also checks that there are at least two vSphere HA-enabled hosts in the cluster (excluding hosts that are entering maintenance mode). If there is only one vSphere HA-enabled host, an operation is not allowed, even if there is a sufficient percentage of resources available. The reason for this extra check is that vSphere HA cannot perform failover if there is only a single host in the cluster.

Computing the Current Failover Capacity
The total resource requirements for the powered-on virtual machines is comprised of two components, CPU and memory. vSphere HA calculates these values.

  • The CPU component by summing the CPU reservations of the powered-on virtual machines. If you have not specified a CPU reservation for a virtual machine, it is assigned a default value of 32MHz (this value can be changed using the das.vmcpuminmhz advanced attribute.)
  • The memory component by summing the memory reservation (plus memory overhead) of each powered on virtual machine."

My confusion was caused by the document's use of the word "requirements" when perhaps "reservations" would have been more appropriate.

Thanks again for your help. I have a much clearer understanding of HA Admission Control policies.

Regards

Sean

Reply
0 Kudos