VMware快照优缺点分析

日期: 2010-08-22 作者:张桂林 来源:TechTarget中国 英文

  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

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐