Hello Everyone! In my first post I have explained about resource management and little bit about resource pool, Share, Limits and Reservations. I would highly recommend you to visit that post “Resource Pool – Part 1” if you have not done yet.
In this section I will talk about-
- Resource Pool Hierarchy
- Create a resource pool
- Add/Remove VM(s) from resource pool
- Expandable resource pool
Resource Pool Hierarchy
It is important to understand Resource pool hierarchy because if you don’t consider this while planning out resource pool then it may have adverse effect on Virtual machines. So let us refer below picture.
**Pic Courtesy: VMware
So what we are seeing here is root resource pool, Siblings, Parent resource pool and child resource pool. Here, DRS cluster named as CL-1 itself is a root resource pool because it is containing aggregate resources which are coming from ESXi hosts. Based on available resources it distribute resources to its child objects which can be virtual machines or resource pool.
CL-1 has 2 resource pool RP-Marketing and RP-QA respectively. These 2 are siblings to each other because they are sharing the same hierarchy. All 3 VMs which are in RP-Marketing are sibling to each other and sharing the same relationship with their parent resource pool.
Also, resource pool can be nested with one another. If you refer the above pic then you will notice that RP-QA-UI is a child resource pool under RP-QA. In this case RP-QA is parent resource pool of RP-QA-UI resource pool.
Info: However, You can not define any more than 8 resource pool deep. Each Host can support up to 1600 resource pools which is also maximum number of resource pool per cluster. #vSphere6
I will discuss later on why we need to keep resource pool hierarchy in mind during planning for it.
Tips: It is best practice to not allow VMs and resource pools to be siblings with each other. Otherwise, when there is contention, it is very likely for the VMs inside the pool to loose out in competion with VMs outside the pools.
As of now let us discuss on how to create resource pool and how to move VM(s) to it.
How to create a Resource pool ?
Steps are pretty much simple for creating a resource pool
- In the vSphere Web Client navigator, select a parent object for the resource pool (a host, another resource pool, or a DRS cluster).
- Right-click the object and select New Resource Pool.
- Type a name to identify the resource pool.
- Specify how to allocate CPU and memory resources.
How to move virtual machine to a resource pool?
- Locate respective VM from Web Client.
- Right Click and Select Migrate.
- Select Migration type as “Change Compute Resource Only”
- Select respective resource pool in which you would like to move this VM.
- Select Network, Do not change the network if it is not needed.
You can also migrate multiple VMs all together to a resource pool. In Virtual machine Tab select required VMs and migrate as per above process.
What is expandable resource pools?
If you review above pic titled “New Resource Pool Wizard” then you will notice that there is a check box labeled as Reservation Type Expandable. You must be wondering what this option is all about. Let’s discuss this further more.
Well as you have already know that VMs residing in resource pool gets resources from its parent resource pool. So let us assume that resource pool runs out of resources due to badly planned resource pool or unexpected resource demand, VMs residing in are not able to get reserved amount of resources then what will happen? Do we have any way to tackle this out? and answer is yes. It is expandable reservation
Expandable reservation allows resource pools to grow because they allow more VMs to power on even if their aggregate reservation exceeds the resource pool reservation. When you enable this check box for reservation type as expandable then it gets the resources from its parent in the event of resource contention. This process continues till VMs get required resources.
For example, refer below pic once again.
Let is assume that we have 2 VMs in RP-QA-UI, Each VM having reservation of 2 GB of memory each. which means each VM will require 2GB + Overhead memory to power on the VM. Currently VM-Marketing is powered on and when we try to power on VM vcy169-w2k3net-lsi it fails to power on due to “insufficient resources” . Clearly there is not enough resources available for this VM. If its parent resource pool which is RP-QA-UI is set to expandable resource pool then admission control check its parent resource pool which is RP-QA, if there are resources available on RP-QA then admission control power on the VM. Admission control does this job until it check complete hierarchy. if there are still not enough resources available then it fails to power on.
In above example RP-QA-UI did not had enough resources hence it got the resources from its parent which is RP-QA. This has happened because resource pool reservation was expandable.
That’s it for now in this section. I will post one last section for resource pool and will discuss more on its planning and use cases.
Hope you liked this post. Please provide your feedback to me under comment section if you have any.