Microsoft Hyper-V R2 Nips at VMware's Heels
Microsoft is poised to improve its standing in the world of virtualization with the much-anticipated update to Windows Server 2008 Hyper-V, Redmond's hypervisor-based server virtualization solution for 64-bit Intel- and AMD-based servers. First released last year, Hyper-V proved a less-than-compelling offering compared to virtualization platforms from VMware, Virtual Iron (now Oracle), Citrix, and other rivals. Hyper-V Release 2, part of Windows Server 2008 R2, delivers some exciting new features that change the game.
Among Hyper-V R2's new features is support for 64 logical processors; Live Migration support, which allows admins to move a VM from one physical server to another without service interruption; VM Chimney, which provides TCP offload support; and a new processor compatibility mode for Live Migration, which enables migrations between different CPUs in the same family.
[ See the InfoWorld Test Center review, "VMware vSphere 4: The once and future virtualization king. "]
On top of these enhancements, Hyper-V will remain free with the purchase of Windows Server 2008, which seems like a great deal. However, to use the new Live Migration capability -- and to centrally manage more than one Hyper-V host -- you also need System Center Virtual Machine Manager (SCVMM), which costs $869 per physical server. Depending on what you're running at your organization, SCVMM may be a welcome addition. Among its features, it can manage both Hyper-V and VMware servers.
Start Your Virtualization Engine
Installing Hyper-V is no different than installing standard Windows Server 2008, although you do need to install the new Hyper-V Manager MMC (or SCVMM). The Hyper-V Manager can be installed on the same server as SCVMM or on a separate machine. It can run on Windows Server 2008 or Windows Vista SP1.
Guest operating system images can be installed from physical media or ISO image files, as well as over the network from a network image server. I had no problems installing any of the supported versions of Windows or Linux that I tried.
Installing SCVMM 2008 R2 is somewhat more complex than installing the usual single application: It depends on SQL Server 2005 or SQL Server 2008 (SCVMM will install SQL Server Express, but you'll need the full SQL Server if you'll have more than 150 hosts), plus PowerShell 1.0, the Windows Automated Installation Kit 1.1, IIS 7.0, and an instance of System Center Operations Manager 2007 for reporting. Installing Operations Manager isn't strictly necessary, but only through the combination of SCVMM and Operations Manager can you monitor and manage virtual servers and their physical hosts together.
Worth the Hype
Hyper-V's spiffy new features worked well; at least, those I was able to try did, which included Live Migration and processor-compatibility mode. My lab was not equipped to test 64-core support, and TCP offload requires a new NIC from Intel or Broadcom. Live Migration is not simple to implement, as it requires adding several roles to each Hyper-V server as well as using SCVMM, but the steps are not onerous and I had no trouble getting everything to work.
Live Migration is far superior to the Quick Migration feature in the previous version of Hyper-V. Using Quick Migration, it generally takes 30 seconds or longer to move a VM from one physical server to another, long enough that most client applications lose their connection to the server and experience some kind of failure. Live Migration moves a VM without any service interruption; even heavily loaded servers can be moved without problems. I saw short delays (one to two seconds) when migrating a VM with 4GB of memory while running load simulation tools, but the server was always reachable and the delay wasn't long enough to cause the application to fail. With smaller VMs (1GB and 2GB of memory) delays were not perceptible.
Hyper-V R2 also includes Cluster Shared Volumes, a new feature that allows two physical servers and multiple VMs to share the same volume or LUN. This not only makes setting up storage much easier, but it's necessary for VMs that may need to migrate from one physical server to another. Cluster Shared Volumes is the storage foundation that makes Live Migration possible.
The processor-compatibility mode for Live Migration eases the task of setting up backup servers or secondary servers for higher loads by negating the requirement that the physical servers have the same model CPU. Rather, the CPUs need only be from the same family, thus opening the opportunity to use older servers with earlier-model CPUs for backups. For instance, I was able to migrate VMs from an HP ML370 G5 with dual Xeon 5400 CPUs to an HP DL360 G4 with dual P4 Xeon 3.6GHz processors.
Enable with Caution
Processor compatibility mode doesn't eliminate all CPU-related obstacles. For starters, migrations between AMD and Intel servers remain impossible (to be fair, no virtualization platform has overcome this hurdle yet). Further, the CPUs require support for either Intel Virtualization Technology or AMD Virtualization, which means you're limited to relatively recent CPU models. You won't be able to use those old Pentium Pro servers. Bear in mind that processor compatibility mode is turned off by default, as it can reduce the functionality of that nice, new processor to its base. In short, you don't want to enable processor compatibility mode if you're not concerned with migration.
Also for performance reasons, VM Chimney and Virtual Machine Queue are both disabled by default. VM Chimney allows TCP/IP to be offloaded to a physical NIC, which reduces CPU loads substantially. However, it's not compatible with every NIC. Also, it's not suited for all types of traffic. You may not see improvement among applications with small packets and interactive traffic, though SQL traffic, backups, Live Migration, and other applications that make use of larger packets and streaming traffic will benefit greatly.
Virtual Machine Queue allows a NIC to use DMA (Direct Memory Access) to route network traffic directly into a VM's memory, which eliminates both packet copies in the virtual network and route lookups in the virtual switch, thus improving performance significantly. Currently, only a few Intel and Broadcom NICs support VMQ.
Robust Management Not Included
The Hyper-V Manager plug-in for the ubiquitous Microsoft Management Console (MMC) is perfectly adequate for managing a single Hyper-V server. However, it's neither intended for nor capable of managing multiple Hyper-V instances. Hyper-V Manager can monitor only one Hyper-V server at a time, and it's incapable of kicking off a Live Migration or even a Quick Migration. For the more sophisticated tasks, you'll need SCVMM.
SCVMM offers substantial benefits for the price. In addition to allowing both manual and automatic Live Migration, it supports physical-to-virtual and virtual-to-virtual migration from VMware hosts to Hyper-V hosts. Further, it allows the same management of ESX hosts that you get through VMware vCenter (because it works through vCenter), enabling management of a mixed Hyper-V and ESX environment from one console. Moreover, SCVMM supports libraries of VM templates, hardware profiles, and ISO images to simplify the deployment of multiple VMs.
SCVMM also provides a fault tolerance feature similar to VMware's High Availability. You can monitor a server, and if that server stops responding, the VM will automatically restart on another server. Configuring this is not quite as simple as a drop-down menu selection; you need to script it, but it isn't difficult and certainly doesn't require research to figure out.
Finally, SCVMM also includes some nice monitoring and reporting tools. It can send e-mail notifications if utilization exceeds a given threshold, for example, and it provide reports that show that the Hyper-V server is earning its keep, and that help identify potential bottlenecks before they become problems. Performance and Resource Optimization (PRO) -- a new SCVMM tool that requires Operations Manager -- is useful for optimizing and troubleshooting a Hyper-V server. It provides application-aware advice on getting a Hyper-V server to run better. The advice can be basic, but it can produce useful information on making specific applications, such as SQL Server 2005, run in a VM.
Hyper-V vs. VMware
Given all the improvements Microsoft has poured into Hyper-V, one might wonder how it stands up to the offerings from the reigning virtualization champ, VMware. Though Hyper-V has made some dramatic strides, it needs to put on more muscle before it can go toe-to-toe with VMware vSphere 4 (or its predecessor, VMware Infrastructure 3).
For starters, VMware supports 37 different operating systems, whereas Hyper-V R2 has trouble supporting any OS that doesn't have "Windows" in its moniker. Presentation of hardware resources such as video cards and NICs is particularly problematic under Hyper-V. In most cases, I ran into problems when installing nonsupported versions of Linux, including Fedora 11 and Ubuntu Server 9.04. Suse Linux Enterprise Server (versions 10 and 11) and Red Hat Enterprise Linux (versions 5.2 and 5.3) are the only Linux distributions officially supported, and VMs running these operating systems are limited to a single virtual CPU.
Release 2 of Hyper-V does match VMware in its support for 64 logical processors. (Windows Server 2008 R2 itself supports 256 logical processors, but only 64 can be used by Hyper-V.) Moreover, Hyper-V R2's new Virtual Machine Queue (VMQ) feature matches the direct memory access capabilities of the NetQueue used in VMware ESX 3.5 and 4.0. VMQ and NetQueue skip some virtual network overhead when moving traffic from the VM to the network adapter, essentially bouncing it from one place in memory to another, and then to the NIC. However, VMware's new VMDirectPath I/O feature surpasses both VMQ and NetQueue. VMDirectPath basically gives every VM direct access to the NIC as if they were the only OS on the hardware, making the path from OS to NIC a little more direct than VMQ and NetQueue.
VMware vSphere 4 also offers some improved memory utilization, with the equivalent of thin provisioning. You can give VMs more memory than the server actually has, which is useful because you can dynamically reallocate memory from idle VMs to active ones, allowing more VMs to be run on a single system. Setting up VMotion in VMware is less difficult than getting Live Migration up and running; plus, VMware delivers a wider array of supported hardware configurations.
Hyper-V may hold an economic edge, however. It likely will be more affordable than VMware, especially if you want to use Live Migration, because that functionality will run you extra with VMware. Further, vSphere will probably cost more than Windows Server 2008 Enterprise or Datacenter edition. I say "probably" because both Microsoft and VMware are murky about pricing; it varies depending on what type of company you have, how many units you buy, and a number of other obscure factors.
If you're looking to virtualize only recent Microsoft operating systems for development or deployment, Hyper-V is a good choice, and it will be easy for experienced Microsoft admins to deploy and manage. VMware will represent a substantial learning curve for most administrators, especially non-Linux admins. On the other hand, if you want to virtualize operating systems not supported by Hyper-V -- such as any flavor of Linux besides Suse and Red Hat, Microsoft OSes older than Windows Server 2000, Solaris, NetWare, or FreeBSD -- or need the advanced features in vSphere, such as thin-provisioning or VMDirectPath, you'll want to go with VMware.
All in all, Microsoft shops will welcome the new features of Hyper-V R2. You'll need to invest in SCVMM to reap the full benefits of the update, and the combination is certainly not overpriced. Even without SCVMM, Hyper-V is a fine product and quite usable for single-server instances. If you want to manage multiple virtualization servers and take advantage of fault-tolerant VMs using Live Migration, you'll need SCVMM. Whether the new features will induce users of VMware to move is another question.