DRS is one of the features in vSphere that has been present for a very very long time and there have been improvements in every release to the algorithm and how it calculates the resource utilization to migrate the VMs.
In this release of vSphere 6.5 DRS, there are three new features that have been added and are significant changes in which the DRS operates.
- Network-Aware DRS enhancements
- Predictive DRS
- Additional Settings
Network-Aware DRS enhancements
As you are well aware that DRS placement and load balancing currently used to work only with CPU and Memory resource utilization.
Network utilization metrics were not taken into consideration until now, which could lead to “bad placements” for network intensive workloads.
In vSphere 6.0, within Network IO Control (v3) it was possible to set a reservation for a VM in terms of network bandwidth and have DRS consider this.
In vSphere 6.5 DRS, the hosts’ pNIC utilization is taken into consideration placing the VM during DRS migration.
When a host has higher than 80% network utilization it will consider this host to be saturated and not consider placing new VMs. DRS will also migrate VMs out of the host where the pNIC is saturated and try to balance the cluster.
Predictive is a new feature that is introduced in vSphere 6.5. This is a feature that will leverage vROps to provide placement and load balancing decisions.
One important thing to note is that this feature is going to be in Tech Preview until the next release of vRealize Operations Suite.
You must be wondering how can this feature be enabled? You just have to DRS cluster settings and enable “Predictive DRS” option.
If you have vROps running in your environment, it will start providing forecasted information to DRS and DRS then will use these metrics to balance the cluster.
The default forecasted information that is received by DRS is 60 minutes (3600 seconds), which can be changed by an advanced setting called “ProactiveDrsLookaheadIntervalSecs”.
This is something really cool, imagine you know that the VM is going to have a workload that is going to increase the resource utilization of that VM and DRS will make sure that it migrates that VM to a host that has sufficient resources.
If you head over to edit the DRS cluster settings, you would notice that you are now presented with “Additional Options” and there are three of them.
- VM Distribution
- Memory Metric for Load Balancing
- CPU Over-Commitment
VM Distribution: With this setting, you can enforce an even distribution of VMs. This will cause DRS to spread the count of the VMs evenly across the hosts.
Memory Metric for Load Balancing: DRS by default uses the (Active Memory + 25%) of the VMS to balance the hosts in the cluster. Consumed Memory is the memory allocated to the VM minus memory saved page sharing. The consumed memory vs active memory will cause DRS to use the consumed memory metric rather than Active. This is beneficial when memory is not over-allocated.
CPU Over-Commitment: This setting is useful when you want to limit the number of vCPUs per pCPU. The Max value that you can provide is 500.