A couple of days ago Microsoft announced the public preview of Generation 2 virtual machines on Azure. Generation 2 virtual machines support a bunch of new technologies like increased memory, Intel Software Guard Extensions (SGX), and virtual persistent memory (vPMEM), which are not supported on generation 1 VMs. But more on that later.
What are Hyper-V Virtual Machine Generations
Windows Server 2012 R2 Hyper-V introduced the concept of virtual machine generations. Not to be confused with Hyper-V configuration versions. The generation of a virtual machine defines the virtual hardware of a virtual machine and adds some additional and modern functionality. In Hyper-V, there are two virtual machine generations, generation 1 and generation 2. Generation 2 virtual machines support Unified Extensible Firmware Interface (UEFI) firmware instead of BIOS-based firmware. The Hyper-V team also removed a lot of the legacy devices and replaced them with a simplified virtual machine model.
On Windows Server Hyper-V Generation 2 VMs support features and improvements like
- PXE boot by using a standard network adapter
- Boot from a SCSI virtual hard disk
- Boot from a SCSI virtual DVD
- Secure Boot (enabled by default)
- UEFI firmware support
- OS disk > 2 TB
- improved boot and installation times
However, an important note here, not all of these features are currently available on Azure Generation 2 virtual machines, and not all operating systems are supported in Generation 2 VMs. For example, in Windows7, Windows Server 2008 and Windows Server 2008 R2 and 32-bit Windows systems are not supported. You can find more information about Hyper-V Generation 2 VMs here.
Azure Generation 2 Virtual Machines Overview
Azure Generation 2 Virtual Machines are currently in public preview. To be honest, Generation 2 VMs in Azure aren’t that new, with the public preview of Azure Confidential Computing, we already used Generation 2 VMs. However, now we can start using it for other workloads as well. This means that you can now upload and use your local VHD (not VHDX) files based on Hyper-V Generation 2 virtual machines. Before you had to use Azure Site Recovery to replicate and convert your Hyper-V Generation 2 VMs to Azure Generation 1 VMs.
Azure Generation 1 vs. Generation 2 capabilities
Currently, Generation 2 VMs are in public preview, and that means next to not having a service level agreement (SLA), the features which are available can and are limited. If you look at features like ASR or Azure Backup, which are currently not supporting Generation 2 VMs.
Capability | Generation 1 | Generation 2 |
---|---|---|
OS disk > 2 TB | ❌ | ✔ |
Custom Disk/Image/Swap OS | ✔ | ✔ |
Virtual machine scale set support | ✔ | ✔ |
ASR/Backup | ✔ | ✔ |
Shared Image Gallery | ✔ | ✔ |
Azure Disk Encryption | ✔ | ❌ |
You can find more information about Azure Generation 2 virtual machines with an updated list of capabilities on Microsoft Docs.
Hyper-V vs. Azure Generation 2 VMs
There are also differences between Hyper-V Generation 2 VMs and Azure Generation 2 VMs. Not all of the features provided in Hyper-V are currently present in the public preview version on Azure.
Feature | On-prem Hyper-V | Azure |
---|---|---|
Secure Boot | ✔ | ❌ |
Shielded VM | ✔ | ❌ |
vTPM | ✔ | ❌ |
Virtualization-Based Security (VBS) | ✔ | ❌ |
VHDX format | ✔ | ❌ |
Again, you can find an up-to-date list on Microsoft Docs.
Getting started
You can get started using the Generation 2 VMs on the following VM Sizes on Azure Premium Storage and Ultra SSD:
In public preview, you can now also use the following Azure Marketplace images from the “windowsserver-gen2preview” offer.
- Windows Server 2019 Datacenter (2019-datacenter-gen2)
- Windows Server 2016 Datacenter (2016-datacenter-gen2)
- Windows Server 2012 R2 Datacenter (2012-r2-datacenter-gen2)
- Windows Server 2012 Datacenter (2012-datacenter-gen2)
Create a virtual machine
You can use the Azure Portal to create a new VM or the Azure CLI using the following commands:
az group create --name myGen2ResourceGroupVM --location eastus az vm create \ --resource-group myGen2ResourceGroupVM \ --name myVM \ --image MicrosoftWindowsServer:windowsserver-gen2preview:2019-datacenter-gen2:latest \ --admin-username thomas \ --admin-password myPassword12
Conclusion
I hope this gives you an overview of the benefits and how you can run Generation 2 VMs on Azure. If you have any questions please let me know in the comments.
Tags: Azure, Azure Generation 2 VMs, Generation 2, Generation 2 Virtual Machine, Generation 2 VMs, Hyper-V, IaaS, Microsoft, Microsoft Azure, Virtual Machine, Virtual machines, Virtualization Last modified: June 10, 2019
Hi,
Except for OS disks larger than 2TB I’m not really seeing much value to the new(er) gen2.
Of course the ability to upload existing gen 2 images excluded.
As soon as it is supported, Secure Boot and other features are going to be very good reasons. However, I agree with you, in a lot of cases it doesn’t make sense to move all your VMs from Gen1 to Gen2.
Hi,
Shared Image Gallery is available for gen 2 now.
Thanks
Great news! thanks for sharing! I updated the blog :)