I've already written articles on how to set up a Hyper-V Cluster (http://www.experts-exchange.com/A_7910.html
), and how we can benefit from Microsoft licensing grants within Hyper-V (http://www.experts-exchange.com/A_7831.html
), but there is really more that needs to be told - for everybody's benefit. These that you see here are "gotchas" - which means you could easily be caught out.
Power Mode affects Performance
Windows Servers (and workstations) very thoughtfully set our power mode on all new installs to be "Balanced". What does this mean exactly? Well, take a look at the two screenshots below, and see if you can spot the difference (apart from the time).
The first image has the default power mode of "Balanced" and the second image has the power mode of "High Performance". The difference between the two pictures is the value for "Speed".
Consider this: Your physical server default installation has it's processing power reduced by half automatically. Any guest machines you have also have their processing power reduced by half. This is hardware assisted virtualization, sure, but the Hypervisor is still responsible for allocating time slices, so effectively, on a standard installation, your virtual machines may be operating at around one quarter of the maximum speed.
To get around this, change your power plan on all your physical hosts as well as virtual hosts to be "High Performance" You can do this easily by a simple command line:
powercfg -setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
Windows 2008 R2 Datacenter edition has limitations, and the important ones for us to know are:
Physical processors: 64
Logical processors: 256
Maximum memory: 2 TB
"I know - let's buy one of them lovely IBM 3850 X5 servers with 4 x Decicore (10 core) processors and shove in 2 TB of RAM! We can run hundreds of virtual machines on that!"
With an effective 80 cores in your server, it seems like a very plausible comment from a system engineer like myself. Unfortunately, it couldn't be more wrong.
Hyper-V has it's own restrictions - and they are:
Logical Processors: 64
Memory: 1 TB
If you bought the server I've just described, you've just wasted money. Rather opt for the slightly faster 8 core CPU's instead of the 10 core ones.
Further limitations can be seen at Technet at the following URL: http://technet.microsoft.com/en-us/library/ee405267%28WS.10%29.aspx
If you are on an 80 core server, and Hyper-V has limited you to 64 cores - don't let it operate like that. Hyper-V will limit the last CPU's which go over the 64 limitation - so in a 4 CPU 10 core with hyperthreading server, your effective cores will 20 + 20 + 20 + 4. This means that 3 of your CPU's can be utilized fully and the last is not. you could potentially resolve this by limiting the amount of cores per CPU in your BIOS, making sure it will offer a balanced number of cores to a maximum of 64 to the OS.
Hyper-V slows down over time - reboot every 1-2 months. In a heavy environment like mine where I am running well over 100 virtual servers per physical host, I've found that the Clustering part of Hyper-V seems to start slowing down, and (the clustering resource manager) may crash when trying to do a simple task like move a virtual machine between hosts. This unfortunately very abruptly stops all running Virtual machines on that host, and they have to start up on another host. You will notice this slowdown especially when you're using SCVMM to manage your Hyper-V clusters, because jobs will start performing slower. As an example, just before my cluster failed, it took me 40 minutes to create a new virtual machine, when it should really take me 40 seconds. My cluster hosts seem to need rebooting every 2 months. Be sure to fit in a maintenance schedule to update and reboot your servers every 1 or 2 months to avoid slowdowns.
More "gotcha" type tips will be added to the document (via comments) as I get caught out by stuff :)