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创建副本来进行备份。