Windows Server 2008 R2 includes built-in virtualization with the Hyper-V
role. Hyper-V is hypervisor-based, native virtualization that uses the
hardware virtualization capabilities of the latest Intel and AMD
processors to provide a robust, fast, and resource-conserving virtual
environment.
1. Emulation vs. Hypervisor
There are two basic methods of virtualizing operating systems: emulation and hypervisor. Emulation builds an execution environment on top of the underlying operating system of the host computer and uses software to simulate the hardware that is made available to the guest operating systems.
A hypervisor
is software that runs directly on the hardware of the physical server
and provides a narrow hardware abstraction layer between the hardware
and the base operating system. The hypervisor can use the native
hardware support in current Intel and AMD processors to improve the
overall performance and security of the hypervisor.
Because Hyper-V is a hypervisor and is built in to Windows Server 2008 R2, it runs more efficiently and natively. A server running Hyper-V has multiple partitions, each running natively on the underlying hardware. The first partition is known as the parent partition (or sometimes host)
and acts as the hardware and operating system control partition for all
the other partitions where virtualized operating systems run. The other
partitions are child partitions (or guests), each with their own operating systems, running directly on the hypervisor layer, as shown in Figure 1.
Windows Server 2003 supported using Microsoft Virtual
Server 2005 R2 as a virtualization solution. Virtual Server is not a
hypervisor-based virtualization: it is designed to run on top of an
existing operating system—the host operating system—and provide an
emulated hardware environment for guest operating systems, as shown in Figure 2.
Hyper-V
runs on Windows Server 2008 R2, including Server Core installations,
and is also available as a completely free stand-alone server: the
Microsoft Hyper-V Server 2008 R2, hereafter known as the Hyper-V Server. In most cases, a Server Core installation or the Hyper-V Server is the preferred parent partition for a server that will be used for virtualization.
This limits the resource footprint of the parent partition and also
makes it easier to protect because the number of services and attack
vectors is fewer. For Windows Small Business Server 2011 Standard, we
prefer the stand-alone Hyper-V Server or, for installations using a
Premium Add-on, full Windows Server 2008 R2 where a graphical interface
is preferred.
2. Requirements
The requirements for enabling the Hyper-V role on Windows Server 2008 R2 are
In addition to the
requirements for the parent partition of Windows Server 2008 R2, each
child partition requires approximately 75 megabytes (MB) of RAM and the
hard disk space used by the operating system in the child partition.
Finally, it is important that
your server have a minimum of two network interface cards (NICs)
installed, exclusive of any special management NICs such as an HP iLO.
One of these NICs will be reserved for remote management of the parent
server and ensures that you can always connect to the parent partition
to manage the child partitions.
Any virtualization
solution puts a lot of stress on the hardware of the I/O subsystem,
especially the disk subsystem. Each virtual hard disk is a file, and
with multiple operating systems each writing to files independently and
concurrently, a lot of I/O traffic is writing to the parent partition’s
file system. As a result, a weak or slow I/O subsystem will quickly
become the bottleneck limiting the overall performance of the virtual
machines.
Also, unlike many applications, virtualization tends to be write-intensive, making it essential that you plan your RAID
subsystem accordingly. RAID-5 is a much less appealing alternative as a
base RAID choice for the parent operating system. You also do not want
to run software RAID on the parent Windows Server 2008 R2.
Any RAID subsystem works better
the more disks it has. A RAID 0+1 array that has four 1-terabyte disks
has 2 terabytes of disk space available, but it is not as fast as a RAID
0+1 array of eight 500-GB disks, which provides the same 2 terabytes of
disk space. By adding extra disks, writing to and reading from the
array is distributed across more disks, putting less load on each disk.
The same stresses
apply to the networking portion of the I/O subsystem that apply to the
disk portion. Because many virtual machines can connect through a single
physical NIC, you’ll want to specify fast and resource-sparing network
cards for your Hyper-V
server. Here’s a clue: a $20 GigE network card is not going to provide
the same satisfactory experience as a quality, server-class network card
connected to either the PCI-X or PCIe busses. And if you’re running
more than three or four virtual machines, you’re definitely going to
want additional NICs to spread the load.
If you’re building or specifying a server for
Hyper-V (or any virtualization product), don’t skimp on the I/O
subsystem. A fast RAID controller with a large cache and a wide array
with as many disks as you can manage is an important performance choice.
And be especially aware of redundancy. If your Hyper-V server fails
because you’ve had two disks in a RAID-5 array fail, not only is the one
physical server down, but also your SBS server and every other virtual
machine running on that server.