What are VMware vSphere 7 Scalable Shares in DRS?


VMware has made a lot of new improvements with the Distributed Resource Scheduler (DRS) in VMware vSphere 7. One of these really powerful improvements that has been made is something VMware calls Scalable Shares. The new scalable shares in the VMware vSphere 7 DRS component is a refinement of how VMware implements resource scheduling in vSphere 7. What is VMware vSphere 7 scalable shares? How does it work? Let’s take a look.

What are VMware vSphere 7 Scalable Shares? What problem does it solve? VMware took a hard look at many of the core features of VMware vSphere with the vSphere 7 release. It is almost as if they went back to the drawing board on the core features and took at look at how they could redesign and make things more powerful, more efficient, and better overall. This is what they have done with the VMware vSphere 7 DRS functionality.

In VMware vSphere releases before vSphere 7, there was no relative resource entitlement between resource pools and the workloads that were assigned to them. What does this mean?

In an example that is given by VMware, explaining how this new mechanism works, it was explained that with the traditional vSphere DRS, the CPU share level did not necessarily guarantee a higher entitlement. You can see how this works here.

In Resource Pool 1 there is a single virtual machine that is the only consumer of the resource pool that is set to 10 GHz and normal CPU shares. In Resource Pool 2 you see that there is a total of 20 GHz of CPU reserved and CPU shares are set to high. You would think that the high designation of resource pool 2 would mean it gets a higher entitlement. However, this may not be the case.

Between the normal and high entitlements, all the VMs in the example below are getting 10 GHz of CPU entitlement.

VMware-vSphere-DRS-resource-pool-CPU-entitlement-behavior-prior-to-vSphere-7 What are VMware vSphere 7   Scalable Shares in DRS?
VMware vSphere DRS resource pool CPU entitlement behavior prior to vSphere 7 (Image courtesy of VMware)

In VMware vSphere 7 with scalable shares, VMware has helped to solve the aforementioned issue where CPU shares of high and normal might still mean they get the same amount of CPU entitlement.

Now the CPU shares that are set to high in a resource pool, VMware using scalable shares ensures that the higher shares value truly means the workloads will receive a higher entitlement.

As you can see below, the same scenario as shown above yields different results. The resource pool with the CPU shares set to high means the CPU entitlement calculated is more than the resource pool shares set to normal which makes much more sense.

VMware-vSphere-7-DRS-scalable-shares-dynamically-calculates-the-CPU-entitlements-for-all-workloads-in-a-resource-pool What are VMware vSphere 7   Scalable Shares in DRS?
VMware vSphere 7 DRS scalable shares dynamically calculates the CPU entitlements for all workloads in a resource pool

This is also dynamic in nature. Whenever more virtual machines are provisioned in a resource pool, VMware vSphere 7 using scalable shares recalculates the entitlement for all the workloads that are running inside the resource pool.

Enabling VMware vSphere 7 Scalable Shares

Since this is new functionality in VMware vSphere 7, is the functionality enabled by default? No. This is a new feature that you will need to enable before it will be active in VMware vSphere 7. How is this done?

As mentioned earlier, the scalable shares feature is a new component of VMware vSphere Distributed Resource Scheduler (DRS). You can enable scalable shares at two different levels of granularity:

  • At the cluster level using the DRS settings for the cluster – Using this setting, all the constructs at the cluster level will make use of scalable shares
  • At the resource pool level – Only the workloads in a specific resource pool will use the new scalable shares feature

VMware vSphere 7 DRS Scalable Shares setting

Let’s first look at configuring the scalable shares setting under the DRS configuration for a VMware vSphere 7 cluster. When you click your cluster > Configure > vSphere DRS and Edit Settings, under the Additional Options you will see the new checkbox for Scalable Shares. Check the box to “enable scalable shares for the resource pools on this cluster.

Enabling-scalable-shares-on-a-vSphere-7-cluster What are VMware vSphere 7   Scalable Shares in DRS?
Enabling scalable shares on a vSphere 7 cluster

Setting Scalable Shares at the Resource Pool level

If you do not want to set the scalable shares setting at the cluster level, you can also turn this on for an individual resource pool as well. When you create a new resource pool, under the Name field, you will see the Scalable descendent’s and the checkbox Yes, make them scalable.

Scalable-shares-can-be-set-at-the-resource-pool-level-in-VMware-vSphere-7 What are VMware vSphere 7   Scalable Shares in DRS?
Scalable shares can be set at the resource pool level in VMware vSphere 7

Wrapping Up

VMware vSphere 7 scalable shares are a great new feature of VMware vSphere 7 that ensures the workloads receive the CPU entitlements that you want them to have such as a “high” entitlement for CPU shares.

Previously to VMware vSphere 7, a “high” CPU entitlement may or may not completely give the workloads running in a particular resource pool a higher CPU entitlement depending on a few factors.

Now with VMware vSphere 7 scalable shares, the entitlements are dynamically calculated and correctly allow workloads configured with a “high” CPU entitlement to have truly higher CPU shares entitlement.

Take a look at other VMware vSphere 7 coverage here:

StarWind VSAN