Hyper-V
Hyper-V is a native hypervisor developed by Microsoft; it can create virtual machines on x86-64 systems running Windows. It is included in Pro and Enterprise editions of Windows as an optional feature to be manually enabled. A server computer running Hyper-V can be configured to expose individual virtual machines to one or more networks.
Overview
Codenamed Viridian and briefly known before its release as Windows Server Virtualization, a beta version was shipped with certain x86-64 editions of Windows Server 2008. The finalized version was released on June 26, 2008 and was delivered through Windows Update. Hyper-V has since been released with every version of Windows Server starting with version 2012, superseding Microsoft Virtual Server, and starting with Windows 8, Hyper-V has been the hardware virtualization component for personal computers, superseding Windows Virtual PC.Microsoft provides Hyper-V through two channels:
- Part of Windows: Hyper-V is an optional component of Windows Server 2008 and later. It is also available in x64 SKUs of Pro and Enterprise editions of Windows 8, Windows 8.1, Windows 10 and Windows 11.
- Hyper-V Server: It is a freeware edition of Windows Server with limited functionality and Hyper-V component.
Hyper-V Server
Hyper-V Server 2008 R2 was made available in September 2009 and includes Windows PowerShell v2 for greater CLI control. Remote access to Hyper-V Server requires CLI configuration of network interfaces and Windows Firewall. Also using a Windows Vista PC to administer Hyper-V Server 2008 R2 is not fully supported.
Microsoft ended mainstream support of the free version of Hyper-V Server 2019 on January 9, 2024 and extended support will end on January 9, 2029. Hyper-V Server 2019 will be the last version of the free, standalone product. Hyper-V is still available as a role in Windows Server 2022 and will be supported as long as that operating system is, currently scheduled for end of extended support on October 14, 2031.
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. There must be at least one parent partition in a hypervisor instance, running a supported version of Windows. The parent partition creates child partitions which host the guest OSs. The Virtualization Service Provider and Virtual Machine Management Service runs in the parent partition and provide support for child partition. A parent partition creates child partitions using the hypercall 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. 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 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, which connects to the VMBus and handles device access requests from child partitions. Child partition virtual devices internally run a Virtualization Service Client, 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 a specialized virtualization-aware implementation of high level communication protocols, like SCSI, that allows bypassing any device emulation layer and takes advantage of VMBus directly. This makes the communication more efficient, but requires the guest OS to support Enlightened I/O.
Currently only the following operating systems 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:
- Windows Server 2008 and later
- Windows Vista and later
- Linux with a 3.4 or later kernel
- FreeBSD
System requirements
- CPU with the following technologies:
- * NX bit
- * x86-64
- * Hardware-assisted virtualization
- * Second Level Address Translation
- At least 2 GB memory, in addition to what is assigned to each guest machine
- Windows Server 2008 Standard supports up to 31 GB of memory for running VMs, plus 1 GB for the host OS.
- Windows Server 2008 R2 Standard supports up to 32 GB, but the Enterprise and Datacenter editions support up to 2 TB. Hyper-V Server 2008 R2 supports up to 1 TB.
- Windows Server 2012 supports up to 4 TB.
- Windows Server 2008 and 2008 R2 support 1, 2, or 4 CPUs per VM; the same applies to Hyper-V Server 2008 R2
- Windows Server 2012 supports up to 64 CPUs per VM
- Windows Server 2008 and 2008 R2 support 384 per server; Hyper-V Server 2008 supports the same
- Windows Server 2012 supports 1024 per server; the same applies to Hyper-V Server 2012
- Windows Server 2016 supports 8000 per cluster and per node
Supported guests
Windows Server 2008 R2
The following table lists supported guest operating systems on Windows Server 2008 R2 SP1.Fedora 8 or 9 are unsupported; however, they have been reported to run.
Third-party support for FreeBSD 8.2 and later guests is provided by a partnership between NetApp and Citrix. This includes both emulated and paravirtualized modes of operation, as well as several HyperV integration services.
Desktop virtualization products from third-party companies provide the ability to host and centrally manage desktop virtual machines in the data center while giving end users a full PC desktop experience.
Guest operating systems with Enlightened I/O and a hypervisor-aware kernel such as Windows Server 2008 and later server versions, Windows Vista SP1 and later clients and offerings from Citrix XenServer and Novell will be able to use the host resources better since VSC drivers in these guests communicate with the VSPs directly over VMBus. Non-"enlightened" operating systems will run with emulated I/O; however, integration components are available for Windows Server 2003 SP2, Windows Vista SP1 and Linux to achieve better performance.