“Virtualization is all about Optimization, Efficiency, Scalability and Availability!”.
Resources are something which comes at a cost. No matter how much resources you have if you don’t manage it well you become inefficient in your game. Hence resource management becomes key part to achieve Optimization, Efficiency, Scalability and Availability. In this post I will talk about resource pool, one of the key component which plays an important role in resource management. Also this post will certainly help a VMware Rookie to understand more about resource pool.
When we talk about resources in the context of resource pools then it means that we are specifically talking about CPU and Memory.
In virtualization you deploy multiple virtual machines on top of hypervisior which in turn uses same hardware resources. Simply one hardware and multiple OS on top of that that’s cool stuff right! But how it is decided that what amount of resources a VM should get from available resources? What will happen when multiple VMs are competing for the same amount of resources at the same time? How can we ensure that VM(s) must get required amount of resources?. All these scenarios can be dealt with the help of resource pool.
In order to understand resource pool we need to understand Shares, Reservations and Limits first.
Shares: Shares represents relative importance of a virtual machine with respect to other VM(s)/Resource Pool. Shares are typically specified in 3 categories which is High, Normal, Low and these shares are specified with 4:2:1 ratio respectively. which means High share will get 4/7 resources out of total available, Normal will get 2/7 and low will end up getting 1/7 resources in the event of contention. By default, Shares are set to Normal for VM or Resource Pool.
Reservation: Reservation is minimum guaranteed amount of resources (CPU/Memory) specified for a VM. If this guaranteed amount is not available to VM then VM fails to power on. Usually for critical VMs it is good to have reservation specified. By default there are no reservation set for VM or Resource Pool.
Limit: Limit specifies upper bound of resources which can be allocated. This mean that a VM can not utilize resources more than specified limit even it has resource available to it. By default there are no reservation set for VM or Resource Pool.
It is not mandatory to have resource pool to configure Shares, Limits and Reservations on VM(s). You can configure these setting on VM(s) individually.
What is Resource Pool?
Resource pool is a logical container which help us to prioritize importance of virtual machines. This is done by using 3 key attributes which are Shares, Reservations and Limits. VM(s), vApp and Resource pool itself can be a member of resource pool. Also, Resource pool gets resources from its parent and then allocates resources based on its attributes.
Resource Pool can be created on Standalone ESXi Host or DRS Cluster.
So far we have discussed about key attributes for resource pools and very basics of it. In next section I will talk about how to create resource pools and will compare and contrast different use cases for resource pools.
Stay tuned for my next post. Enjoy!