Describe the Resource Pool hierarchy

A resource pool is defined as a logical abstraction of managing resources.  To start with, every cluster and host have a root resource pool.  The root resource pool is invisible to the end user and always contains all the resources for VMs that the host/cluster can provide.  Aside from the root resource pool there are three other types of resource pools that can be created.  Child, Sibling, and Parent resource pools.  A child resource pool (RP3) is a resource pool that is created under another resource pool (RP1).  In the previous example RP1 becomes RP3's parent resource pool.  A sibling resource pool (RP4) is a resource pool that shares the same hierarchy as another resource pool (RP5).  A resource pools such as RP3 can be a child, parent, and sibling all at the same time.  As in the following example…
  • Root Resource Pool
    • RP1
      • RP3
        • RP4
        • RP5
      • RP6
    • RP2

A resource pool can contain other resource pools, vApps, and VM's.  vApps and VMs share the same type of hierarchy, meaning if a VM is at the same level as a Resource Pool, they are considered to be siblings.

Why Use Resource Pools?

  • Flexible Hierarchical Organization – Resource Pools give you the ability to lay out resources the way you want, and dynamically change them on the fly.
  • Isolation Between pools, sharing within pools – Could assign pools to departments, changes in resources in one pool would not affect others.
  • Access Control and Delegation – Could delegate administrative rights to one resource pool to someone, and thus that person would have access to create and manage resource pools within the top level resource pools
  • Separation of Resources from Hardware – Resource from all hosts will be assigned to the cluster, thus allowing them to share resources.
  • Management of Sets of VMs running as a multi-tiered service – group VMs from a multi-tiered service in a RP, which would allow you to allocate resources to the service by just changing on the the RP, not each individual VM

Define the Expandable Reservation parameter

Expandable reservation is a setting that can be selected when creating resource pools.  Basically, what expandable reservation does is deem that the resource pool can ask it's parent for resources if need be.  The parent, if expandable reservation is enabled on it can go ahead and ask its' parent and so on and so forth.  This only applies to VM reservations and is mainly used to satisfy admission control when powering on a VM with a reservation.
 
Create/Remove a Resource Pool
 
You can create child resource pools on a ESXi host, another resource pool, or a DRS enabled cluster.  If an ESXi host has been added to a DRS cluster, you cannot create a child resource pool on the host itself, instead you would create it on the cluster so it would span all hosts.  The steps to create a resource pool are as follows
  1. Select the object on which you wish to create the RP in and select File->New->Resource Pool 
  2. Name the resource pool
  3. Specify how to allocate CPU and Memory resources.
    • Shares – Assign shares to a RP just as you would a VM that will draw from its parent resource pool.  Options are Low, Medium, and High in a 1:2:4 ratio as well as custom
    • Reservation – Guarantees a certain amount of physical CPU and Memory to the resource pool.  This is defaulted to 0
    • Expandable Reservation – explained above.
    • Specifies the upper limit of the hosts memory and cpu that it can use.  Normally left at unlimited
  4. DONE!

Configure Resource Pool attributes

Pretty much the same as creating except you right click and edit the resource pool 🙂
 
Add/Remove virtual machines from a Resource Pool
 
Adding a VM to a Resource Pool
 
During the New Virtual Machine wizard you are able to specify a RP as a target location for that VM.  You can also drag and drop existing VMs into a resource pool.  There are a few things to be aware of though when moving existing VMs into resource pools.
  • The virtual machines reservation and limit do not change.  If a reservation or limit was set on the VM, it is maintained.
  • If the VMs shares are set to low, medium, or high, then the % shares value will adjust accordingly depending on how many shares are available in the resource pool.
  • If the VMs shares value is set to a custom value, that number is maintained.  You may need to change the shares value after this as it is now relative to the resource pools total shares.  A warning is generated if a VM is going to receive a very high or a very low amount of shares.
  • The resource allocations tab will change to reflect the values of the new VM (reserved and unreserved capacity).  This only happens if the VM is powered on.  Powered off VMs will not reflect in these values.

Removing a VM from a Resource Pool

When you remove a VM from a Resource Pool the overall number of shares for the Resource Pool decreases, however each share will then represent more resources.  You can remove a VM from a resource pool by either deleting it, or simply moving it out of the RP.

Determine Resource Pool requirements for a given vSphere implementation
 
Have a look above at the section titled Why use resource pools and find out if any of these situation will apply to your environment.  Obviously its hard to determine requirements.  Essentially go through the motions of knowing the workload of your VMs and setting up your resource pools accordingly.  If you are using resource pools to segment resources across departments, determine if resource pools will be allowed to borrow from their parents, or if they are simply a hard number of resources.
 
Evaluate appropriate shares, reservations and limits for a Resource Pool based on virtual machine workloads
 
I've explained a few times what shares, reservations and limits are.  So the main thing to do is know the workload of your VM and set your shares accordingly.  I would only use reservations in the event that you absolutely have to…but thats just me 🙂
 
Clone a vApp
 
Why is this here?  Very confusing…..   Either way…
 
There are a couple of prerequisites before being able to clone a vApp
  • You must be connected to vCenter
  • A host must be selected in the inventory that is 3.0 or greater OR a DRS enabled cluster must be selected.

The cloning is quite simple and much the same as cloning a VM.  Select Inventory->vApp->Clone.  Select a destination, a new name, a datastore, a network, you're done!