大家在用虚拟机的时候最最看重可能就是虚拟机的快照功能了,做个快照,然后随便开始整就算系统坏了,在用快照恢复一下就OK了,多好的技术呀。但是请记住快照不等于备份,千万不要把快照当作备份。
当虚拟机开着时,快照提供了一个备份原始VMDK文件的好办法。所有的写入操作在原始文件上暂停了,因此,复制它在另一个存储卷很安全。这就是像 VMware Consolidated Backup和Vizioncore的vRanger功能那样的备份应用。它们给虚拟机进行快照、备份磁盘文件并在完成时删除快照。
诸如VMBK这样的脚本也提供这种功能。这些程序允许复制VMDK文件到本地存储或网络共享以提供另一种恢复重要虚拟机的方法。
只有一个快照的虚拟机在删除快照时不需要额外的磁盘空间。不过如果你有许多快照,当删除所有快照时,你将需要额外的磁盘空间。这是由于这些快照要合并到原始磁盘文件。
例如,假设你要删除有三个快照的虚拟机上的所有快照,我们称它们为快照1、快照2及快照3。首先,快照3将合并到快照2,快照2的大小将增加。接下来,快照2合并到快照1,快照1的大小也将增加。最后,快照1将合并到原始磁盘文件,这不需要额外的磁盘空间。当原始磁盘文件在整个操作结束时更新,快照文件被删除,而不是每个合并过程时删除。因此,当删除它们时,拥有20GB快照文件的虚拟机可能需要额外的20GB。如果你有一台低磁盘空间的ESX主机,这将用光所有可用的磁盘空间,并且阻止你删除快照。
使用较少额外磁盘空间来删除多个快照的解决办法是一个一个删除它们,从虚拟机父级快照开始到子级。使用这种方法,当快照被合并到先前的快照,只有先前快照增加了,然后删除。这个方法虽然沉闷,但不需要较多的额外磁盘空间。
注意:当虚拟机有一个快照运行时,不要运行Windows磁盘碎片整理。碎片整理操作改变许多磁盘块并能引起快照文件急速增加。
多长时间删除快照 当使用VMware Infrastructure Client(VI Client)删除快照时,这个任务状态栏容易使人误解。一般来说,任务状态跳到95%完成率时应该很快完成,不过能注意到它在95%一直不动,直到整个删除过程完成。VirtualCenter有15分钟的超时时间。因此,就算你的文件仍然在删除,VirtualCenter将报告这个操作超时. 找到任务完成的方法是使用VI Client里的数据存储浏览器查看虚拟机目录。当delta文件消失了,你就知道快照删除完成了。
活动了很长时间的快照(因此变得很大)在删除时需要很长时间。快照删除需要的时间的变化取决于虚拟机活动等级;当关闭虚拟机时,删除时间短。ESX主机上的磁盘子系统活动数量也能影响快照删除时的时间。100GB的快照需要3到6小时合并到原始磁盘。使用ESX 3.5的话,由于整合算法的变更,将需要更长的时间。这将影响虚拟机和ESX主机的性能。正因如此,你应该限制保留快照的时间长度,在你不需要它们时就删除。
快照和远数据锁定影响ESX性能,快照对ESX主机和虚拟机的影响有几种方式。当你第一次创建一个快照时,虚拟机活动将暂时停止;当创建快照时,如果虚拟机响了,你将注意到超时。同样,创建快照引起元数据更新,将导致SCSI预留冲突以致锁定LUN(逻辑单元号)。结果,在一小段时间里,LUN只能在ESX Server主机上可用。
如果你创建了个虚拟机快照并运行虚拟机,这个快照是活动的。如果这个快照是活动的,由于ESX有区别地写入delta文件,不如写入标准的 VMDK文件那样有效率,虚拟机性能将降低。由于元数据锁定了,当一个写入到磁盘时,其他的都不能写入到delta文件。同样,随着delta文件以每个 16MB增量增加,将引起另一个元数据上锁。这能影响虚拟机和ESX主机。性能影响有多大取决于虚拟机和ESX主机有多繁忙。在第三部分中,我将说明如何解决VMware Snapshots的性能问题。
最后,删除一个快照也创建一个元数据锁定。另外,当delta文件正被commit时,你正删除的快照将造成虚拟机性能的大幅度下降。如果虚拟机非常繁忙,这将很容易看到。为避免这个问题,最好在主机服务器不繁忙的闲时删除大的或多个快照。
当快照运行时不要扩充磁盘文件

对VCB工作过程的讨论. 由于VCB是依赖于快照技术, 从讨论中得出的结论是快照确实有影响. 理由:
1. VM建立snapshot后, VM的数据变化不再写入VM原始 vmdk 文件, 而是纪录于 snapshot 文件.
2. 为了节省空间, snapshot 文件是变长文件.
3. 数据写入 snapshot 文件时, 文件长度增大, 该 snapshot 文件所在的 vmfs 卷的 metadata 需要更新.
4. 更新 vmfs 卷的 metadata 时, ESX需要锁定该卷, 禁止对该卷的一切读写操作. 即是, 此时所有同卷的其他VM也无法进行盘操作.
影响有多大不知道, 但使用VCB的建议是不要同时对一个卷做一个以上的后备操作(即有一个 snapshot).
同样的理由不要在生产环境中建立使用变长文件的VM. 这不仅影响本身, 也影响到在同卷上的其他 VM.