It’s not a good idea to max out the size of your virtual server cluster, but a cluster with too few hosts isn’t ideal, either. There’s got to be a friendly number of hosts somewhere in the middle, right?
Indeed there does. With too many, the load balancing
Too many hosts affects cluster load balancing
In a Microsoft Hyper-V server cluster that runs Windows Server 2008 R2, the maximum number of hosts is 16. The maximum number in a VMware server cluster, running vSphere 4.1 with Distributed Resource Scheduler (DRS), is 32. But a cluster of this size makes load balancing unwieldy.
Consider vSphere and its DRS cluster calculations. Every five minutes, DRS rebalances VMware server cluster resources by moving virtual machines (VMs) to different hosts. It uses some pretty complicated calculations to determine the level of imbalance, then analyzes possible migrations and identifies which VMs will help restore balance in the VMware server cluster.
That analysis can be computationally intensive, and the amount of effort required to complete the rebalancing process grows with the number of hosts (and the number of virtual machines on those hosts). A VMware server cluster with more hosts requires more time and effort between rebalancing intervals. So keeping server cluster size to a manageable quantity minimizes the effort involved with cluster load balancing. In their book VMware vSphere 4.1 HA and DRS Technical Deepdive,experts Duncan Epping and Frank Denneman suggest that the “sweet spot of hosts per cluster ranges between 16 and 24 hosts.”
Microsoft System Center Virtual Machine Manager (SCVMM), on the other hand, uses relatively simple calculations for Hyper-V server cluster load balancing. SCVMM recognizes that a host is overloaded when memory and CPU utilization exceed certain configured thresholds, but it does not use cluster-wide calculations.
The upcoming SCVMM 2012 is expected to add calculations that take the entire Hyper-V server cluster into account. Until then, it’s difficult to tell whether SCVMM’s calculations hinder cluster load balancing. Hyper-V has no published suggestions for a “sweet spot” of hosts per cluster, but because its maximum is 16, one can assume the optimal server cluster size would be less than 16 but greater than only a couple of hosts.
Too few hosts can’t get the job done
On the flip side, having too few hosts can hinder disaster recovery efforts. Many organizations try to save on costs by using as few hosts as possible in a virtual server cluster. But if you don’t invest enough in your starter virtual infrastructure, you’ll end up with more wasted materials later.
Remember that a server cluster’s primary function is to provide alternate targets to which VMs can move when hosts fail or become overloaded. When there aren’t enough available hosts, however, it creates a problem. A two-host cluster, for example, provides only one alternate location where a VM can reside.
Many admins don’t realize the amount of resources that the server cluster’s VMs require during that failure state. Sure, virtualization allows you to squeeze multiple VMs onto one host, but you’d be wrong to assume that VMs from two different hosts can share the resources of a single host in a cluster after a failover. Both VMs will end up running poorly.
Fortunately, SCVMM and vSphere include an automated calculation for a cluster reserve: a quantity of unused resources set aside for just this reason. For maximum protection, that amount of resources should be equal to the amount of processing and memory resources contributed by the server cluster’s most powerful server.
In a server cluster of only two hosts, that means that the equivalent of one host’s resources must remain unused. That’s 50% waste. Waste still occurs in larger server clusters, but as the number of hosts goes up, the waste goes down. A four-host cluster wastes 25%, an eight-host cluster wastes 12.5% and so on. So when it comes to server cluster design, buying more servers is just as important as buying more-powerful servers.
Notwithstanding which hypervisor you use, determining the right number of hosts in a server cluster is an exercise in experience. You’ll probably eventually split your hosts into multiple server clusters as you grow, so it’s smart to maintain an even balance of hosts within multiple clusters as well. It gives your load-balancing and disaster-recovery software the greatest flexibility.
This was first published in May 2011