In this post, I will describe the new file types, their functions, and locations, which you’ll find in a Windows Server 2016 (WS2016) Hyper-V virtual machine (VM).
Quite a Lot of Change
Hyper-V went through a lot of changes with the release of Windows Server 2016:
- Cloud inspiration from Azure, including software-defined networking and software-defined storage.
- More security.
- Increased scalability, including support for VMs with 12TB RAM!
- Feedback, driving improvements to features such as shared VHDX.
Those improvements have affected Hyper-V throughout, including the files that are used. When you create your first VM on WS2016 Hyper-V, you will notice quite a few changes, especially when you open File Explorer and start to look at what files were created.
The biggest change is that Hyper-V switched from using XML-based VM configuration files to a new binary format. There are two benefits:
- People will finally stop directly meddling with the XML configuration file; this was unsupported and caused failures. This change actually caused a little storm in a teacup when it was first announced.
- Those machines hosting lots of VMs will notice improved performance during a boot storm, such as Monday morning in a VDI deployment or after a patch run in a server deployment.
The New Files
I have yet to find a single complete listing of all of the files; the Microsoft documentation appears to be incomplete. So here is my best effort based on what information is available from various sources:
- Configuration (.VMCX): This is the binary machine configuration file that replaces the XML file. It can be found at <VM Location>\Virtual Machines.
- Runtime state (.VMRS): Various data about the current volatile state of the running virtual machine is stored here. The file is located at <VM Location>\Virtual Machines.
- Virtual hard disk (.VHD or .VHDX): These are the files that contain everything of value, the disks. Here is the operating system, programs, settings, unique machine data, and the user data. These files can be stored anywhere, but I prefer to keep them at <VM Location>\Virtual Hard Disks.
- Automatic virtual hard disk (.AVHD or .AVHDX): Finally, Microsoft settled on a name (it was Automatic or Advanced, depending on who you talked to). These are differencing files and are used to store disk data after a checkpoint is created. Each VHD/X has its own checkpoint and the checkpoint is stored with the VHD/X by default (configured in the virtual machine settings).
- Checkpoint: An additional .VMCX and .VMRS is created in <VM Location>\Snapshots whenever you create a checkpoint. This allows you to modify the configuration of a virtual machine after a checkpoint and reset it by applying the checkpoint.
- Shared Virtual Hard Disk Set (.AVHDS): This is version 2 of the shared VHDX, enabling guest clusters to share a common “SAS” disk, with support for backup, Hyper-V Replica, and online resizing.