peshkova - Fotolia
One issue that users often encounter with VDI is that some hosts have a heavier load than others. If an organization reboots a Microsoft Hyper-V hypervisor, for instance, that host may be nearly idle, while other hosts work near maximum capacity. Similar situations can occur as a result of resource usage fluctuations.
On a Hyper-V host for VDI, for example, virtual desktops will inevitably see a load spike early in the morning when users first boot their desktops. This demand spike may affect other hosts, as well, if they host fewer virtual desktops.
One way IT can correct this imbalance is by using live migration to balance virtualized workloads. Live migration won't stop the demand spikes from happening, but it will allow VMs to automatically move from an overworked host to a host server that has more resources available.
There are two ways to achieve this type of automated VDI load balancing with Hyper-V.
The first option is to implement load balancing at the failover cluster level. To do this, open the Failover Cluster Manager, right-click on the desired cluster and select Properties from the resulting menu. When the cluster's properties sheet appears, go to the Balancer tab and select the Enable Automatic Balancing of Virtual Machines checkbox (Figure 1).
You have two choices from here: balance VM workloads or only load balance the VMs when a new node joins the cluster. You can also set the aggressiveness of the VDI load balancing operations. Aggressive load balancing maintains a more even distribution, but it can also result in more frequent live migrations, which can hinder performance.
Dynamic load balancing
The other option for VDI load balancing with a live migration on Hyper-V is to use Microsoft System Center Virtual Machine Manager (SCVMM). This is a better option for load balancing, but IT can use cluster-level load balancing as an alternative if its organization does not have SCVMM.
The SCVMM feature that runs VDI load balancing for Hyper-V is called dynamic load balancing. When dynamic load balancing is enabled, it automatically disables cluster-level load balancing.
IT can configure SCVMM's dynamic optimization at the host group level rather than at the cluster level. As such, SCVMM automatically load balances VMs within the host group.
To enable dynamic optimization, open the SCVMM console and select the VMs and Services workspace. Next, right-click on the host group you want to configure and select the Properties command from the menu. SCVMM will display the host group's properties sheet (Figure 2).
The Thresholds section allows admins to configure the thresholds at which live migration-based optimization takes place. For example, the settings shown in Figure 2 indicate that SCVMM will begin looking for opportunities to migrate VMs to another host within the group when one host's available CPU resources fall below 30% or when a host's available memory falls below 3 GB.
These settings are the primary reason IT pros generally prefer dynamic optimization over cluster-level load balancing. Cluster-level load balancing is based on the memory pressure that VMs exert, while dynamic optimization can base VDI load balancing on a variety of performance metrics.
Figure 2 also shows that dynamic optimization allows administrators to set the aggressiveness of the load balancing process, just as they could with cluster-level load balancing. However, dynamic optimization provides some additional settings that are not available in the Microsoft Failover Cluster Manager.
One setting that is unique to SCVMM is the ability to control the load balancing frequency. If IT doesn't want SCVMM to be constantly moving virtual machines around, you can set a frequency limitation.
The other setting unique to SCVMM is power-based optimization. This setting allows VMs to be automatically condensed onto fewer hosts during off-peak hours. With this setting, SCVMM can shut down idle hosts to save power. IT can set these hosts to automatically resume their functions when necessary.