vSphere 7 resource pools are an integral part of clustered environments. They allow you to create different compartments within your cluster and delegate control over a cluster's resources.

Many new vSphere admins do not use resource pools because they seem complicated at first; however, they're part of vSphere. Moreover, this topic is required to pass the VCP-DCV VMware certification exam. I'm not surprised that the VCP exam has several sections on resource pools and resource management.

VMware vSphere 7 uses resource pools to separate and compartmentalize all resources in a cluster. A resource pool is a logical abstraction for the flexible management of resources, allowing you to create a hierarchy within your environment. Each part of this hierarchy can have different amounts of CPU or memory resources assigned from the total available within your cluster.

A resource pool can have child resource pools, such that each child receives part of the parent's resources. Child resource pools are smaller units compared to parents. A resource pool can contain other resource pools, as well as individual virtual machines (VMs).

The main advantage of managing resources via resource pools is that you do not need to set resources on each virtual machine individually. Instead, you can control the aggregate allocation of resources to the set of virtual machines by changing the settings on their enclosing resource pool.

vSphere 7 offers a new feature with resource pools. It is a new checkbox called Scalable shares that we detailed in one of our previous articles—What are VMware vSphere 7 scalable shares?

If you have more VMs that are provisioned in a resource pool, VMware vSphere 7 with scalable shares activated recalculates the entitlement for all the workloads running inside the resource pool. Scalable shares are dynamic.

Today's article will be more general and will teach you the basics of resource pools, their usage, examples, and configuration.

vSphere 7 resource pools enable the separation of resources from hardware. You can use them to manage resources independently from the actual hosts that contribute to the cluster.

Where should vSphere 7 resource pools be created?

Simply right-click your cluster, and from the menu, choose New Resource Pool. Note that resource pools are part of vSphere Enterprise or Enterprise Plus licensing.

Before you try, you'll need to meet a few requirements. You must have DRS enabled on your cluster.

Create a new resource pool

Create a new resource pool

On the next page, you'll see this screen. You'll need to give your resource pool a meaningful name first and then choose what CPU and memory allocation you would like to have.

Configure CPU and memory in your resource pool

Configure CPU and memory in your resource pool

Shares—The Shares value indicates which virtual machine will request resources with which priority if there is a shortage of resources on an ESXi host. By default, the Shares value is 1000, but you can increase it. If you increase it, the virtual machines in this resource pool will start to prioritize the use of CPU resources, as follows:

Low (2000), Normal (4000), High (8000) or custom.

Reservation—A virtual machine needs CPU and memory resources to run. If you do not want to be affected by the resource bottleneck on the ESXi server, you need to make a resource reservation.

Expandable Reservation—If the reserved resources are not provided, the virtual machine cannot be started. If this option is selected, even if there is no resource in the resource pool, you can use the resources of the resource pool located above it and power on the virtual machine.

Limit—If you set a limit for a resource pool, you can never exceed that limit. I do not recommend that this setting be used in a production environments. For example, if the virtual machine has 2 GHz usage, if you limit it to 1 GHz, this resource will never, ever exceed 1 GHz.

Unlimited—This option should always be checked if you are not setting a limit. It indicates that there is no limit on the amount of CPU you have allocated.

What are some use cases for using a resource pool?

You might have more than one database and IIS servers in your infrastructure. Let's assume that you create a resource pool named Database and add Database servers into it. You can then create a resource pool named IIS and add your IIS-related virtual machines to it. In this way, you can perfectly allocate how much of the overall cluster resources would be available for your Database resource pool and how much for your IIS resource pool.

You might also have VMs that are part of different departments, such as Human Resources (HR), DevOps, CAD Design, Machine Learning etc. Each department might have different requirements when it comes to performance. For example, the Machine Learning VMs might need a lot compared to HR, and so on.

We looked at VMware documentation, where two different departments use a resource pool. The QA department needs more CPU. The admin simply sets the CPU shares to High for this resource pool and to Normal for the Marketing resource pool. This is the simplest example.

Resource pools are container objects in the vSphere 7 inventory, and they help to create compartments. Each compartment has its own CPU and memory settings set as a percentage of the overall cluster resources. A delegation can be created within vSphere 7, as resource pools are objects.

Example of vSphere 7 resource pool

Example of vSphere 7 resource pool

There are also more complex cases, especially with a child resource pool. There is a checkbox called Scale Descendant Shares when you have a parent resource pool.

The Scale Descendant Shares option allows the shares allocated to each descendant resource pool to be adjusted to ensure that the relative shares allocated to the VMs are maintained. With scalable shares, the allocation for each pool factors in the number of objects in the pool. You can add/remove objects or VMs, and the shares for each object are adjusted automatically.

Note that this wasn't the case in previous releases of vSphere, where resource pools were only static.

Scale Descendant Shares option

Scale Descendant Shares option

Final words

vSphere 7 resource pools are an important part of vSphere resource management. Admins leaning toward the VMware certification exam and admins who do not know how resource pools work should definitely take a closer look. Resource pools can effectively help to separate the overall resources of the cluster into compartments, where each compartment can have different CPU and memory allocations, preserving the performance of the group of VMs that needs it.

Subscribe to 4sysops newsletter!

Resource pools are particularly useful in large-scale environments with hundreds or thousands of hosts, where you need to use cluster resources effectively.


Leave a reply

Your email address will not be published.


© 4sysops 2006 - 2023


Please ask IT administration questions in the forums. Any other messages are welcome.


Log in with your credentials


Forgot your details?

Create Account