Live snapshot merging! [Windows Server “8”]

Working at Microsoft on the Hyper-V team, I spend most of my life using prerelease versions of Windows on a day-to-day basis.  In every release of Windows I have worked on, there comes a point in time when I have become so accustomed to new features or functionality in the next release of Windows that it really bugs me to use the currently shipping version of Windows as these features are missing.

One of the first Windows Server “8” features that fell into this category for me was live snapshot merging.

In Windows Server 2008 R2, if you create and delete a virtual machine snapshot – we will not merge out and delete the differencing disk that was used for the snapshot until you turn off the virtual machine.  This is really annoying as it means that whenever you take a snapshot on a virtual machine, you are committing to turning it off (for a potentially long period of time in the future).  Furthermore, we know from looking at our forums and support call records that many users do not turn off the virtual machine to allow deleted snapshot files to be merged out – and they then run out of space.

This is no longer a problem in Windows Server “8”.  In Windows Server “8”, the moment you delete a snapshot we begin to merge the changes in while the virtual machine is running:


This makes taking snapshots a lot less dangerous in Windows Server “8”.  Hopefully, it will also result in less people getting themselves into sticky situations because they have run out of space.

One thing to be aware of is that the process of merging snapshot files will cause noticeable I/O activity on the disk where the virtual hard disk is stored – so you should be mindful of creating and deleting snapshots on systems with high I/O requirements.  At the same time, because we merge changes as soon as you delete a snapshot – hopefully the number of changes that need to be merged is quite small so we are able to complete the operation quickly.

I am certainly much happier to use virtual machine snapshots on my systems now that I know that I can quickly get rid of the snapshots when I am done, and not have any long term impact on my virtual machines.


P.S. Yes – this functionality also exists on Hyper-V in the Windows Consumer Preview.