VMware的虚拟机“快照”功能是对虚拟机磁盘文件VMDK的某个状态创建副本,当系统出现异常,可以通过恢复快照来保证系统的正常。VMwware的虚拟机快照技术是非常有用的,但是也有需要注意的局限性。
快照(Snapshot):虚拟机的救命稻草
硬盘快照(Snapshot)是当前数据中心最佳的数据保护机制之一。无论是基于SAN的快照技术,还是建立在文件系统或操作系统中的,快照技术能够在错误出现时让损失降到最低。但并不是所有的快照技术并非都是面向意外的数据丢失,比如VMware ESX服务器及桌面虚拟化平台上的快照技术。
与其他的快照技术不同,VMware的快照并不是非常适合用于数据保护,但它称得上是一个非常有用的工具,只要能够用得恰当。从根本上来说,VMware的快照适合两种情况:1、将一个虚拟机的磁盘隔离,不再写入数据,这样可以进行备份;2、在打补丁和软件升级时提供一个短期的自动恢复功能。在开发环境中,可能经常会见到利用快照来保存一些实时状态的镜像,但是这样的方式在一个性能敏感的生产环境中是不可取的。
虚拟机快照结构,可以恢复到补丁前的状态
在一个典型的环境中,一个虚拟机的磁盘资源是由位于VMware独有的VMFS文件系统或NFS存储上的VMDK文件(virtual machine disk的缩写)组成,它的大小几乎等同于虚拟机的磁盘资源。所以如果你的Windows 2003 Server有15GB的系统硬盘,那么在VMFS卷上会出现一个15GB的VMDK文件。
如果使用hypervisor对虚拟机进行快照,系统会创建第二个VMDK文件(有时叫做redo log),这个文件存储着进行快照后虚拟机所有写入的东西,这样的功能具有几个明显的优势:
首先,由于快照VMDK文件存储着对基础VMDK的写入操作,实际上基础VMDK不会被更改。这意味着在快照建立之后如果出现一些错误,可以很容易的将这些错误“扔掉”,恢复到进行快照之前的基础磁盘状态。同样,由于当快照存在时基础VMDK并不会被写入,这样就可以安全的对基础VMDK创建副本来进行备份。
然而,VMware的快照功能还有一些不足之处,也是应当注意的。
例如,当快照创建时虚拟机执行一个读操作,hypervisor会检查快照VMDK,查看是否有被读取的区块存在。如果有,则从快照中为虚拟机提供这个区块,如果没有,虚拟机还需要去读取基础VMDK。如果只有一个快照,这并不是什么问题,只不过是重复来读取VMDK。但是如果有大量快照存在,比如在两周内每天建立一个,那么hypervisor需要在14个快照文件中查找这个区块,这就会消耗大量的读I/O。
更糟糕的是,没有完善的机制来阻止这些快照的增长,如果你每天为一个Windows 2003虚拟机进行快照,大概每天需要消耗2GB的存储空间,这对大多数虚拟机来说还是非常保守的数字。大体上来说,你需要为虚拟机配置双倍的空间来存储这些更改。
如果换个角度来看,实际几乎所有的快照技术,包括SAN快照,都要消耗很大的存储空间。但有所不同的是VMware快照没有自动保护机制,防止VMFS卷被不断增长的快照填满。而大部分SAN当分配的快照空间被填满时会自动删除最早的快照。一旦VMSF卷被填满,当前的快照文件就不能再写入,而虚拟机也可能会崩溃。如果有很多虚拟机,并且快照都存在相同的VMFS卷上,这些虚拟机都可能会崩溃,这是灾难性的。
还有一个潜在的陷阱,hypervisor会通过磁盘停顿进程(disk quiescing)试图确认快照的应用程序持续状态,尽管可以再不停顿硬盘的情况下创建快照,但是这时候只能建立crash-consistent快照,如果在crash-consistent快照建立后恢复基础磁盘,操作系统和应用程序会出现貌似非正常关机时的状态。磁盘停顿功能让操作系统和应用程序可以找到合适的停顿点,比如完成写入,防止数据被损坏。
根据操作系统在虚拟机中的运行状况,可以通过不同的方式实现磁盘停顿。这些都需要应用安装在虚拟机操作系统中的VMware工具包。如果你运行的是一个新近版本的Windows系统,VMware工具将使用微软的卷影副本服务(VSS)在虚拟机I/O中创建一个临时的停顿,让VMware软件来创建更底层的磁盘快照。
然而,在进行大量磁盘I/O传输的虚拟机中,如微软SQL数据库平台或Exchange,卷影副本服务(VSS)可能会需要大量的调试才能工作正常。VSS工作并不是那么稳定,有时候,这次正常,而下次就可能出现故障。这是恼人的,特别是在希望通过停顿快照来对虚拟机进行更好的备份的时候。
小结:
尽管有这些不足,如果使用正确,VMware的快照可以说是一个优秀的工具,无论是在主要的升级或打补丁前为虚拟创建短期的实时副本,还是允许第三方备份软件对虚拟机执行direct-from-SAN的备份。然而,能有有效使用快照功能的前提是理解它们是如何工作的,可能偶尔需要进行一些调试。另外需要注意的是,如果要在运行关键任务的虚拟机应用VMware快照功能,要更加小心谨慎,最好先进行测试。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
通过VMware DRS规则管理Windows Server 2016授权成本
对于想要缓解Windows Server 2016授权成本负担的IT管理员,可以考虑VMware的分布式资源调 […]
-
VMware VVOLs应用案例逐步增加
有时技术具有一定的超前性,VMware VVOL就是一个例证,它承诺满足人们对hypervisor技术的所有预 […]
-
esxi中的虚拟机老是自动关机,爆如下这样的日志,有人遇到过吗?
XXX esx.audit.dcui.enabled.formatOnHost not found XXX X […]
-
架构师和研发经理那个对公司更重要一些?
公司最近赶上裁员,技术团队里就研发经理和架构师工资高,老板的意思是肯定要裁一个,那应该留那个?