What is Vmware DRS (Distributed Resource Scheduler)?
DRS is a technology that makes your virtual machine happy. DRS constantly monitor your cluster utilization and making sure, that your VMs will get their resources the most effective way.
DRS also use another technology – VMware vMotion for actual migrations of the virtual machines between ESXi hosts based on the balancing algorithms and its sensitivity.
To make it simple – DRS is responsible for keeping your cluster balanced, so the utilization of the ESXi hosts is equal. DRS also works closely with resource management that guarantee particular resources for your virtual machines.
DRS actually consider a lot of parameters that are evaluated constantly for the optimum performance and placement. Those variables are for example host resource capacity, resource reservations, datastore connectivity or actual resource demand from virtual machines. You can have a big virtual machine, that is not doing anything for a large amount of time but then, it will allocate all of the assigned resources. In such case DRS might decide that another host will be more appropriate for such VM and based on your automation level (Manual, Partial Automated or Automated) might migrate the VM to another ESXi host.
One of the big variables that affect DRS decisions are Reservations, Shares and Limits (R, L, S). Those are parameters of individual virtual machines or resource pools and using those you can fine-tune resource management of such particular object.
Using reservation, you can specify amount of resources that the VM will always get no matter what. Imagine a situation when you have VM with 4 vCPU and each vCPU is at 2.4 GHz. If you reserve 4.8 Ghz for such VM, this VM will always be able to take such resources when needed.
Limit on the other hand is the hard cap of either CPU cycles in MHz or Ghz or amount of memory. I strongly suggest not to use Limits with memory because this might lead to swapping on the ESXi host. VM will thinks that it has 4 GB of memory, but the limit is set to 2 GB. What that mean is that if the VM will try to allocate more than 2 GB of RAM, anything above the limit will be swapped on the ESXi host.
This feature comes into the play in the time of congestion. If you do not have enough resources that the virtual machines demand, using shares you can decide which VM will gets which portion of resources.
Short example – you have two VMs, one with 10 shares and other with 20 shares. You have 1 Ghz of CPU resources but both VMs demands 3 Ghz giving you total demand of 6 Ghz in this case VM1 get 333 MHz and VM2 666 MHz (1000 MHz / 30 shares * share per VM).
How to activate DRS?
Unfortunately, DRS is not part of lower editions, you need Enterprise or Enterprise plus license to use such feature.
If you have the correct license just select your cluster –> configure –> vSphere DRS
You have possibility to select automation level.
Manual means, that DRS will give you recommendations, but you need to decide which you will follow or not and manually approve them
Partially automated means, that new VMs will be placed on the correct host automatically as well if you power on existing VM. The VM will be powered-on on the best host selected by DRS but no ongoing migration based on the actual resource demand will occur
And lastly, you have fully automated mode where the VMs are automatically migrated by DRS itself.
Then you need to choose your migration threshold from 1 to 5.
Priority means, what variables will be used for DRS calculations and migrations.
This means only mandatory moves like ESXi maintenance mode or Affinity rules will apply, but no actual resource contention or resource imbalances will be corrected.
Priority 2 to 5
These thresholds are used when the redistribution of resources is required as VM demand fluctuates. Migration threshold 2 is the most conservative and 5 is the most aggressive. As the Migration Threshold moves upward from 2 to 5, less and less benefit is required before a migration recommendation is applied. Another way to think about this is that the higher the migration threshold, the more migrations are allowed, even when only the slightest benefit to performance or cluster balance will result.
You can check your cluster balance status easily on Summary page of your cluster and vSphere DRS
So that’s it for today and if you are interested in deeper information about resource management feel free to check DRS cluster management with reservations and shares whitepaper
In the upcoming post I will show you several flings from VMware labs that will allows you to get deeper understanding what is going on in your cluster in terms of DRS and resource allocation so stay tuned!