Rawpixel - Fotolia

What happens with Hyper-V checkpoint behind the scenes?

Hyper-V checkpoints allow admins to create snapshots of running VMs, but what is happening in the background to make this possible?

Hyper-V checkpoints, called snapshots in earlier versions of Hyper-V, are used to take a point-in-time picture of a virtual machine. Checkpoints are used for testing and development purposes. Microsoft hasn't recommended using checkpoints in a production environment, but that will change with the upcoming version of Hyper-V in Windows Server 10.

You can create checkpoints for saved, running and offline VMs. However, you cannot create a Hyper-V checkpoint for a VM that is in the paused state. Checkpoints are handled by two processes running in the Hyper-V parent partition: the Virtual Machine Worker process (VMWP.exe) and the Virtual Machine Management Service process (VMMS.exe).

VMMS.exe implements the Snapshot Manager component, which is responsible for performing checkpoints of saved and offline VMs. For online VMs, the checkpoint is always performed by the VMWP.exe. Below are descriptions of the events that take place when a Hyper-V checkpoint is created:

Checkpoint process for an online VM

Before the checkpoint can be created, the VM needs to be paused. Since the pause and resume functions are implemented in the VMWP.exe process, the VMMS.exe notifies the VWMP.exe process to pause the VM.

At this stage, the VMWP.exe process creates the necessary Hyper-V checkpoint files including VM-GUID, AVHD/AVHDX, VM-GUID.XML, VM-GUID.VSV and VM GUID.BIN. VM-GUID.BIN contains the the memory contents of the running VM. These files are created and stored in the checkpoint directory of the VM. You can always change the storage location of checkpoint files within the VM's properties.

At this stage, VMMS.exe reconfigures the VM to point to the newly created VM-GUID.AVHD/AVHDX file.

Finally, VMMS.exe notifies VMWP.exe to resume the VM. The pause and resume operation is barely notable by the users.

Checkpoint process for an offline or saved VM

The process for performing checkpoints for an offline VM is similar to taking checkpoints for an online VM except that there is no need to pause an offline or saved VM and the VMWP.exe process does not need to be notified. Therefore, the checkpoints are handled by the Snapshot Manager component running in the VMMS.exe process. In this case a VM-GUID.BIN file is not created.

Creating a checkpoint for a paused VM

In short, you cannot create a checkpoint for a paused VM. When a VM is paused, the VMWP.exe process is also paused. Since the checkpoint process involves pausing a running VM before executing the next function, it would require the VM to be in an acceptable state (running, offline or saved).

Dig Deeper on Microsoft Hyper-V management