VMware Distributed Resource Scheduler is one of the technologies you can use to configure vSphere resources and improve vSphere management. Certain settings can affect resource priority for VMs, and resource pools can help maximizes your customers' resources.
•Which host resources should a solutions provider monitor to help with vSphere management?
•What controls are available for configuring resources as part of vSphere management?
•What's the difference between shares, reservations and limits?
•What are resource pools, and how do they help vSphere management?
•More resources on vSphere management
•About the expert
There are four main host resources that are consumed by virtual machines: CPU, memory, network and disk. Of the four, disk is often times the first bottleneck encountered on a host, because it relies on a slower mechanical device. Therefore, solutions providers should closely monitor their disk subsystem to make sure they have it sized and configured properly. The network is typically the resource that you have to worry about least, because most hosts have plenty of network bandwidth available when using multiple network interface cards. CPU and memory usage is pretty straightforward; if you are not overcommitting memory on your hosts, then memory is not a concern. With CPUs, you can run into CPU scheduler restraints if you have too many virtual symmetric multiprocessing VMs running on a host.
There are many controls to help with vSphere resource management. These controls include resource pools that can be configured as well as resource shares, limits and reservations that can be placed on VMs. Solutions providers need to be careful when using resource controls in vSphere, because if they are not properly configured, they can severely limit your VM performance. Consequently, you need to make sure that you understand what the controls do prior to implementation. You should also monitor VM performance to ensure that your VMs aren't lacking resources. The use of resource pools and Distributed Resource Scheduler (DRS) are the best resource management tools because DRS can automatically manage VM placement across hosts for maximum efficiency.
Shares, reservations and limits can be set on individual VMs mainly for CPU and memory, and in a limited manner on disk (shares only). These settings can both limit and guarantee the amount of resources that each VM will have available, as well as prioritize a VM's access to resources against other VMs. Shares define a VM's priority -- low, normal, high or custom -- to access CPU and memory resources compared to other VMs. They are generally easier to configure and use than setting up individual reservations and limits on your VMs.
Reservations guarantee that a VM has access to a set amount of physical host memory or CPU. Memory can be set between 0 and the total amount of memory that has been assigned to a VM. CPU resources can be set between 0 and the total amount of host CPU MHz . This can be misleading, however, because a VM can never use more CPU MHz than the amount of virtual CPUs assigned to it.
Limits control the maximum amount of CPU and memory resources that a VM can use regardless of the amount available. For CPUs, a VM will always be capped at the limit that is set. When a VM reaches the limit of physical host memory that has been set on it, it begins using its disk swap file for additional memory.
Resource pools allow solutions providers to split a host or cluster's resources (CPU and memory only) into pools so they can be assigned to VMs. They can also be used for of administration delegation and to simply help organize VMs. Every standalone host and DRS cluster has an invisible root resource pool containing all the host or cluster's resources.
You can create child resource pools to split the host or cluster's resources into separate pools. Child resource pools own part of the parent's resources and can contain additional child resource pools to form a resource hierarchy. Resource pools can contain additional resource pools and VMs, and these are referred to as siblings if they are at the same level.
When you create resource pools, you allocate CPU and memory to them using shares, limits and reservations. Reservations in resource pools can be set to expandable so they can draw more resources from the parent pool if they are available. If a resource pool is set to not be expandable, then it is unable to draw additional resources that are available from the parent.
About the expert
Eric Siebert is a 25-year IT veteran whose primary focus is VMware virtualization and Windows server administration. He is one of the 300 vExperts named by VMware for 2009. He is the author of the book VI3 Implementation and Administration and a frequent TechTarget contributor. In addition, he maintains vSphere-land.com, a VMware information site.
This was first published in July 2010