Hyper-V, codenamed Viridian and formerly known as Windows Server Virtualization,
is a native hypervisor; it can create virtual machines on x86-64 systems. Starting
with Windows 8, Hyper-V supersedes Windows
Virtual PC as the hardware
virtualization component of
the client editions of Windows NT. A host server running
Hyper-V could be accessed remotely by multiple guest computers. Each guest
computer could perform as if they are using the host server directly. Users on
the guest computers could run applications in the host server remotely, even
though that application is not available on the guest computer. A beta version
of Hyper-V was shipped with certain x86-64 editions of Windows Server 2008, and a finalized version (delivered through Windows
Update) was released on June 26, 2008. Hyper-V has since been released in a free stand-alone
version, and has been upgraded to Release 2 (R2) status. It was updated in Windows
Server 2012.
Versions and Variants.
Hyper-V exists in two variants:
1.
As a stand-alone
product called Hyper-V Server: Four major versions have so far been released:
Hyper-V Server 2012 R2 (containing the current release of Hyper-V), Hyper-V
Server 2012, Hyper-V Server 2008 R2 and Hyper-V Server 2008.
2.
As an installable role
in Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2, Windows Server 2008 and the x64 edition of Windows 8 Pro.
Microsoft made the
stand-alone versions of Hyper-V available free of charge through a downloadable
DVD ISO image file. Hyper-V Server 2008 was released on October 1, 2008. It is
a variant of the core installation of Windows
Server 2008 that includes full Hyper-V functionality; other Windows
Server 2008 roles are disabled, and there are limited Windows Services. The free Hyper-V Server 2008 variant
is limited to a command-line
interface (CLI), where configuration of the "Host" or
"Parent" (Hyper-V Server 2008) OS, physical hardware and software is
done using shell commands. A new menu driven CLI interface does simplify
initial configuration considerably, and some freely downloadable script files
extend this concept. Administration and configuration of the "Host"
(Hyper-V Server 2008 OS) and the "guest" or virtual OSes is generally
done by downloading extended Microsoft
Management Consoles that is installed onto a Windows 7 PC or Windows 2008
Server (32 or 64 bit) or System
Center Virtual Machine.
Alternatively, another Windows Server 2012 (or
2008) computer, with the Hyper-V role installed, can be used to manage Hyper-V
Server 2012 (or 2008) by redirecting the management console. Other
administration and configuration of Hyper-V Server 2008 can be done using a Remote Desktop RDP session (though still CLI) or redirected standard management
consoles (MMC) such as "Computer Management" and "Group Policy
(Local)" from a Windows Vista PC or a full installation of Windows. Server 2008. This allows
much easier "point and click" configuration, and monitoring of the
Hyper-V Server 2008. Hyper-V Server 2008 Release 2 (R2) was made available in
September 2009, its main feature being the inclusion of Windows PowerShell v2 for greater CLI control, and the updated Windows
Server 2008 R2 code base. Proper configuration of the free CLI Hyper-V Server
is not straight forward, often requiring CLI configuration of network
interfaces, configuring Windows Firewall to enable the various Remote
Management Consoles before the server can be administered. Also using a
Microsoft Vista PC to administer Windows 2008 R2 Hyper-V server is not fully
supported.
Architecture.
Hyper-V implements
isolation of virtual machines in terms of a partition.
A partition is a logical unit of isolation, supported by the hypervisor, in
which each guest operating system executes.
A hypervisor instance has to have at least one parent partition, running a
supported version of Windows
Server (2008, 2008 R2, or 2012). The virtualization
stack runs in the parent partition and has direct access to the hardware
devices. The parent partition then creates the child partitions which host the guest OSs. A parent
partition creates child partitions using the hyper-call API, which is the application programming
interface exposed by Hyper-V. A child partition does not have
access to the physical processor, nor does it handle its real interrupts. Instead, it has a virtual view of the processor and
runs in Guest Virtual Address,
which, depending on the configuration of the hypervisor, might not necessarily
be the entire virtual
address space. Depending on VM configuration,
Hyper-V may expose only a subset of the processors to each partition. The
hypervisor handles the interrupts to the processor, and redirects them to the
respective partition using a logical Synthetic
Interrupt Controller (SynIC).
Hyper-V can hardware accelerate the address translation of Guest Virtual
Address-spaces by using second level address translation provided by the CPU,
referred to as EPT on Intel and RVI (formerly NPT) on AMD. Child partitions do not have
direct access to hardware resources, but instead have a virtual view of the
resources, in terms of virtual
devices. Any request to the virtual devices is redirected via the VMBus to the devices in the parent
partition, which will manage the requests. The VMBus is a logical channel which
enables inter-partition communication. The response is also redirected via the
VMBus. If the devices in the parent partition are also virtual devices, it will
be redirected further until it reaches the parent partition, where it will gain
access to the physical devices. Parent partitions run a Virtualization Service Provider (VSP), which connects to the VMBus and
handles device access requests from child partitions. Child partition virtual
devices internally run a Virtualization
Service Client (VSC), which
redirect the request to VSPs in the parent partition via the VMBus. This entire
process is transparent to the guest OS. Virtual devices can also take advantage
of a Windows Server Virtualization feature, named Enlightened I/O, for storage,
networking and graphics subsystems, among others. Enlightened I/O is
specialized virtualization-aware implementation of high level communication
protocols like SCSI to take advantage of VMBus directly, that allows
bypassing any device emulation layer. This makes the communication more
efficient, but requires the guest OS to support Enlightened I/O. Windows Server 2008 R2, Windows
Server 2008, Windows 7, Windows
Vista, Red
Hat Enterprise Linux, and SUSE Linux are currently the only operating systems that support
Enlightened I/O, allowing them therefore to run faster as guest operating
systems under Hyper-V than other operating systems that need to use slower
emulated hardware.