从VMware和Citrix官方文档摘抄了些关于虚拟机快照行为的知识点,记录备忘。


VMware vSphere 5.1

每个快照都创建了一个附加增量 .vmdk 磁盘文件。执行快照时,快照机制会阻止客户机操作系统写入基础vmdk文件,而将所有写入定向到增量磁盘文件。增量磁盘表示虚拟磁盘的当前状况和上次执行快照时存在的状况之间的差异。如果存在多个快照,则增量磁盘可表示每个快照之间的差异。

我的理解:快照实际就是基础磁盘文件或父快照的磁盘文件,就是老东西,并不会有对应的什么快照文件新生成,做快照时VMware将这两种文件保护起来,不让写入新的东西,所有的新东西都写在增量磁盘中,不管怎样,增量磁盘是个时刻改变的东西,只是正常运行时增量磁盘就是虚机操作系统内的变化,如果还原回某一快照,那么就会变为做那个快照时的状态

如果客户机操作系统写入虚拟磁盘的每个块,则增量磁盘文件可以快速扩展并变得与整个虚拟磁盘的大小相同。

快照限制

  • 快照可能会影响虚拟机性能,且不支持某些磁盘类型或使用总线共享配置的虚拟机。快照作为短期解决方案用于捕获时间点虚拟机状况很有用,但不适用于长期虚拟机备份。

  • VMware 不支持对裸磁盘、RDM 物理模式磁盘或在客户机中使用 iSCSI 启动器的客户机操作系统的快照。

  • 在执行快照之前必须关闭具有独立磁盘的虚拟机的电源。不支持具有独立磁盘的已打开电源或已挂起的虚拟机的快照。

  • PCI vSphere Direct Path I/O 设备不支持快照。

  • VMware 不支持为总线共享配置的虚拟机的快照。如果需要使用总线共享,则作为备用解决方案,请考虑在客户机操作系统中运行备份软件。如果虚拟机当前具有快照,并阻止您配置总线共享,请删除(整合)这些快照。

  • 快照提供备份解决方案可以使用的磁盘的时间点映像,但快照不是备份和恢复的可靠方法。如果包含虚拟机的文件丢失,则其快照文件也丢失。另外,大量快照将难于管理,占用大量磁盘空间,并且在出现硬件故障时不受保护。

  • 快照可能会对虚拟机的性能产生负面影响。性能降低基于快照或快照树保持原位的时间、树的深度以及执行快照后虚拟机及其客户机操作系统发生更改的程度。另外,还可能会看到打开虚拟机电源所花费的时间变长。不要永久从快照运行生产虚拟机。


删除快照会涉及大批量的磁盘读和写操作,这会降低虚拟机性能,此影响会一直持续到整合完成为止。

如果在删除单个快照或所有快照时磁盘整合失败,并且您注意到虚拟机性能下降,则可以查看虚拟机列表以确定是否有文件需要整合,如果有,请运行单独的整合操作。有关查找并查看多个虚拟机的整合状态以及运行单独的整合操作的信息,请参见“整合 vSphere Client 中的快照”

删除 使用删除选项可以从快照树中移除单个父或子快照。删除会将快照与先前增量磁盘状态之间的磁盘更改写入父快照。还可以使用删除选项移除快照树中已弃用分支中的损坏快照及其文件,而不将它们与父快照合并。
删除全部 使用删除全部选项可以从快照管理器中删除所有快照。删除全部会整合快照与先前增量磁盘状态之间的更改并将其写入基础父磁盘,并将它们与基础虚拟机磁盘合并。


为防止快照文件与父快照合并(例如,以防更新或安装失败),请首先使用转到命令还原至上一个快照。此操作会使快照增量磁盘变为无效,并删除内存文件。然后,便可以使用删除选项移除快照及所有相关文件。


Xenserver 6.0.2

XenServer 提供了一种简便的快照机制。借助该机制,可以在给定的时间生成 VM 存储和元数据的快

照。生成快照时,可在需要时临时停止 IO 以确保捕获自身一致的磁盘映像。

快照操作会生成类似于模板的快照 VM。VM 快照包含所有存储信息和 VM 配置(包括已连接的

VIF),可以导出并还原这些信息和配置以进行备份。虽然所有存储类型都支持快照,但对基于 LVM

的存储类型而言,如果存储库是使用以前版本的 XenServer 创建的,则必须对其进行升级,而且卷必

须采用默认格式(无法对  type=raw  卷生成快照)。

快照操作过程分为 2 个步骤:

将元数据捕获为模板。

创建磁盘的 VDI 快照。

支持三种类型的 VM 快照:常规快照、静态快照以及包含内存数据的快照

常规快照

常规快照处于持续崩溃状态,可以在所有 VM 类型(包括 Linux VM)上执行。

静态快照

静态快照利用 Windows 卷快照服务 (VSS),生成和应用程序一致的实时快照。VSS 框架帮助可识别

VSS 的应用程序(例如 Microsoft Exchange 或 Microsoft SQL Server)在生成快照前将数据刷新到磁

盘并为快照做好准备。

因此,还原静态快照比较安全,但当生成静态快照时,这些快照可能会对系统性能产生更大的影响。如

果负载不足,它们还可能会失败,因此生成该快照可能需要进行多次尝试。

XenServer 支持 Windows Server 2003 和 Windows Server 2008(32 位与 64 位的各种版本)上的静

态快照。不支持 Windows 2000、Windows XP 和 Windows Vista。有关静态快照的详细信息,请参

阅“静态快照高级说明”一节。

包含内存数据的快照

除保存虚拟机内存(存储)和元数据外,包含内存数据的快照还保存虚拟机状态 (RAM)。当您正在

升级或修补软件,或想要测试新应用程序,但同时又希望能选择返回到虚拟机的当前、更改前状态

(RAM) 时,这种快照类型会非常有用。还原到包含内存数据的快照无需重新引导 VM。

可以通过 XenAPI、xe CLI 或使用 XenCenter 来生成包含内存数据的屏幕快照。


结论:无论VMware和Xenserver,从它们各自生成快照的过程来看,均需要占用几个G甚至等于原虚拟磁盘的制备大小。因此做快照时要注意查看存储所剩空间。防止存储过满而造成虚机无法启动(虚机启动需要存储上有一定的剩余空间)