How often should I create a snapshot? Is there a rule of thumb?
You should create a snapshot, or checkpoint (as they are called in System Center Virtual Machine Manager), right before you make any known change to your VM that would require some sort of system or application restore if the configuration, patch or application upgrade went wrong.
Snapshots are a recovery point that saves the state, data and hardware configuration of a VM. Now, With Hyper-V in Windows Server 2012, the creation and deletion of a snapshot happens without VM downtime. The process can be scripted, but it is most commonly done manually, either by an application owner or by a virtualization system administrator, before any changes are made to the VM. These types of snapshots are different from conventional host-level backups of VMs, but use the same underlying VSS Hyper-V Writer, which is installed when you enable the Hyper-V role, to prepare (quiesce) the memory and I/O state of the VM, in order to precisely capture its state at that moment. However, the outcome of these two processes differs.
When you create a snapshot, Hyper-V creates the following files:
.XML - File containing the hardware configuration at the time of the snapshot
.BIN - File for current memory state at the time of the snapshot
.VSV - File for saved state from the VMs associated devices
.AVHD/.AVHDX - File that holds data changes since the snapshot was taken.
It is a best practice to remove all snapshots as soon as you have confirmed that all new VM changes are working as expected. The .AVHD/.AVHDX file will continue to grow as new changes happen. Failure to remove snapshots will pose a risk to disk utilization on this volume that could result in filling the volume and, in turn, disrupting other VMs on that volume.
The backup process utilizing host-level backups differs in that there is no differencing disk that needs to be merged with the parent disk. Since these are done at the volume level, the VSS Hyper-V Writer prepares the VMs on a particular volume, mounts the shadow copy and presents it through the host, so that the backup software can pull this copy of a single or multiple VMs from the volume.
Remember, each of these options has distinct use cases. Snapshots/checkpoints should be used anytime a risky known change is performed. This allows for a restore to the previous state in seconds or minutes if the change causes a problem. A host-level backup using conventional backup software that utilizes a similar helper technology is used for unknown issues, file deletion, corruption or disaster recovery where changes were not expected.
Dig Deeper on Disaster recovery, failover and high availability for virtual servers
Related Q&A from Rob McShinsky
If you mistakenly restore a VM to a previous state, have you forever lost changes that were made after the Checkpoint was created? Continue Reading