During the Resource Management Group Discussion here in VMworld Barcelona a customer asked me about limiting the number of VMs per Host. vSphere 5.1 contains an advanced option on DRS clusters to do this. If the advanced option: “LimitVMsPerESXHost” is set, DRS will not admit or migrate more VMs to the host than that number. For example, when setting the LimitVMsPerESXHost to 40, each host allows up to 40 virtual machines.
No correction for existing violation
Please note that DRS will not correct any existing violation if the advanced feature is set while virtual machines are active in the cluster. This means that if you set LimitVMsPerESXHost to 40 and at the time 45 virtual machines are running on an ESX host, DRS will not migrate the virtual machines out of that host. However It does not allow any more virtual machines on the host. DRS will not allow any power-ons or migration to the host, both manual (by administrator) and automatic (by DRS).
High Availability
As this is a DRS cluster setting, HA will not honor the setting during a host failover operation. This means that HA can power on as many virtual machines on a host it deems necessary. This is to avoid any denial of service by not allowing virtual machines to power-on if the “LimitVMsPerESXHost” is set too conservative.
Impact on load balancing
Please be aware that this setting can impact VM happiness. This setting can restrict DRS in finding a balance with regards to CPU and Memory distribution.
Use cases
This setting is primary intended to contain the failure domain. A popular analogy to describe this setting would be “Limiting the number of eggs in one basket”. As virtual infrastructures are generally dynamic, try to find a setting that restricts the impact of a host failure without restricting growth of the virtual machines.
I’m really interested in feedback on this advanced setting, especially if you consider implementing it, the use case and if you want to see this setting to be further developed.
Get notification of these blogs postings and more DRS and Storage DRS information by following me on Twitter: @frankdenneman
vSphere 5.1 DRS advanced option LimitVMsPerESXHost
1 min read
The only practical application in my opinion is in a cluster with roughly similar sized VMs and resource demand, for example a Vmware View cluster.
Using this can have a serious impact on VM happiness to have a optically balanced cluster. So I wouldnt recommend this setting a production environment as I see much more cons then pros.
I might consider using this setting if its changed to a dynamic limit based on the amount of VMs on the cluster, a simple example: a 2 node cluster with 10 VMs is balanced to 5 on each host with a user configured margin, if 10 more VMs is started on the cluster the balance is 10 again with a margin.
Another option is to make it a soft limit in which DRS will abide the limit until the unbalance in the cluster exceeds the configured value. When this event triggers DRS will prioritize VM happiness before the LimitVMsPerESXHost and do its “magic”. When the unbalance is within margin again it will again try to enforce the set limit unless this conflicting with maximum unbalance in the cluster. This would create another level of complexity in the DRS calculations and increase the overhead on the cluster.