I’ve been receiving a lot of questions around slot sizes lately. Although I point everyone to my HA Deepdive post not everyone seems to understand what I am trying to explain. The foremost reason is that most people need to be able to visualize it; which is tough with slot sizes. Just to freshen up an outtake from the article:
HA uses the highest CPU reservation of any given VM and the highest memory reservation of any given VM. If there is no reservation a default of 256Mhz will be used for the CPU slot and the memory overhead will be used for the memory slot!
If VM1 has 2GHZ and 1024GB reserved and VM2 has 1GHZ and 2048GB reserved the slot size for memory will be 2048MB+memory overhead and the slot size for CPU will be 2GHZ.
Now how does HA calculate how many slots are available per host?
Of course we need to know what the slot size for memory and CPU is first. Then we divide the total available CPU resources of a host by the CPU slot size and the total available Memory Resources of a host by the memory slot size. This leaves us with a slot size for both memory and CPU. The most restrictive number is the amount of slots for this host. If you have 25 CPU slots but only 5 memory slots the amount of available slots for this host will be 5.
The first question I got was around unbalanced clusters. Unbalanced would for instance be a cluster with 5 hosts of which one contains substantially more memory than the others. What would happen to the total amount of slots in a cluster of the following specs:
Five hosts, each host has 16GB of memory except for one host(esx5) which has recently been added and has 32GB of memory. One of the VMs in this cluster has 4CPUs and 4GB of memory, because there are no reservations set the memory overhead of 325MB is being used to calculate the memory slot sizes. (It’s more restrictive than the CPU slot size.)
This results in 50 slots for esx01, esx02, esx03 and esx04. However, esx05 will have 100 slots available. Although this sounds great admission control rules the host out with the most slots as it takes the worst case scenario into account. In other words; end result: 200 slot cluster.
With 5 hosts of 16GB, (5 x 50) – (1 x 50), the result would have been exactly the same. To make a long story short: balance your clusters when using admission control!
The second question I received this week was around limiting the slotsizes with the advanced options das.slotCpuInMHz and/or das.slotMemInMB. If you need to use a high reservation for either CPU or Memory these options could definitely be useful, there is however something that you need to know. Check this diagram and see if you spot the problem, the das.slotMemInMB has been set to 1024MB.
Notice that the memory slotsize has been set to 1024MB. VM24 has a 4GB reservation set. Because of this VM24 spans 4 slots. As you might have noticed none of the hosts has 4 slots left. Although in total there are enough slots available; they are scattered and HA might not be able to actually boot VM24. Keep in mind that admission control does not take scattering of slots into account. It does count 4 slots for VM24, but it will not verify the amount of available slots per host.
To make sure you will always have enough slots and know what your current situation is Alan Renouf wrote an excellent script. This script reports the following:
Example Output:
Cluster : Production
TotalSlots : 32
UsedSlots : 10
AvailableSlots : 22
SlotNumvCPUs : 1
SlotCPUMHz : 256
SlotMemoryMB : 118
My article was a collaboration with Alan and I hope you find both article valuable. We’ve put a lot of time into making things as straight forward and simplistic as we possibly can.
The pictures work well.
Nobody has an excuse to misunderstand now…!
Excellent post. Thanks for this.
The slot information is also available in the vsphere client via cluster > Summary tab > VMware HA window > Advanced Runtime Info
Hi Duncan
I often visit your site for the simplest of explinations. The article has been very helpful. However I still have a few doubts.
A). I would like to understand how to calculate ‘Available slots’? Is it ‘Total slots in cluster’ – ‘Used slots’?
B). What is the meaning of ‘Total good hosts in a cluster’?
Thank you
Chandy
1) yes
2) hosts that are good, non-failed.
I however have something different displayed in my enviornment. Seems like the formula ‘Available slots’ = ‘Total slots in cluster’ – ‘Used slots’does not apply. The values I see are
‘Total slots in cluster’ = 36
‘Used slots’ = 7
‘Available slots’ = 11
Please note no advanced parameters have been used to alter the slot size values.Can send you a screenshot if required.
Thank you for your time.
Chandy
Guys,
refer to http://www.vmware.com/pdf/vsphere4/r40/vsp_40_availability.pdf
PAGE 18.
Total slots = total slots in the cluster [4×50 + 1×100]
Used slots = # of slots taken by the powered on VMs
Available Slots = Total slots in the cluster – slots from the highest host – used slots.
very good article !
few questions, in calculating the # of slots example,
you have
ignored host with 100 slots [considering worst case scenario, if it fails]and summed up the slots in the remaining hosts and concluded 200 slots.
1. say, we have 5 hosts with different memory and have mem slot sizes as 30, 40, 50, 60, 70. Here would the total available slots be 180, considering the worst case scenario, where host with 70 slots will fail ?
3. Also in these examples is the host failure cluster tolerate assumed to be 1 ?
if assumed to be two, then available slot size
in your example = 150
in my example = 120
1) Yes worst case scenario. HA will subtract 70 from the total amount of available slots!
2) Yes that was the case in my example. If you set it to two in your scenario 70 and 60 will be subtracted… once again worst case scenario.
Thanks for the follow up,
btw: go percentage based! a lot easier 🙂