Hyper-V, Microsoft's new hypervisor-based virtualization system, is without doubt the killer feature in the new Windows Server 2008 operating system. It's fair to say that while many of the other new features are evolutionary, Hyper-V, by contrast, is revolutionary.
Server virtualization is still far from mainstream, but with the inclusion of Hyper-V in most versions of Windows Server 2008 it's likely that it will very rapidly transform the IT landscape, making virtual machines the norm rather than the exception.
That's because there are many benefits to running a virtualized server infrastructure, including:
- Increased server utilization - it's not unusual for a server to run at about 10 percent utilization. By running several virtual servers on a single machine, organizations can run far fewer servers at 60 or 70 percent utilization.
- Reduced power and cooling costs - electricity costs are becoming a very significant part of total data center costs. By running fewer physical servers at higher utilization rates, significant power savings can be made.
- Reduced hardware costs - fewer servers means less machines to maintain and replace.
- Increased agility though faster provisioning - a virtual server can be created from a template in a matter of minutes whenever required, either by IT staff, or by end users if self-service provisioning is available. By contrast, purchasing, building, and provisioning a physical server may take days or even weeks to complete.
- Increased reliability and reduced downtime - virtual machines running on failing hardware can be moved to new host hardware in a matter of moments. Both virtual machines and physical hosts can be failover clusters nodes.
Hypervisors can be quite large and complex, containing their own driver model - an architecture Microsoft calls monolithic. By contrast, Microsoft has designed Hyper-V to be what it calls "microkernelized." The hypervisor itself is very thin, which is good for security in that only a small amount of code runs at the most privileged hypervisor level, and no third-party code or drivers are included. The key virtualization stack actually runs in a parent partition running Server 2008, from which management tasks such as the creation of child partitions containing virtual machines are carried out using the Windows Server Virtualization console. The recommended way to set up a virtualization server is to carry out a Server Core installation, adding Hyper-V as a server role.
What type of virtual machine can it host? The answer is a surprisingly wide variety, split into two categories.
The first are high-performance VMBus-based virtual machines, which run "enlightened," or Hyper-V aware, operating systems including Server 2008 and 2003, Windows Vista, and Linux distributions that so far include SuSE Linux Enterprise Server 10. VMBus is a logical pipeline connecting Virtualization Service Consumers (VSCs) in child partitions with the Virtualization Service provider (VSP) in the parent partition, allowing virtual machines to access hardware devices via the parent partition.
The second category is lower-performance, emulation-based virtual machines, running "unenlightened" operating systems including older Windows Server versions, other Linux distributions, and other X86-based operating systems such as Solaris and SCO UNIX. These virtual machines are basically running in the same way as virtual machines running on a virtualization system such as Virtual Server or VMware's VM Workstation, which themselves run on top of a standard operating system, with none of the speed benefits of hypervisor-based virtualization.
Here are some of the key features of Hyper-V:
- Hyper-V only runs on x64-based machines, but this gives it the ability to address up to a terabyte of RAM. An unlimited number of virtual machines can be run (if the resources are available) limited to a maximum of 64Gb of Ram each.
- Symmetric multiprocessing (SMP) is supported. This means that as long as the physical host server has four cores, virtual machines are able to make use of up to four virtual processors to take advantage of multi-threaded applications.
- Network load balancing is also supported. Hyper-V includes a new virtual switch that allows Windows network load balancing to be used to balance loads across virtual machines hosted on separate physical servers
- Virtual machine snapshots allow administrators to capture a virtual machine's entire state at an arbitrary moment in time, and rapidly revert the virtual machine to that state should the need arise.
- Hyper-V requires hardware-assisted virtualization provided by an Intel-VT or AMD-V chip.
- Using Volume Shadow Copy Service (VSS), virtual machines can run live backups while they are running - although there are some performance hits when backups are in operation.
Perhaps the biggest disappointment with Hyper-V as it is available today is the lack of a live migration feature comparable to VMware's VMotion. This allows a virtual machine to be moved from one physical server to another without the need to interrupt its operations. Instead, Microsoft offers Quick Migration, which allows a virtual machine to be moved, but requires that its state be saved, moved, and restarted, resulting in some downtime. Microsoft says that this may be as little as 10 seconds, so the difference may not be significant, and in fact a live migration feature will be introduced in the future, according to the company.
It's also worth noting that at present there is no equivalent to VMware's Storage VMotion product, which allows a virtual machine's disk file to be moved from one storage device to another without stopping the virtual machine itself. This means that some interruption is inevitable during storage maintenance or upgrades.
Virtual machine management software is a key part of any virtual server infrastructure, and as an alternative to doing this from another Windows Server 2008 machine, Microsoft offers its System Center family of management products. For the most part System Center can be used to manage virtual servers in the same way that it manages physical ones without making a distinction between the two. For virtual machine specific tasks, Microsoft has added a new module, called Virtual Machine Manager 2007, to its System Center lineup.
In addition to enabling Quick Migration (mentioned earlier) Virtual Machine Manager can be used to manage the process of server virtualization. This starts with the analysis of historical performance data to identify servers suitable for virtualization. Virtual Machine Manager then converts servers from physical to virtual machines (known as P2V conversion) with a wizard-based process, using Volume Shadow Copy Service to virtualize the servers "on the fly", without the disruption of having to take them out of service first.
Finally, the software can be used to allocate newly created virtual machines to physical host servers. This can be a hard task to carry out efficiently, as the processor and memory requirements of each virtual machine has to be paired with a server with the appropriate resources available so peak usage patterns of both the virtual machine and the underlying physical server can be accommodated. It achieves this using a feature called Intelligent Placement, which takes data from the available Hyper-V hosts and elsewhere to identify the most suitable host for a particular virtual machine.
Although many large enterprises have begun experimenting with virtualization, the number of virtual servers in use is still relatively small compared to their physical counterparts. With the inclusion of Hyper-V in Windows Server 2008 those proportions could well be reversed within the next five years, and the introduction of Hyper-V may come to be seen as a watershed moment in the evolution of server virtualization.