我们可以先回顾一下前几年玩vmware workstation或者VPC等产品的时候是个什么样的情景.配置好了虚拟机各项参数,搭好了实验环境,就要开始做测试了,打住,我们还要做什么? snapshot!OK,看来您是真玩过虚拟机,呵呵...没错,虚拟机快照可以完整地保存当前虚拟机上运行的系统,应用程序甚至内存使用的状态.当虚拟机发生系统故障等问题时我们只要选择还原到合适的时间点上的正常的状态就又可以使用了.很方便很强大.
我们来简单地看一下如何在Hyper-V上为虚拟机抓取一次快照:
这里我新建了一台虚拟机Client2-WIN2003,
可以看到当前的快照栏位写明"选定的虚拟机没有快照".
同时我们到此虚拟机安装目录下的snapshots文件夹中一览:
也是空空如也.
OK,我们来为Client2-WIN2003捕捉一个快照,很简单,Hyper-V管理器中选中名称,右键,快照
因为新建的虚拟机,里面没有什么乱七八糟的东西,这个快照的获取在几秒之内就完成了.
完成后我们可以看到快照栏位已经有一个显示,上面还表明了此快照的建立时间
我们再到此台虚拟机安装目录下的snapshots文件夹中一览:
这回就不是空的了,多了三个东西,一个XML文档,两个文件夹,名字都很长.其实这个是为标示不同快照的GUID号码,这里就不多做介绍了.点开看看:
注意到,这里有个格式为.AVHD的文件,大小已经有85M多了,并且修改日期是1:09分了(我建立快照的时候可是0:56分).
其实这个AVHD文件就是一个把建立快照之后虚拟机上产生的新的数据新的变化写入到的一个独立的磁盘增量文件.(0:56分我漏了这个文件的截图,那时候才有30多M大小).
也就是说当我们对某个虚拟机做了snapshot,以后再对该虚拟机所做修改都将存到相应的GUID.AVHD文件中,所以这个文件会随着时间越来越大.
根据这点,也很好理解,这台虚拟机的原始.VHD文件就会处于只读状态而不会变化.
我要是过了一阵子又建立了快照呢?
又会有新的基准和增量文件的产生了.
我们再做快照,还会出现新的文件......
这里有很值得大家注意的一点,我来演示一下:
我已经确认前面做的快照不需要了,所以右键删除:
删除成功,我们还去此台虚拟机安装目录下的snapshots文件夹中一览
你会发现:咦,你不是把快照都删除了吗,怎么这几个.AVHD文件还在?
这个就是值得我们注意的地方:
在Hyper-V上面删除了一个或多个快照以后,快照的文件(.AVHD)并不会马上被删除.而是会在相应的虚拟机关机的时候才整合到这台虚拟机的原始虚拟磁盘(.VHD)中.
我们来看看是不是 这么回事:
注意到"正在进行合并"...
文件目录还在, .AVHD文件消失了.
相信看了上面这么多,大家对Hyper-V的snapshot功能已经有了更多的认识.
其实严格地从技术上讲,虚拟机快照应该不算是备份,并且它有很多局限性以至于并不一定很适用于生产环境中.原因如下:
1.不能进行文件粒度的恢复.当虚拟机中我们存放的某个重要文件丢失的时候,如果使用快照恢复,我们无法像用ntbackup工具一样能指定要还原出那个文件来,而必须要还原全部的快照内容.
2.如前面我们所知道的,快照文件其实就是一个把发生快照之后虚拟机上产生的新的数据新的变化写入到一个独立的磁盘增量文件.随着我们做了越来越多的快照,实体服务器上的存储空间也会被占用的越来越多,所以我们不得不先去确认过期和不需要的快照并且将其删除以防止存储空间不足,这给我们日常管理和维护增加了不少难度.
3.当建立了很多快照以后,Hypervisor引擎就得检查很多硬盘文件以找到最新数据,就像我们上面看到的那样,一层上有一层再有一层的感觉,这样会增加很多物理I/O负载.尤其是物理服务器上运行了若干台保存有大量快照的虚拟服务器的时候.要解决此问题方法同2.
那么,Hyper-V中还有哪些备份方式可以供我们选择呢?又有什么优势呢?
咱们下回接着说:浅谈Hyper-V的几种备份方式(二)----Windows Server Backup & VSS