New to Me: TryBalanceVMsPerHost – VMware advanced option
Here’s a cool setting I ran across in vSphere that isn’t that new but I hadn’t run across in the past. Under vSphere DRS settings, VM Distribution, there is a checkbox for ‘For availability, distribute a more even number of virtual machines across hosts’ setting. Checking this enables the advanced feature TryBalanceVmsPerHost to 1. This advanced option was introduced in vSphere 6.5.
In the past, clients would always ask me if DRS was working since they would see a great number of Virtual Machines on one host and maybe not too many on another. Without this newly found checkbox, VMware would only vMotion a machine automatically if the machine needed more resources. Or more specifically, if it wasn’t getting the resources it wanted in a timely fashion. The action of vMotion can sometimes (especially in the past) create load issues that you are trying to remediate. If you had beefy host machines that were capable of satisfying VM requests, why bother moving them around? The behavior of not balancing the VMs was a very sound default setting.
So why would you use this?
Availability and reducing risk. Having machines more evenly distributed across hosts will reduce the impact when/if a particular host crashes unexpectedly. With many environments running 10GB+ now for networking, vMotions happen extremely fast and the additional load/overhead incurred by the hosts involved is brief. This new (to me) setting makes a lot of sense.
For a more in depth explanation on how the balancing actually works, check out Brian Graf’s blog post from way back in 2016 here!
Always fun to learn about something that you didn’t know about before.