VCP4 VMWare Certified Professional Exam Cram: Managing vSphere Resources
- VM CPU and Memory Management
- vMotion and Storage vMotion
- Distributed Resource Scheduler
Understanding resource management is the single most important component of designing and maintaining your virtual infrastructure. To properly identify how many virtual machines (VMs) you can load on your ESX/ESXi hosts, you must understand how resource management works. Furthermore, to plan for scalability and high availability, you must thoroughly understand resource management. This chapter covers resource management in a VMware Infrastructure 3 environment.
VM CPU and Memory Management
- Limit
- Reservation
- Shares
- Resource Pools
- Clusters
- Expandable Reservation
Understanding how virtual machines address their resources, particularly their CPU and memory resources, is extremely important. As Figure 8.1 illustrates, the three settings that control the VM's CPU and Memory resource management are as follows:
- Limit defines the maximum that a VM can consume in CPU (measured in megahertz, or MHz) and memory (measured in megabytes, or MB).
- Reservation is the minimum that a VM needs in terms of CPU and memory resources to be able to function properly.
- Shares identify the frequency and priority a VM has in terms of accessing time slices on the physical CPU and memory. All VMs are assigned shares. The more shares a VM is assigned, the more priority it has over physical resources.
Figure 8.1 Virtual machine resource management.
A virtual machine's vCPUs are always scheduled at the same time. When you're assigning shares, keep in mind the number of vCPUs configured for any given VM. A reservation of 1,000 MHz might be adequate for a VM that has only one vCPU, but a VM of two vCPUs will have to divide these 1,000 MHz into 500 MHz per vCPU, and that might or might not be adequate depending on what this VM's function will be. Similarly, reservation of 1,000 MHz for a VM that has four vCPUs renders each vCPU with 250 MHz, which further diminishes the functionality of the VM.
The Available Memory setting, which is a fourth setting option enabled only for the memory configuration of a VM, is the initial memory that you configure for a VM during its creation. You can always modify this option, after the VM is created. With this in mind, if the Available Memory and Reservation values differ, the VMkernel compensates for this discrepancy by creating a swap file for the difference between the two values. An example of this would be if the Available Memory setting is configured for 2GB and the reservation is set to 1GB; then the VMkernel creates a swap file to compensate for the difference.
When assigning shares to a virtual machine, you have four options: High, Normal, Low, and Custom. Table 8.1 outlines how these settings translate in number of shares for CPU and memory. The values in Table 8.1 are currently valid for resource pools; as for VMs, the values should read High=2000, Normal=1000, and Low=500.
Table 8.1. CPU/Resource Pools CPU and Memory Share Value Calculations
Share Setting |
Number of CPU Shares |
Number of Memory Shares |
High |
2000 * # of vCPUs |
20 * Available memory |
Normal |
1000 * # of vCPUs |
10 * Available memory |
Low |
500 * # of vCPUs |
5 * Available memory |
Custom |
Manually specified |
Manually specified |
Using Resource Pools to Govern CPU/Memory Resources
A resource pool enables you to group virtual machines and apply the same resource policy on them. Resource pools can be created for a single ESX/ESXi host or to a Distributed Resource Scheduler (DRS) cluster to govern the CPU and memory resources. Grouping virtual machines also makes it easier to implement security and delegate administration to other users and groups. You should also know that you can create child resource pools and further compartmentalize VMs.
Resource pools have the same settings as virtual machines; therefore, you can control a resource pool's CPU and memory shares, limits, and reservations. As Figure 8.2 illustrates, a resource pool has an additional expandable reservation option, which allows a child resource pool to tap into the parent resource pool and harness whatever resources are available to satisfy its own shortage. An expandable resource is used only when the resource pool cannot secure enough resources to satisfy its policy.
Figure 8.2 Resource pool properties.
You can view a resource pool's data using either of the following methods:
- Highlight the resource pool in the inventory and then select the Summary tab.
- Choose the Resource Allocation tab while the resource pool is selected in the inventory.
Cram Quiz
Answer these questions. The answers follow the last question. If you cannot answer these questions correctly, consider reading the section again.
-
Which setting controls the maximum CPU time measured in MHz that a virtual machine is allowed to use?
A.
Limit
B.
Reservation
C.
Shares
D.
Affinity
-
True or false: If a virtual machine's available memory and its reservation memory setting differ, the VMkernel generates a VM-specific swap file for the difference between the two settings.
A.
True
B.
False
-
What is the name given to the topmost resource pool?
A.
Resource Pool
B.
Default Resource Pool
C.
Root Resource Pool
D.
Master Resource Pool
-
True or false: Resource pools can be used with a standalone ESX/ESXi host or a DRS cluster.
A.
True
B.
False
Cram Quiz Answers
-
A is correct. Limit is the setting that controls the maximum a CPU can use measured in MHz; therefore, answers B, C, and D are incorrect.
-
A, True, is correct. When the Available Memory and the Memory Reservation settings differ, the VMkernel generates a swap file for the difference.
-
C is correct. The Root Resource Pool is the name given to the topmost resource pool; therefore, answers A, B, and D are incorrect.
-
A, True, is correct. Resource Pools can be created for a single ESX/ESXi host or for a DRS cluster.