VM 快照
Citrix Hypervisor 提供了一种简便的机制。借助该机制,可以在给定的时间生成 VM 存储和元数据的快照。如有必要,在生成快照时会暂时停止 I/O,以确保捕获具有自我一致性的磁盘映像。
快照操作会生成类似于模板的快照 VM。VM 快照包含所有存储信息和 VM 配置(包括已连接的 VIF),可以导出并还原这些信息和配置以进行备份。快照在所有存储类型中都受支持。但是,对于基于 LVM 的存储类型,必须满足以下要求:
- 如果已在早期版本的 Citrix Hypervisor 上创建存储库,则必须对其进行升级
- 卷必须采用默认格式(无法生成
type=raw
卷的快照)
快照操作过程分为 2 个步骤:
-
将元数据捕获为模板。
-
创建磁盘的 VDI 快照。
支持以下类型的 VM 快照:常规快照和带内存的快照。
常规快照
常规快照处于持续崩溃状态,可以在所有 VM 类型(包括 Linux VM)上执行。
带内存的快照
除保存 VM 内存(存储)和元数据外,包含内存数据的快照还保存 VM 状态 (RAM)。此功能在升级或修补软件时可能非常有用,但是您还可以选择还原到更改前的 VM 状态 (RAM)。还原到包含内存数据的快照无需重新启动 VM。
可以通过管理 API、xe CLI 或 XenCenter 来生成正在运行或已挂起 VM 的内存快照。
创建 VM 快照
生成快照之前,,请参阅以下有关特定于任何特殊操作系统的配置和注意事项的信息:
首先确保 VM 正在运行或已挂起,以便可以捕获内存状态。选择要对其执行操作的 VM 的最简单方法是提供参数 vm=name
或 vm=vm uuid
。
运行 vm-snapshot
命令以生成 VM 的快照。
xe vm-snapshot vm=vm uuid new-name-label=vm_snapshot_name
<!--NeedCopy-->
创建包含内存数据的快照
运行 vm-checkpoint
命令,为包含内存数据的快照指定一个描述性名称,以便以后能识别该快照:
xe vm-checkpoint vm=vm uuid new-name-label=name of the checkpoint
<!--NeedCopy-->
Citrix Hypervisor 完成创建内存快照之后,系统会显示其 UUID。
例如:
xe vm-checkpoint vm=2d1d9a08-e479-2f0a-69e7-24a0e062dd35 \
new-name-label=example_checkpoint_1
b3c0f369-59a1-dd16-ecd4-a1211df29886
<!--NeedCopy-->
包含内存数据的快照需要每个磁盘至少有 4 MB 的磁盘空间,以及加上 RAM 的大小,再加上约 20% 的开销。因此,具有 256 MB RAM 的检查点需要约 300 MB 的存储空间。
注意:
在创建检查点的过程中,VM 会短时暂停,在暂停期间不能使用。
列出 Citrix Hypervisor 池中的所有快照
运行 snapshot-list
命令:
xe snapshot-list
<!--NeedCopy-->
此命令会列出 Citrix Hypervisor 池中的所有快照。
列出特定 VM 上的快照
通过运行 vm-list
命令获取特定 VM 的 UUID。
xe vm-list
<!--NeedCopy-->
此命令会显示所有 VM 及其 UUID 的列表。例如:
xe vm-list
uuid ( RO): 116dd310-a0ef-a830-37c8-df41521ff72d
name-label ( RW): Windows Server 2016 (1)
power-state ( RO): halted
uuid ( RO): dff45c56-426a-4450-a094-d3bba0a2ba3f
name-label ( RW): Control domain on host
power-state ( RO): running
<!--NeedCopy-->
也可以通过过滤字段值上的完整 VM 列表,来指定 VM。
例如,指定 power-state=halted
将会选择电源状态字段为“halted”的所有 VM。如果有多个匹配的 VM,则必须指定选项 --multiple
才能执行该操作。可匹配字段的完整列表可以通过命令 xe vm-list params=all
获得。
查找所需的 VM,然后输入以下内容:
xe snapshot-list snapshot-of=vm uuid
<!--NeedCopy-->
例如:
xe snapshot-list snapshot-of=2d1d9a08-e479-2f0a-69e7-24a0e062dd35
<!--NeedCopy-->
此命令会列出当前位于该 VM 上的快照:
uuid ( RO): d7eefb03-39bc-80f8-8d73-2ca1bab7dcff
name-label ( RW): Regular
name-description ( RW):
snapshot_of ( RO): 2d1d9a08-e479-2f0a-69e7-24a0e062dd35
snapshot_time ( RO): 20090914T15:37:00Z
uuid ( RO): 1760561d-a5d1-5d5e-2be5-d0dd99a3b1ef
name-label ( RW): Snapshot with memory
name-description ( RW):
snapshot_of ( RO): 2d1d9a08-e479-2f0a-69e7-24a0e062dd35
snapshot_time ( RO): 20090914T15:39:45Z
<!--NeedCopy-->
将 VM 还原为其先前的状态
确保知道要还原的快照的 UUID,然后运行 snapshot-revert
命令:
-
运行
snapshot-list
命令以查找要还原的快照或检查点的 UUID:xe snapshot-list <!--NeedCopy-->
-
记下快照的 UUID,然后运行以下命令进行还原:
xe snapshot-revert snapshot-uuid=snapshot uuid <!--NeedCopy-->
例如:
xe snapshot-revert snapshot-uuid=b3c0f369-59a1-dd16-ecd4-a1211df29886 <!--NeedCopy-->
将 VM 还原为检查点后,VM 将被挂起。
备注:
如果没有足够的磁盘空间可用于对快照进行密集预配,则在当前磁盘的状态被释放之前,无法还原到快照。如果发生此问题,请重试此操作。
不可能还原到任何快照。还原操作期间不会删除现有快照和检查点。
删除快照
确保知道要删除的检查点或快照的 UUID,然后运行以下命令:
-
运行
snapshot-list
命令以查找要还原的快照或检查点的 UUID:xe snapshot-list <!--NeedCopy-->
-
记下快照的 UUID,然后运行
snapshot-uninstall
命令将其删除:xe snapshot-uninstall snapshot-uuid=snapshot-uuid <!--NeedCopy-->
-
此命令会警告您要删除的 VM 和 VDI。键入
yes
以进行确认。
例如:
xe snapshot-uninstall snapshot-uuid=1760561d-a5d1-5d5e-2be5-d0dd99a3b1ef
The following items are about to be destroyed
VM : 1760561d-a5d1-5d5e-2be5-d0dd99a3b1ef (Snapshot with memory)
VDI: 11a4aa81-3c6b-4f7d-805a-b6ea02947582 (0)
VDI: 43c33fe7-a768-4612-bf8c-c385e2c657ed (1)
VDI: 4c33c84a-a874-42db-85b5-5e29174fa9b2 (Suspend image)
Type 'yes' to continue
yes
All objects destroyed
<!--NeedCopy-->
如果您只希望删除检查点或快照的元数据,请运行以下命令:
xe snapshot-destroy snapshot-uuid=snapshot-uuid
<!--NeedCopy-->
例如:
xe snapshot-destroy snapshot-uuid=d7eefb03-39bc-80f8-8d73-2ca1bab7dcff
<!--NeedCopy-->
快照模板
从快照创建模板
可以从快照创建 VM 模板。但是,其内存状态将被删除。
-
使用命令
snapshot-copy
指定该模板的new-name-label
:xe snapshot-copy new-name-label=vm-template-name \ snapshot-uuid=uuid of the snapshot <!--NeedCopy-->
例如:
xe snapshot-copy new-name-label=example_template_1 snapshot-uuid=b3c0f369-59a1-dd16-ecd4-a1211df29886 <!--NeedCopy-->
注意:
此命令会在 SAME 池中创建一个模板对象。此模板仅存在于当前池的 Citrix Hypervisor 数据库中。
-
要验证该模板是否已创建,请运行命令
template-list
:xe template-list <!--NeedCopy-->
此命令会列出 Citrix Hypervisor 服务器上的所有模板。
将快照导出到模板
导出 VM 快照时,VM 的完整副本(包括磁盘映像)会作为单独的文件存储到本地计算机上。此文件包含 .xva
文件扩展名。
-
使用命令
snapshot-export-to-template
创建模板文件:xe snapshot-export-to template snapshot-uuid=snapshot-uuid \ filename=template- filename <!--NeedCopy-->
例如:
xe snapshot-export-to-template snapshot-uuid=b3c0f369-59a1-dd16-ecd4-a1211df29886 \ filename=example_template_export <!--NeedCopy-->
可以通过多种不同的方式使用 VM 导出/导入功能:
-
作为一种便捷的 VM 备份工具。在发生灾难情况时,可以使用导出的 VM 文件恢复整个 VM。
-
作为一种快速复制 VM 的方式,例如,多次使用的特殊用途服务器配置。您只需以希望的方式配置 VM,将其导出,然后再将其导入,即可创建原始 VM 的副本。
-
作为一种将 VM 移到其他服务器的简单方法。
有关使用模板的详细信息,请参阅创建 VM,以及 XenCenter 文档中的管理 VM 文章。
计划快照
计划快照功能为关键服务 VM 提供了一个简单的备份和还原实用程序。系统将自动生成定期计划快照,并用来还原相应的 VM。快照计划功能的工作原理是为池中的选定 VM 创建池范围内的快照计划。启用快照计划后,将在每小时、每天或每周的预定时间生成指定 VM 的快照。在一个池中可以启用多个计划快照,这些快照可以涵盖不同的 VM 并且包含不同的计划。一次只能将一个 VM 分配至一个快照计划。
XenCenter 提供了一系列工具,可帮助您使用此功能:
-
要定义计划快照,请使用新建快照计划向导。
-
要启用、禁用、编辑和删除池的计划快照,请使用 VM 快照计划对话框。
-
要编辑快照计划,请从 VM 快照计划对话框中打开该计划的属性对话框。
-
要将 VM 还原到计划快照,请在快照选项卡上选择快照,然后将 VM 还原到该快照。
有关详细信息,请参阅 XenCenter 文档中的计划快照。