VM 快照
XenServer 提供了一种便捷的机制,可以在给定时间点对 VM 存储和元数据进行快照。必要时,在进行快照时会暂时停止 I/O,以确保可以捕获自洽的磁盘映像。
快照操作会生成一个类似于模板的快照 VM。VM 快照包含所有存储信息和 VM 配置,包括附加的 VIF,从而可以将其导出和恢复以进行备份。所有存储类型都支持快照。但是,对于基于 LVM 的存储类型,必须满足以下要求:
- 如果存储库是在早期版本的 XenServer® 上创建的,则必须已对其进行升级
- 卷必须采用默认格式(您无法对
type=raw卷进行快照)
快照操作是一个两步过程:
-
将元数据捕获为模板。
-
创建磁盘的 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-->
当 XenServer 完成创建包含内存的快照后,将显示其 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 会暂停一小段时间,在此期间无法使用。
列出 XenServer 池中的所有快照
运行 snapshot-list 命令:
xe snapshot-list
<!--NeedCopy-->
此命令列出 XenServer 池中的所有快照。
列出特定虚拟机上的快照
运行 vm-list 命令获取特定虚拟机的 UUID。
xe vm-list
<!--NeedCopy-->
此命令显示所有虚拟机及其 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-->
也可以通过根据字段值筛选完整的虚拟机列表来指定虚拟机。
例如,指定 power-state=halted 会选择所有电源状态字段等于“halted”的虚拟机。如果匹配到多个虚拟机,则必须指定 --multiple 选项才能执行操作。使用 xe vm-list params=all 命令获取可匹配的完整字段列表。
找到所需的虚拟机,然后输入以下内容:
xe snapshot-list snapshot-of=vm uuid
<!--NeedCopy-->
例如:
xe snapshot-list snapshot-of=2d1d9a08-e479-2f0a-69e7-24a0e062dd35
<!--NeedCopy-->
此命令列出该虚拟机上当前的快照:
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-->
将虚拟机恢复到其以前的状态
确保您拥有要恢复到的快照的 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-->将虚拟机恢复到检查点后,虚拟机将挂起。
注意:
如果没有足够的磁盘空间来厚置备快照,则在释放当前磁盘状态之前,您无法恢复到该快照。如果出现此问题,请重试该操作。
可以回滚到任何快照。在回滚操作期间,现有快照和检查点不会被删除。
删除快照
确保您拥有要删除的检查点或快照的 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-->注意:
此命令在相同的池中创建一个模板对象。此模板仅存在于当前池的 XenServer 数据库中。
-
要验证模板是否已创建,请运行命令
template-list:xe template-list <!--NeedCopy-->此命令列出 XenServer 主机上的所有模板。
将快照导出到模板
当您导出 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 文档中的计划快照。