Changes

Jump to: navigation, search

An Overview of the Hyper-V Architecture

4,042 bytes added, 16:17, 8 January 2009
no edit summary
This chapter of [[Hyper-V Essentials]] is intended to provide an overview of the architecture of Microsoft's Hyper-V server virtualization technology.
 
== Hyper-V Virtualization Type ==
 
Hyper-V implements what is commonly referred to as ''Type 1 Hypervisor'' virtualization. In this scenario, a hypervisor runs directly on the hardware of the host system and is responsible for sharing the physical hardware resources with multiple virtual machines. This concept is illustrated in the following diagram:
 
[[Image:type_1_virtualization.jpg|Type 1 Virtualization with Hypervisor running directly on hardware]]
 
In basic terms, the primary purpose of the hypervisor is to the manage CPU and memory allocation between the various virtual machines running on the host system.
 
== Hardware Assisted Virtualization ==
 
Hyper-V will only run on processors which support hardware assisted virtualization. Before looking at Hyper-V in detail, it is worth providing a brief overview of this hardware assisted virtualization actually means.
 
The x86 family of CPUs provide a range of protection levels also known as rings in which code can execute. Ring 0 has the highest level privilege and it is in this ring that the operating system kernel normally runs. Code executing in ring 0 is said to be running in system space, kernel mode or supervisor mode. All other code, such as applications running on the operating system, operate in less privileged rings, typically ring 3.
 
Under Hyper-V hypervisor virtualization a program known as a hypervisor, as previously mentioned, runs directly on the hardware of the host system in ring 0. The task of this hypervisor is to handle tasks such CPU and memory resource allocation for the virtual machines in addition to providing interfaces for higher level administration and monitoring tools.
 
Clearly, if the hypervisor is going to occupy ring 0 of the CPU, the kernels for any guest operating systems running on the system must run in less privileged CPU rings. Unfortunately, most operating system kernels are written explicitly to run in ring 0 for the simple reason that they need to perform tasks that are only available in that ring, such as the ability to execute privileged CPU instructions and directly manipulate memory. One solution to this problem is to modify the guest operating systems replacing any privileged operations that will only run in ring 0 of the CPU with calls to the hypervisor (known as hypercalls). The hypervisor in turn performs the task on behalf of the guest system.
 
Another solution is to leverage the hardware assisted virtualization features of the latest generation of processors from both Intel and AMD. These technologies, known as Intel VT and AMD-V respectively, provide extensions necessary to run unmodified guest virtual machines. In very simplistic terms these new processors provide an additional privilege mode (referred to as ''ring -1'') above ring 0 in which the hypervisor can operate, essentially leaving ring 0 available for unmodified guest operating systems.
 
== Hyper-V Root and Child Partitions ==
 
Running on top of the hypervisor are a ''root partition'' (also known as a parent partition) and zero or more ''child partitions'' (one for each virtual machine) as illustrated below:
 
 
[[Image:hyper-v_partitions.jpg|Hyper-V Parent and Child Partitions]]
 
 
The root partition runs a copy of Windows Server 2008 and is responsible for providing the device drivers for the virtual machines running in the child partitions, managing the child partition lifecycles, power management and event logging. The root partition operating system also hosts the ''Virtualization Stack'' which is responsible for performing a wide range of virtualization functions (the Virtualization Stack will be covered in more detail later in this chapter).
 
Child partitions host the virtual machines in which the guest operating systems run. Hyper-V supports both ''Hyper-V Aware'' (also referred to as ''enlightened'' and ''Hyper-V Unaware'') guest operating systems.
 
== The Hyper-V Virtualization Stack ==
1,798
edits

Navigation menu