What is Hyper-V?
Vir·tu·al·i·za·tion the act of isolating or unbinding one computing resource from others. Server Virtualization is the solution of hosting an entire computer environment within the operating system of another computer. Windows Server 2008 includes native support for virtual computers through the Hyper-V role. Hyper-V is Microsoft's new server virtualization technology and it allows the virtualization of multiple Windows- and none Windows operating systems on a single server and fully leverage the power of x64 computing. Hyper-V follows a hypervisor model, which means that it does not run on top of an operating system. Instead it loads at boot time and creates a layer of virtualization between the physical server hardware and the operating systems it hosts. In Hyper-V, the parent partition, which is the main Operating System, runs Windows Server 2008. Virtual computers then run in one or more child partitions. The release of Windows Server 2008 Hyper-V is scheduled for the second half of 2008.
The rise of the Hypervisor
Hyper-V includes a hypervisor, a very thin software layer that is less than 1 megabyte in size and separates the processor and all the parent and child partitions. The hypervisor supports all of the partitions on the host computer and provides strong security separation between the parent and child partitions. Because the hypervisor does not contain third party code or device drivers, it presents a very small attack surface, and driver failure cannot bring down all of the partitions. This type of hypervisor is called a Microkernelized hypervisor.
The Hyper-V can be a full role within Windows Server 2008 or can be enabled as a role within Server Core. The Server Core installation is an option that you can use for installing Windows Server 2008. A Server Core installation provides a minimal environment for running specific server roles, which reduces the maintenance requirements and the attack surface for those server roles. The Server Core installation option requires initial configuration at a command prompt and does not include the traditional full graphical user interface. Once you have configured the server, you can manage it locally at a command prompt or remotely using a Terminal Server connection. You can also manage the server remotely using the Microsoft Management Console (MMC) or command-line tools that support remote use.
Server Manager is a new tool available with Windows Server 2008 that guides information technology administrators through the process of installing, configuring, and managing server roles and features that are part of Windows Server 2008. The Hyper-V role can be enabled and configured within Server Manager.
With Hyper-V Manager, local or remote Hyper-V Servers and their corresponding virtual machines can be managed. Configuration options include New Virtual Machine, New Virtual Hard Disk, Edit Virtual Hard Disk, Virtual Machine, Virtual Machine Settings, Virtual Network Manager. It’s a nice but basic Management Console for the normal administration tasks in a Small-Medium sized Hyper-V infrastructure.
System Center Virtual Machine Manager
System Center Virtual Machine Manager 2007 (SCVMM) is a server application in the Microsoft System Center family of products. SCVMM provides management of physical and Virtual machines, consolidation of underutilized physical servers and rapid provisioning of new Virtual Machines. The current release of SCVMM manages only Microsoft Virtual Server. The upcoming SCVMM releases, scheduled when Hyper-V is released, supports the management of Hyper-V hosts and guests and also Citrix XenServer and VMware ESX v3 hosts.
Some features of SCVMM:
- Enables fast provisioning of new virtual machines
- Minimizes guesswork in deployment through customized host ratings based on criteria that you set
- Allows conversion of physical servers to virtual machines (P2V)
- Allows conversion of VMware virtual machines (V2V)
- Virtual Machine Manager provides a library to manage all the building blocks of the virtual data center. Building blocks such as virtual hard disks (VHDs),ISO images, post deployment customization scripts, hardware configurations and templates.
- Speeds creation of new virtual machines by using templates
- Takes advantage of datacenter investments in Storage Area Network (SAN) storage
- Provides a rich management and scripting environment through the Windows PowerShell - Virtual Machine Manager command shell
- Provides reporting by integrating with System Center Operations Manager 2007
- Self Service Portal, a web interface to allow an end user to create and use their own VMs.
Server Virtualization Management Pack
The Server Virtualization Management Pack provides enterprise wide monitoring of Microsoft virtual environments. The management pack monitors the health and availability of virtual machines deployed on hosts running Microsoft Virtual Server and Hyper-V and the health and availability of the hosts. The management pack also monitors the components of System Center Virtual Machine Manager 2007 (VMM), including the VMM server, database server, hosts, library servers, and self-service portals, and provides reporting for VMM. Server Virtualization Management Pack for System Center Operations Manager 2007 provides:
- Discovery and monitoring of all Hyper-V and Virtual Machine Manager components
- Alert on job and component status change
- Reports for managing and maintaining a virtualized environment
- Virtualization environment diagram view
Hyper-V system requirements
- CPU, Hyper-V requires specific processor enhancements from either Intel or AMD. Intel VT is integral to the Intel vPro range.
- Hardware Data Execution Prevention (DEP) which Intel describes as eXecuted Disable (XD) and AMD describes as No eXecute (NS) it is a technology used in CPUs to segregate areas of memory for use by either storage of processor instructions or for storage of data.
- 64 bits environment, Virtualization is a prime candidate for the expanded memory and processing facilities that 64-bit platforms offer. To ensure these expanded facilities are available, Hyper-V only runs on x64-bit editions of Windows Server 2008.
- Approved hardware, Hyper-V requires hardware that is on the Windows server catalog of tested hardware. Microsoft hardware approval is particularly important in Hyper-V because the Windows Hypervisor layer interfaces directly between the hardware and the parent and child partitions. Rigorous testing of third party device drivers also helps to enhance parent partition stability. Although Hyper-V is running fine on my laptop this device isn’t the most suitable candidate for the server virtualization role.
- Physical Memory on the host computer is the main limiting factor that sets the number of virtual computers that can run simultaneously. The virtual computers share this physical memory with the parent partition. Memory requirements are typically 512MB for the parent partition, plus the allocated memory for each child partition and a further 32MB overhead for each child partition. Therefore, a child partition that has 256MB allocated virtual RAM requires a host that has at least (512+(256+32)) = 800MB.
There is a utility called SecurAble, available: http://www.grc.com/securable.htm which checks the virtualization hardware requirements of your machine. The interface looks like this:
Let’s unpack this diagram:
Parent and Child Partitions
In Hyper-V one VM is that parent partition while others are child partitions. A partition is a basic unit of isolation supported by the hypervisor. The parent partition, also known as root partition, is the partition that creates and managed child partitions and it has a virtualization stacks to control child partitions. This parent partition owns all resources not owned by the hypervisor and is responsible for Power management, PnP, management of hardware failure events and loading and booting the Hypervisor. In the parent partition, running in kernel mode, there is a Windows Server 2008 guest OS. Within Citrix XenServer, the parent partitioning is called ‘Domain 0’. As mentioned earlier this OS can run as role within Server Core or can be a full installation of Windows Server 2008.
Virtualization Service Provider and Client
Running within the guest OS is the Virtualization Service Provider (VSP) this is a component that runs within the parent partition. This partition owns the hardware. The VSP talks to the device drivers and is offering hardware services to whoever requests them. Running in kernel mode within an ‘Enlightened client’ is the Virtualization Service Client (VSC). This is a client component that runs within a child partition and consumes services. There is one pair of VSP/VSC pair for each device type. Microsoft is providing VSP/VSC pairs for storage, networking, video and input devices for Hyper-V. Third-party Independent Hardware Vendors (IHV) will provide additional VSP/VSC pairs to support additional hardware.
The Hypercall adapter is a thin layer of software that translates the Citrix XenServer-specific virtualization function calls to Microsoft Hyper-V hypercalls. This results in improved performance for the virtual machine running Linux and better operability when VMs are used in a mixed Hyper-V and Citrix XenServer environment.
The Hyper-V architecture also includes a virtual machine bus, or VMbus, for communication between the parent and child partitions, Virtualization Service Providers, and Virtualization Service Clients. On virtualization-optimized processors, these components provide an emulated environment with similar performance characteristics to a dedicated physical computer.
Synthetic and emulated devices:
Synthetic devices are designed to have the lowest overhead for devices. These devices package requests and forward them to a driver in the root over VMBUS which then forwards them to the device after any needed processing. Emulated devices on the other hand emulate a real piece of hardware. Both types of devices are important because to support operating systems that do not have “Integration Components” installed emulated devices drivers are needed. The Synthetic devices are important because they help reduce the CPU overhead when accessing a device. Synthetic device drivers are included in the Integration Components.
Integrations components (ICs) are sets of drivers and services that help your Virtual Machines have more consistent state and perform better by enabling the guest to use synthetic devices. Some ICs that come with Hyper-V are VMBUS (transport for Synthetic devices), Time Sync (used to keep VM clocks in sync with the root partition sometimes called the host), Video Driver, Network Driver and Storage Driver. Windows Server 2008 will come with the integration components pre-installed. For other operating systems, like Windows Server 2003 are Linux you can install ICs.
Hyper-V can host two categories of operating systems, Enlightened- and unenlightened operating systems. Enlightened operating systems work directly with Hyper-V and enjoy performance benefits with respect to device access and management benefits. Windows Server 2008 and specific Linux distributions from Citrix XenServer and Novell are planned. Unenlightened operating systems include other Linux distributions, older versions of Windows Server and other x86 operating systems.
Enlightenments are enhancements made to the operating system to help reduce the performance cost on certain operating system functions like memory management. Windows Server 2008 is fully enlightened which means it takes advantage of all possible enlightenments. Other operating systems have varying degree of support.
Paravirtualization is a technique to allow Virtual Machines to understand it is being virtualized and to co-operate with the system to ensure the best performance. For example Citrix XenServer uses paravirtualized drivers for storage and network devices which drastically improve performance over emulated drivers. Enlightments is the Microsoft name for paravirtualization.
- High Availability. Hyper-V includes support for host-to-host connectivity and enables you to cluster all virtual machines running on a host through Windows Clustering (up to 16 nodes). Enterprise or datacenter editions of Windows Server 2008 are needed.
- Quick migration. Hyper-V enables you to rapidly migrate a running virtual machined across Hyper-V hosts with minimal downtime, leveraging familiar high-availability capabilities of Windows Server 2008 and System Center management tools.
Quick Migration isn’t the same as VMware vMotion or Citrix XenServer XenMotion. With Quick Migrate there is (small) downtime of the Virtual Machine. The downtime depends on the amount of memory the Virtual Machine is consuming. The Quick Migrate process is: The VM state is saved, the VM is moved to an other Hyper-V machine and the VM state is restored.
A Quick migrate of a VM using 1 GB memory takes approximately 4 seconds. The VHD file needs to be stored on a shared storage and you need the same processor architecture across the nodes.
- Server Core role. Hyper-V is now available as a role in a Server Core installation of Windows Server 2008.
- Integrated into Server Manager. Hyper-V is now integrated into Server Manager by default and customers can now enable the role within Server Manager.
- VHD tools. Hyper-V includes support for VHD tools to enable compaction, expansion and inspection of VHDs created with Hyper-V.
- Improved access control with AzMan. Hyper-V now includes support for Authorization Manager (AzMan) to enable Role-Based Access Control models for better administration of the Hyper-V environment with increased security.
- Host characteristics: 16 logical processors, 2TB memory, SAS/SATA/discs and FibreChannel support.
- Guest characteristics: 32-bit (x86) and 64-bit (x64) child partitions, 64Gb memory support within VMs, 4 core SMP VMs, max 4 NIC’s.
- Live Backups with VSS, Volume Shadow Copy Services (VSS) enables the functionality to take Live Backups of running virtual machines.
- Resource Management, CPU, disk and network can be managed using Windows Server Resource Manager (WSRM).
- System Center Virtual Machine Manager (SCVMM) integration.
- Snapshots, 10 level deep
Virtual Machine disk controllers and types
There are two types of disk controllers that you can configure your Hyper-V virtual machines to use: SCSI and IDE. There are two IDE controllers and four SCSI controllers available. Each IDE controller can have two devices. Each SCSI controller can support up to 255 devices. Both SCSI and IDE can support pass-through, Fixed, Dynamic, Sparse, and Delta drives. The difference lies in how the controllers are actually implemented.
- (dynamic / Fixed) Virtual Hard Drive (VHD) - This is a file stored in NTFS that looks like hard drive to the VM
- Delta VHD - This stores all changes relative to a base VHD.
- Pass-through drive are physical disks are exclusively assigned to the Virtual Machine.
Linux Integration Components
When installed into a virtual machine running a supported Linux operating system, the Linux Integration components provide the following functionality:
- Driver support for synthetic devices: The Linux integration components include support for both the synthetic network controller and synthetic storage controller that have been developed specifically for Hyper-V. These components take advantage of the new high-speed bus, VMbus, which was developed specifically for Hyper-V.
- Hypercall adapter: The Hypercall adapter is a thin layer of software that translates the Xen-specific virtualization function calls to Microsoft Hyper-V hypercalls. This results in improved performance for the virtual machine running Linux.
The Linux Integration Components for WS08 Hyper-V are currently (feb. 2008) in Beta and available through MS Connect. Linux integration components are available for SUSE Linux Enterprise Server 10 SP1 x86 and x64 Editions. These integration components enable Xen-enabled Linux to take advantage of the VSP/VSC architecture and provide improved performance.
Working with Citrix XenServer, an adapter is developed to map XenServer hypercall API to Hyper-V hypercall API. Disk and network drivers are developed to integrate with the new I/O architecture. Microsoft is working with Novell for interoperability and joint support for Windows Server and Novell SUSE Linux Enterprise Server v10.
Virtual Hard Disk (VHD)
The Microsoft Virtual Hard Disk (VHD) file format is an integral part of the Microsoft commitment to Virtualization. VHD is the runtime container for Windows. It combines the OS, application and state in one single file. VHD files specify a virtual machine hard disk that can reside on a native host file system encapsulated within a single file. The VHD format is used by Microsoft Virtual PC , Virtual Server and Windows Server 2008 Hyper-V. The ability to directly modify a virtual machine’s hard disk from a host server supports many interesting applications that may be of interest to customers, such as:
- Moving files between a VHD and the host file system
- Back and Recovery
- AntiVirus and Security
- Image management and patching
- Disk conversion
- Life-cycle management and provisioning
Microsoft Partners such as Citrix Systems are adopting the VHD file format in their Application and Desktop delivery solutions such as Citrix XenDesktop.
Microsoft has released several versions of Windows Server 2008. The versions which include Hyper-V will be released in the second half of 2008. Customers can choose to buy Windows Server 2008 with or without Hyper-V. Hyper-V can be included in Standard, Enterprise and Datacenter editions in x86 and x64 versions. The price difference between Windows Server 2008 with or without Hyper-V is $28 (in Euro’s that very cheap!). There are many, many benefits using Server Virtualization technology, one of which can be saving on Microsoft Licensing costs. These articles explain the different licensing models when Virtualization is being used.