Friday 21 March 2014

Introduction to Hyper-V



Hyper-V is a hypervisor-based virtualization technology for x64 versions of Windows Server 2008. The hypervisor is the processor-specific virtualization platform that allows multiple isolated operating systems to share a single hardware platform. Microsoft Hyper-V codename Viridian and was formerly known as Windows Server Virtualization.  Hyper-V was first launch as a beta version with Windows 2008 Server and then finalized version was released on June 26, 2008.  has since been released in a free stand-alone version.
Hyper-V exists in two variants
1) Stand-alone product called MS Hyper-V  2008
2) an installable role in Windows 2008 and R2
The standalone version is free and is part of core installation of Windows 2008.
System requirement for Hyper-V

Host operating system:
  • To install the Hyper-V role, Windows Server 2008 (64-bit only) or 2008 R2 Standard, Enterprise or Datacenter edition is required. Installation on the Web and/or Foundation editions is not possible; neither is it possible on 32-bit (x86-32) versions of Windows Server 2008 nor IA64 editions.
  • It can be installed regardless of whether the installation is a full or core installation.
Processor:
  • An x86-64 processor
  • Hardware-assisted virtualization. This is available in processors that include a virtualization option; specifically, Intel VT or AMD Virtualization (AMD-V, formerly code-named "Pacifica").
  • A NX bit-compatible CPU must be available and Hardware Data Execution Prevention (DEP) must be enabled.
  • Although this is not an official requirement, Windows Server 2008 R2 and a CPU with Extended Page Table support are recommended for workstations.
Memory
  • Minimum 2 GB. (Each virtual OS requires its own memory, and so realistically much more.)
  • Windows Server 2008 Standard (x64) Hyper-V full GUI or Core supports up to 31 GB of memory for running VMs, plus 1 GB for the Hyper-V parent OS.
  • Maximum total memory per system for Windows Server 2008 R2 hosts: 32 GB (Standard) or 2 TB (Enterprise, Datacenter)




The architecture of Hyper-V is break-up into 3 rings.
1)      Ring 1 (Hypervisor) : Here the actual hypervisor of Hyper-V is located. This ring does the actual virutalisation of VMs.
2)      Ring 0 (Kernal Mode) : The kernel mode contains all the necessary components for VM to runs and interact with other VMs and Host machine. This ring contains device drivers, VMBus, VSC, etc.
3)      Ring 3 (User mode) : This rings contains the your actual VMs i.e Guest OS and Host OS.
Every OS in Hyper-V is isolated with each other using a logical terms called as partitions. A partition is a logical isolation of VMs. Each VM is stored in a separate partition called as child partition. Same way the Host operating system is also located in a separate partition called as root/parent partition. The virtualization stacks runs in parent partition and has direct access to the hardware.

Partition does not have direct access to physical process. they have a virtual view of the processor and runs in a virtual memory of each guest partition. The hypervisor handles the processor and memory request. Moreover child partition also does not have direct access to hardware resources. The VMBus is a logical inter-partition communication channel which helps each Host and guest OS to communicate with each other. The parent partition hosts Virtualization Service Providers (VSPs) which communicate over the VMBus to handle device access requests from child partitions. Child partitions host Virtualization Service Consumers (VSCs) which redirect device requests to VSPs in the parent partition via the VMBus. This entire process is transparent to the guest operating system.

Acronyms and terms used in the diagram above are described below:
  • APIC – Advanced Programmable Interrupt Controller – A device which allows priority levels to be assigned to its interrupt outputs.
  • Child Partition – Partition that hosts a guest operating system - All access to physical memory and devices by a child partition is provided via the Virtual Machine Bus (VMBus) or the hypervisor.
  • Hypercall – Interface for communication with the hypervisor - The hypercall interface accommodates access to the optimizations provided by the hypervisor.
  • Hypervisor – A layer of software that sits between the hardware and one or more operating systems. Its primary job is to provide isolated execution environments called partitions. The hypervisor controls and arbitrates access to the underlying hardware.
  • IC – Integration component – Component that allows child partitions to communication with other partitions and the hypervisor.
  • I/O stack – Input/output stack
  • MSR – Memory Service Routine
  • Root Partition – Manages machine-level functions such as device drivers, power management, and device hot addition/removal. The root (or parent) partition is the only partition that has direct access to physical memory and devices.
  • VID – Virtualization Infrastructure Driver – Provides partition management services, virtual processor management services, and memory management services for partitions.
  • VMBus – Channel-based communication mechanism used for inter-partition communication and device enumeration on systems with multiple active virtualized partitions. The VMBus is installed with Hyper-V Integration Services.
  • VMMS – Virtual Machine Management Service – Responsible for managing the state of all virtual machines in child partitions. Creation of snapshots and adding and removing components are part of VMMS.
  • VMWP – Virtual Machine Worker Process – A user mode component of the virtualization stack. The worker process provides virtual machine management services from the Windows Server 2008 instance in the parent partition to the guest operating systems in the child partitions. The Virtual Machine Management Service spawns a separate worker process for each running virtual machine. Its handles start, stop and pause of VMs.
  • VSC – Virtualization Service Client – A synthetic device instance that resides in a child partition. VSCs utilize hardware resources that are provided by Virtualization Service Providers (VSPs) in the parent partition. They communicate with the corresponding VSPs in the parent partition over the VMBus to satisfy a child partitions device I/O requests.
  • VSP – Virtualization Service Provider – Resides in the root partition and provide synthetic device support to child partitions over the Virtual Machine Bus (VMBus).