20.39. 管理快照
后续部分描述可执行的操作以操作客户机虚拟机快照。快照 取客户机虚拟机的磁盘、内存和设备状态(在指定时间点),并保存它供以后使用。快照有多种,从保存操作系统镜像的"彻底"副本,以便在可能成为破坏性操作之前保存虚拟机的状态。快照通过唯一的名称来标识。有关用于表示快照属性的 XML 格式文档,请参阅 libvirt 上游网站。
重要
Red Hat Enterprise Linux 7 仅支持在客户机虚拟机暂停或关闭时创建快照。在 Red Hat Virtualization™ 中提供了运行客户机的快照(也称为 实时快照)。如需详细信息,请致电您的服务代表。
20.39.1. 创建快照
virsh snapshot-create 命令使用客户机虚拟机 XML 文件中指定的属性(如
<name>
和 <description>
元素以及 <disks>
)为客户机虚拟机创建一个快照。要创建快照运行:
# virsh snapshot-create domain XML file [--redefine [--current] [--no-metadata] [--halt] [--disk-only] [--reuse-external] [--quiesce] [--atomic]
客户机虚拟机名称、id 或 uid 可用作客户机虚拟机要求。XML 要求是一个字符串,它必须至少包含 名称、描述 和磁盘元素。
剩余的可选参数如下:
--disk-only
- 客户机虚拟机的内存状态不包含在快照中。- 如果完全省略 XML 文件字符串,libvirt 将为所有字段选择一个值。新快照将变为最新状态,如 snapshot-current 所列出。此外,快照将仅包含磁盘状态,而不是包含 guest 虚拟机状态的常规系统检查点。磁盘快照比全系统检查点快,但恢复到磁盘快照可能需要 fsck 或日志重播,因为在电源 cord 拉特拉特拉特时,磁盘状态就如同磁盘状态。请注意,混合
--halt
和--disk-only
会丢失任何时间没有冲刷到磁盘的数据。 --halt
- 在创建快照后,使客户机虚拟机保持不活动状态。混合--halt
和--disk-only
会丢失任何在时间和内存状态时没有刷新到磁盘的数据。--redefine
指定:如果 virsh snapshot-dumpxml 生成的所有 XML 元素都有效;它可以用于将快照层次结构从一台计算机迁移到另一台计算机,为重新创建层次结构,以重新建立一个 临时的 guest 虚拟机,该虚拟机之后使用相同的名称和 UUID 重新创建,或者在快照元数据中对快照元数据(如主机特定部分)进行改变。提供此标志时,xmlfile
参数是必需的,除非也指定了--current
标志,否则 guest 虚拟机的当前快照不会被更改。--no-metadata
创建快照,但所有元数据都会立即丢弃(即,libvirt 不会将快照视为当前),除非稍后使用--redefine
来教授 libvirt 元数据。--reuse-external
,如果使用和快照 XML 请求一个带有现有文件目标的外部快照,目标必须存在,并且会被重复使用;否则,快照将被拒绝,以避免丢失现有文件的内容。--quiesce
libvirt 将尝试使用客户机代理冻结并取消冻结客户机虚拟机的已挂载文件系统。但是,如果客户机虚拟机没有客户机代理,则快照创建将失败。快照可以包含虚拟机的内存状态。快照必须是 external。--
Atomic 可使 libvirt 保证快照可以成功执行,或者没有更改失败。请注意,不是所有虚拟机监控程序都支持这种管理程序。如果没有指定此标志,那么某些虚拟机监控程序在部分操作后可能会失败,且必须使用 virsh dumpxml 来查看是否发生了任何部分更改。
快照元数据的存在将阻止尝试取消定义持久的客户机虚拟机。但是,对于 临时 客户机虚拟机,当客户机虚拟机退出运行时快照元数据会被静默丢失(无论是命令,如 销毁 还是内部客户端操作)。