Hyper-V中Snapshot的一点小知识
1. 每创建一个snapshot, 就会有一个后缀为avhd的文件创建出来. 当删掉snapshot的之后, 该avhd并不会立即消失. 需要在虚拟机关机之后, hyper-v会开始将avhd自动merge到原始的vhd中, 或另外一个avhd中, 取决于snapshot的创建结构.
也就是说, 如果你想把所有的avhd都整合到一个vhd文件中, 并且不再需要这些snapshot的话, 你只需要简单地删除所有的snapshot, 关掉虚拟机, 等merge结束就可以了.
2. Snapshot在制作的时候是可以有分支的, 在删除分支的时候也会有merge的动作发生, 那么涉及到一些比较复杂的删除场景, 结果就不是很让人确定. 参考资料中的文章作者"Brian Ehlert"制作的图片非常好. 很说明问题, 记在这里, 备查.
3. Avhd是可以与vhd文件进行整合(merge)的. 具体步骤, 请参考文章Recovering Your Virtual Machine. How to Manually Merge Hyper-V Snapshots Back into one VHD. 其核心步骤就是使用Edit Disk向导进行merge. 在有多个avhd的时候, merge他们需要按照创建的时间顺序的相反顺序来进行merge(原文In reverse for each AVHD file created (latest to oldest)). 你可以在windows explorer中按照last modified来排序, 这样你就知道了snapshot被抓取的时间顺序. 如果branch比较多, 你可以通过config文件来确定snapshot的结构, 具体见参考资料了.
参考资料
Managing Hyper-V snapshots - the basics
http://itproctology.blogspot.com/2008/07/managing-hyper-v-snapshots-basics.html
Recovering Your Virtual Machine. How to Manually Merge Hyper-V Snapshots Back into one VHD