Using Checkpoints
One fairly overlooked feature of Hyper-V is the checkpoint feature, which prior to
Windows Server 2012 R 2 was called snapshots. Checkpoints allow point-in-time views
of a virtual machine to be saved. A checkpoint can be created when the virtual
machine is turned off or when it’s running. If a checkpoint is taken when a virtual
machine is running, the current memory and device state is saved in addition to the
virtual hard disk state, which is also taken when a snapshot is taken of a stopped
virtual machine. When a checkpoint is taken for Windows Server 2012 R 2 , several
files are created:
XML File This contains the information of the files and VM configuration
associated with the checkpoint.
VSV File This contains the state of devices associated with the virtual machine. It
is created only if a checkpoint is taken of a running virtual machine.
BIN File This contains the memory content of the virtual machine. It is created
only if a checkpoint is taken of a running virtual machine.
AVHDX File To capture the state of the virtual hard disks, the differencing VHD
capability is used. The current virtual hard disk state is frozen and marked read-
only; this is what the checkpoint points to. A new differencing disk is created that
uses the existing VHDX as the parent, and all future disk writes are written to the
new differencing AVHDX file. Note that if the original file was a VHD, then a
AVHD file is created.
Windows Server 2016 introduces some major changes to checkpoints. The first change
is because of the move to the VMCX and VMRS files. These replace the XML, VSV, and
BIN files from Windows Server 2012 R 2 , resulting in these files being created:
VMCX File Contains the information of the files and VM configuration associated
with the checkpoint
VMRS File This contains the state of devices associated with the virtual machine
and the memory content. If the VM is not running when the checkpoint is created,
or if the checkpoint type is production, then the VMRS file is small and contains
only basic information.
AVHDX File The same as in Windows Server 2012 R 2 , the virtual hard disk
content
In the preceding VMRS file description, I mentioned a production type of checkpoint.
This is new to Windows Server 2016. Normally, a checkpoint saves the current state of
the VM without any interaction with the guest OS running inside the VM, which is
why their use in production environments is strongly discouraged (as covered later in
this section). This is because when a checkpoint is applied, the guest is reverted back
to that point in time without any knowledge that a shift in time happened, which is