Once again VMware has enhanced a fundamental feature of vSphere, Distibuted Resource Scheduler (DRS) now got even smarter. The great thing of VMware is that they take fundamental features like vMotion and DRS and make them even better. Like with all the vMotion enhancements in vSphere 6, they now juiced up VMware DRS and added a predictive feature to it resulting in Predictive DRS.
Predictive DRS is a new feature that is introduced in vSphere 6.5 which will leverage information from vRealize Operations to provide better placement, load balancing and resource contention prevention.
Note: Predictive DRS is a Tech Preview until the next release of vRealize Operations.
What does Predictive DRS solve?
So what does it solve. We all know the standard way DRS works. Simply put, if a host detects resource contention DRS moves workloads to another host to solve the resource contention. VMware DRS evaluates the state of the vSphere cluster every 5 minutes and if there is resource congestion it will act with the help of VMotion.
Besides that VMware DRS also handles workloads placement at the time a virtual machine is booted.
For a detailed explaination I better refer you to Duncan Epping’s DRS Deepdive series.
The ‘problem’ here is that VMware DRS evaluates the situation every 5 minutes but resource congestion may pop-up every second. Worst case scenario is that DRS has evaluated the status of your vSphere cluster, concluded that everything was OK and right after the check a intrusive batch job starts or a huge database query is performed. The resource congestion will then impact the workloads and in the end it will impact your users.
What does Predictive DRS do?
So, Predictive is a new feature that is introduced in vSphere 6.5 and from a vSphere perspective, the feature is there. However Predictive DRS uses the tight integration with vRealize Operations, so it will be in Tech Preview until vRealize Operations releases the next version of vRealize Operations which will be compatible with vSphere 6.5.
When all components are in place, vRealize Operations computes and forecasts virtual machine CPU and memory utilization based on metric history that it pulls from vCenter. vRealize Operations creates Dynamic Thresholds and as more and more data points are introduced over time, the forecasts become more and more accurate with higher levels of confidence. These forecasted metrics are then sent to DRS and DRS ingests these ahead of time (default is 60 minutes ahead of time) and balances the cluster based on forecasted utilization. The benefit to this is that predictable workload utilization spikes can be acknowledged and balanced before the spike occurs, leading to better performance for all workloads.
Simply put, vRealize Operations has the information and trends to forecast what’s going to happen in your vSphere environment and will move workloads based on that information with the goal to prevent resource congestion of ever happening. As shown in the picture above, from historical data collected vRealize Operations predicts that an increase in resource demand (blue graph) is imminent. Based on this information it will inform DRS to take avoiding action. This will dramatically decrease regular DRS actions and hopefully make resource contention a thing of the past. Of course DRS will continue to use the data provided by vCenter Server to perform regular DRS. On top of it will use the historic data from vRealize Operations to predict what resource usage will look like, all of this to make a basic feature as DRS even better.
How to enable Predictive DRS
Enabling Predictive DRS is as simple as enabling DRS, HA or vSAN. It’s as simple as going to your vSphere cluster settings, select DRS, Predictive DRS and check the checkbox.