I stumbled across an article on controlling Hyper-V processor resources this afternoon and was surprised to find that it is possible to set CPU reserves and limits on individual Hyper-V virtual machines. While evaluating System Center Virtual Machine Manager 2008 (SCVMM) in my lab I did not recall seeing such a feature. There are actually two areas within the SCVMM VM properties dialog to configure CPU-related options. Perhaps I overlooked this resource control setting in one of them? Let’s take a second look:
The Processor option is used to set the number of virtual CPUs and the CPU type. The latter sure is confusing, and according to the online help:
These settings do not specify actual hardware, however, VMM uses these settings to calculate host ratings and to set CPU resource allocation.
VMM, not Hyper-V, uses that CPU type for something, but it does not sound like resource management of running VMs. I suspect this is limited to the intelligent placement feature, the one-time recommendation of a host when provisioning or migrating a VM.
The Priority option looks like CPU shares on VMware ESX — a means of specifying which VMs will receive priority when there is contention for resources.
As far as I can tell, there are no more CPU resource settings available in SCVMM.
It turns out that with Hyper-V Manager, the other single pane of glass, it is possible to set CPU reservations and limits for individual VMs:
It’s hard to understand why this configuration option did not make it into the SCVMM administrator console, which is supposed to be a panacea for “physical and virtual management.” Virtualization administrators that need to control VM CPU resources are forced to open another management tool in order to do so. (And that other utility does not run on Windows XP, by the way.)
Not only do VMware VI3 administrators have a single client for managing all aspects of their hosts and virtual machines, they have something else: resource pools. Why manage resources for individual machines when you can place them in containers that partition CPU and memory from an entire hypervisor farm?
No experienced administrator would make a practice of applying permissions to individual user accounts instead of a group. That doesn’t scale and just increases your OpEx. Why not expect the same maturity in your VM resource management?