Today's VCP6-DCV topic will touch resource pools. Resource pools aren't folders, remember? Hey, resource pools are cool when used sparingly, not with 3 levels of inception… VCP6-DCV exam blueprint has this chapter about resource pools and it's important to know the insight out – VCP6-DCV Objective 5.1 – Configure Advanced/Multilevel Resource Pools.
The whole exam details, and all topics from the blueprint can be found on the VCP6-DCV page. So in In today's topic we will learn about resource pools, but also there is a chapter about vFlash architecture. As you know vFRC caching has been here since vSphere 5.5 and it allows read-only caching mechanism to accelerate applications and VMs.
- Describe the Resource Pool hierarchy
- Define the Expandable Reservation parameter
- Describe vFlash architecture
- Create/Remove a Resource Pool
- Configure Resource Pool attributes
- Add/Remove virtual machines from a Resource Pool
- Create/Delete vFlash Resource Pool
- Assign vFlash resources to VMDKs
- Determine Resource Pool requirements for a given vSphere implementation
- Evaluate appropriate shares, reservations and limits for a Resource Pool based on virtual machine workloads
Describe the Resource Pool hierarchy
vSphere resource management p. 51. vSphere Resource pools can be grouped into hierarchies and used to hierarchically partition available CPU and memory resources. Resource pools always start at the root level. Each standalone host and DRS cluster has (invisible) root resource pool. You have to enable DRS first in order to create a resource pool.
Note: DRS is available in vSphere Enterprise and Enterprise Plus editions.
Resource Pools should be used when you would need to limit or to guarantee resources to VMs. By having resource pool you don't have to gurantee the resources to VMs individually, but only at the pool level.
Child resource pool – It's possible to create child resource pools under the root resource pool or under any other user-created resource pool. Each child resource pool owns some of the parent's resources. Inside of each child resource pool it's possible create another resource pool. (Russian dolly like).
Resource pool can contain:
- Child resource pools
Siblings – Resource pools and VMs at the same level are called siblings.
Creating multiple RP allows you to aggregate computing capacity from the underlying hosts within the DRS cluster. You then can set resources for each resource pool instead on individual VMs. For each resource pool you specify reservation, limit, shares and you can also specify if the reservation shall be expandable.
Define the Expandable Reservation parameter
Expandable Reservation parameter is a value allowing the resource pool resources became available to child resource pools and virtual machines.
If a VM’s workload increases and its resource pool cannot allocate more resources because there aren’t any available, the resource pool will asks its parent resource pool to borrow resources. Resource pools that have VMs and workloads varies, then you should possibly enable expandable reservations.
When the check box is selected (default), expandable reservations are considered during admission control.
If you power on a virtual machine in this resource pool, and the combined reservations of the virtual machines are larger than the reservation of the resource pool, the resource pool can use resources from its parent or ancestors.
Describe vFlash architecture
New version of VMware vSphere has introduced VMware vFlash Read cache, which enables you to use local SSD devices pooled together forming a pool of storage tier. The vFlash is integrated with vMotion, HA and DRS. The solution, the vFlash caching software, is tightly integrated into the hypevizor (placed into the data path), as an API, which is also available for third party caching modules. vFlash is a service within vSphere.
Flash Pooling as a resource pool:
- vFlash will appear as a new type of resource pool
- No consumption when VM is powered Off
- vMotion and DRS can be used
- The allocation of resources is based per virtual object (VM, Host…)
The Flash Resource management uses:
- Reservations, limits
- Uses per VMDK or per VM allocation (the config is at the VM level).
- Enforces admission control
- vFlash is a broker and manager for the entities which consumes the resources
vFlash Release 1.0 supports Write Through Cache (Read only)
The first release supports write through mode, which is read only. The write back mode will be available in future releases. It’s important to understand the the publicly available APIs gives opportunity to other storage companies to integrate their flash caching solution.
What’s needed for vFRC?
- A configured of hosts with each one with at least one SSD or PCIe SSD…
- vSphere 5.5 (vCenter 5.5 and ESXi 5.5)
Where to start with vFRC?
At the cluster level. You have the choice. You can right-click the cluster >All vCenter actions > Add virtual flash resource capacity.
On the next screen you select available SSD from each ESXi host and click OK.
Create/Remove a Resource Pool
To be able to create Resource pool you must enable DRS. You can use both vSphere C# client or vSphere Web Client. (Web client) Select Hosts and clusters > Manage > vSphere DRS > Edit > Check the Turn ON.
Easiest way to create resource pool is perhaps the Right click at the cluster > New resource pool…
To delete, simple too. Right click the Resource Pool > Delete
Configure Resource Pool attributes
- Navigate to the Host and Clusters view (View > Inventory > Hosts and Clusters)
- Right-click on the resource pool you want to edit and select Edit Settings…
- Change the name if desired
- Change the CPU Shares, Reservation, Expandable Reservation and Limit if desired
- Change the Memory Shares, Reservation, Expandable Reservation and Limit if desired
Shares – Specify shares for this resource pool with respect to the parent’s total resources. The amounts of shares you allocate to a resource pool are relative to the shares of any sibling (virtual machine or resource pool) and relative to its parent’s total resources. Sibling resource pools share resources according to their relative share values bounded by the reservation and limit.
Different types of shares – Low (1), Normal (2), or High (4) which specify share values in a ratio. Or you can select Custom to give each RP a specific number of shares, which expresses a proportional weight.
Reservation – Specify a guaranteed CPU or memory allocation for this resource pool. Defaults to 0. A nonzero reservation is subtracted from the unreserved resources of the parent (host or resource pool). The resources are considered reserved, regardless of whether virtual machines are associated with the resource pool.
Limit – Upper limit for this resource pool’s CPU allocation. Select Unlimited to specify no upper limit.
Shares – Memory shares for this resource pool with respect to the parent’s total. Sibling resource pools share resources according to their relative share values bounded by the reservation and limit. Select Low (1), Normal (2), or High (4), which specify share values in a ratio.
Select Custom to give each virtual machine a specific number of shares, which expresses a proportional weight.
Reservation – Guaranteed memory allocation for this resource pool.
Limit – Upper limit for this resource pool’s memory allocation. If you give RP limit 32Gb RAM it will never receive more RAM even if the host/cluster is able to allocate more. Select Unlimited to specify no upper limit.
Add/Remove virtual machines from a Resource Pool
No difficulties here. It's possible to use both clients. Drag and drop… -:)
Or when creating new VM, during the wizard creation you're asked whether you want to place the VM into specific resource pool…
If the resource pool does not have enough resources to guarantee the virtual machine reservation(s) then the move into the resource pool will fail (for powered-on virtual machine).
Create/Delete vFlash Resource Pool
To delete RP, similar as creation. Do a right-click on the RP > delete.
Drag-and-drop the virtual machine into another resource pool. You can also drag it into the root of the DRS cluster which will move it into the root resource pool.
Assign vFlash resources to VMDKs
Once you've added a capacity to the cluster by providing some flash resources from each of the hosts present in the cluster, you can now add those ressources to individual VMs (or respectively the VMDKs).
You can check the Flash Read cache resource availability through the Summary Tab.
You have to go and do it at the VM level (vFRC operates per VMDK). Select an individual VM and click edit settings > Virtual hardware tab >next to the Virtual Flash Read Cache > click Advanced.
Now can select the amount of GB (Mb) that will be reserved for that particular virtual hard drive. Depending of your workloads, because vFRC has variable block size capability (4kb – 1M). So the best selection will depends on your application, which IO size or your application which runs in your VM. (you can used for example vISCSI stats to find out) Then you carve up those information to match the block size of the vFlash to give the best possible performance.
Not every node in the vFlash cluster needs to have SSD installed, but if that’s the case, the particular host won’t be able to provide any vFlash resources.
Determine Resource Pool requirements for a given vSphere implementation
It depends is a good answer… Before determining the requirements you'll need to determine the workloads that will be running in the environment and also priorities within the whole infrastructure. RP are here to help to segment the resources by organization, by workload or other business requirements.
Once you have defined the workloads, you can start dividing up the resources pools the way it is able to meet the requirements of the workloads running on the DRS cluster.
You should check whether the RP need to reach out to the parent RP to provide more resources -> configure expandable reservations.
Check if you need reservations or limits. Do not use per-VM reservations as it's like if you would use per file NTFS permissions… [Administrative Overhead]. If you're using reservation then use it at the resource pool level.
Evaluate appropriate shares, reservations and limits for a Resource Pool based on virtual machine workloads
Know your workload first, then only you'll be able to define shares, reservations and (or) limits. We have talked about CPU shares, reservations, limits and Memory shares, reservations, limits in the chapter above. All the resources available within the cluster can be managed and distributed by Resource pools depending on how they're configured, but this determines the requirements. Note that limits is a resource limit and so it's not the same as if you were used shares which depends on other resources and their availability.
Tools and links:
- vSphere Resource Management Guide
- vSphere Virtual Machine Administration Guide
- What’s New in VMware vSphere® Flash Read Cache®
- vSphere Client / vSphere Web Client