Production Checkpoints in Windows 10

When we were first developing Hyper-V we worked hard to get checkpointing functionality to be part of the 1.0 release.  At that stage, we knew that while virtual machine checkpoints were good for development and testing environments, they were not suitable for production environments.  To deal with this we provided detailed documentation and guidance outlining how you should never use virtual machine checkpoints in production environments.

However, no one listened to us :-)

12 months after the initial release of Hyper-V - problems encountered when people were using virtual machine checkpoints in production environments were our number 1 support call generator.  Over the ensuing releases we have been steadily improving checkpoints to address the problems that people were encountering (we changed where the checkpoint files were stored, how they were named and added the ability to merge in changes from a deleted checkpoint while the virtual machine was running).  But we still did not recommend them for production environments.

The primary reason for this is that when you take virtual machine checkpoint we store all the memory state of running applications - and we restore it exactly when you apply the checkpoint.  This is great for development and testing - but not what you want to do to a SQL server, or a mail server, or any workload that has network clients connected to it.  This is why we developed Production Checkpoints.

Production Checkpoints give you exactly the same experience you have always had with virtual machine checkpoints.  There are no changes to how you create, apply, name or delete checkpoints.  But now when we create the checkpoint - instead of capturing the memory state of the virtual machine, we utilize VSS (or on Linux - file system freeze) to create a data consistent storage snapshot.  When you restore one of these checkpoints, any server applications inside the virtual machine believe they have just been restored from a backup - and are able to handle the changes correctly.

You can read more about this here: https://msdn.microsoft.com/virtualization/hyperv_on_windows/user_guide/checkpoints 

Finally, if you are worried about the demise of standard checkpoints - don't worry - they are still there.  Soon, I will do a post about how to change the default checkpoint type on a virtual machine and get standard checkpoints back if you want them.

Cheers,
Ben