Sashkin - Fotolia
Microsoft introduced Generation 2 virtual machines with Windows Server 2012 R2, but also kept support for the original Generation 1 virtual machine. A Generation 1 VM is a normal virtual machine running on Hyper-V on Windows Server 2012 and earlier operating systems, and it uses Hyper-V BIOS-based boot architecture. Generation 2 VMs are only available on Windows Server 2012 R2, and use the new UEFI-based boot architecture. The Generation 1 VM is sometimes called a "legacy virtual machine." The legacy virtual machine supports all other functionality of a normal virtual machine, but there are two major drawbacks.
The first drawback is that users can't relocate operating system (OS) paging files to the virtual hard drive that is connected to a SCSI controller. The other issue is that users are unable to configure the virtual machine to boot off a virtual hard drive that is connected to an SCSI controller. These occur because the Hyper-V BIOS in the legacy virtual machine (VM) is not aware of the SCSI controllers unless you install the Integration Components. Even installing Integration Components, which also includes the SCSI driver, was only available after the complete OS initialization. Microsoft removes this limitation by introducing Generation 2 VMs.
Benefits of Generation 2 VMs
Apart from relocating the paging file and booting off an SCSI controller, there are other benefits that Generation 2 VMs provide. These VMs enable the installation of operating systems from the PXE network and allow faster operating system installation. Another plus is that the boot time is reduced and a subset of Integration Components is available to the VM during the power-up. SCSI drivers are loaded before the operating installation commences, allowing users to power up the VM off a virtual hard drive connected to an SCSI controller. Users can also relocate the paging file to that virtual hard drive that is connected to an SCSI controller.
It is important to understand that this feature is only available on Windows Server 2012 R2, which means you are required to enable the Hyper-V role on Windows Server 2012 R2. Generation 2 VMs can only support following guest OSes:
- Windows Server 2012
- Windows Server 2012 R2 Preview
- 64-bit versions of Windows 8
- 64-bit versions of Windows 8.1 Preview
- Some of the Linux distributions
Beyond the required guest OS requirement, users must also use a VHDX virtual hard disk format. Something else to take into consideration is Secure Boot, which is part of the UEFI specification and is a signature checking mechanism in which only approved components are allowed to be run. And finally, the VHDX hard drive must be connected to an SCSI Controller. In fact, there are no IDE controllers available with the Generation 2 VMs.
Limitations of the new VM format
Generation 2 VMs suffer from some limitations, including the fact that they only support the VHDX virtual hard disk format. The good news is that users can convert Generation 1 VM VHD data to a VHDX to use in the Generation 2 VMs. However, you are still unable to power up off that VHDX. If you need to use RemoteFX in your VMs, then you only have the option of using Generation 1 VMs or legacy VMs.
Since Generation 2 implements UEFI-based boot architecture, non-UEFI operating systems won't work properly with Generation 2 technology. Another caveat is that you can't change the generation of the VM. Once the guest operating system has been installed, you are stuck with that generation.
Users cannot use an OS VHDX file created by the Generation 2 with Generation 1 VMs. For example, if you created a VHDX using Generation 2 VMs, the OS VHDX cannot be used with Generation 1 VMs, but you can use VHDX data of Generation 2 VMs with Generation 1 VMs. Users are also unable to use the exported Generation 2 VMs with earlier versions of Hyper-V such as Windows Server 2012 and Windows Server 2008 R2. This is because Generation 2 VMs use UEFI-based boot architecture, which is only available on Windows Server 2012 R2.
Here are other limitations for Generation 2 VMs:
- Only new OSes are supported, as listed in the requirements section of this article. If you are running Windows 7 VMs, you are out of luck.
- In Generation 2 VMs, you cannot boot off of iSCSI LUN. If you need to do so, you must use Generation 1 VMs.
- Secure Boot option, which is available only with Generation 2 VMs, can only be used for Windows guest operating systems. A Linux guest operating system installed using a Generation 2 VM will fail to boot if Secure Boot option is enabled.
- No support for the Legacy Network Adapters: You can only use VMBUS network adapters or synthetic network adapters in Generation 2 VMs.
- No support for virtual floppy drives. This disables the ability to install guest OSs using answer files. You must use an ISO file on a DVD drive if you need to perform unattended installation of OSs.
- If you want to create VM templates to provision VMs quickly on the Hyper-V servers, you are required to create two templates; one for Generation 1 VMs and another one for Generation 2 VMs.
- If you need to use an IDE Controller for some reason, you cannot use it with Generation 2 VMs.
There is no doubt that Generation 2 VMs offer great advantages over Generation 1 VMs but Generation 2 technology can only be used with new Windows Operating Systems. If you are running Windows 7 (or earlier) VMs in your environment, you cannot migrate to Generation 2 VMs. Since Generation 2 VMs are the future of Microsoft VMs, these limitations will likely begin to disappear in the next release of Hyper-V.
Compare virtual machines with bare-metal servers for hosting