第 13 章 使用快照保存和恢复虚拟机状态

要保存虚拟机的当前状态,您可以创建一个虚拟机的 快照。之后,您可以恢复到快照,来将虚拟机返回到保存的状态。

VM 快照包含虚拟机的磁盘镜像。如果您从正在运行的虚拟机创建一个快照(也称为 实时快照),则快照还包含虚拟机的内存状态,其中包括正在运行的进程和应用程序。

例如,对于以下任务,创建快照可能很有用:

  • 保存客户机操作系统的干净状态
  • 确保您在对虚拟机执行具有潜在的破坏性操作之前有一个恢复点

13.1. 对虚拟机快照的支持限制

红帽仅在使用 external 快照时支持对 RHEL 上虚拟机(VM)的快照功能。目前,只有在满足以下要求时,才能在 RHEL 上创建外部快照:

  • 您的主机使用 RHEL 9.4 或更高版本。
  • 虚拟机使用基于文件的存储。
  • 您只能在以下场景之一创建虚拟机快照:

    • 虚拟机已关闭。
    • 如果虚拟机正在运行,您可以使用 --disk-only --quiesce 选项或 --live --memspec 选项。

大多数其他配置会创建 内部 快照,它们在 RHEL 9 中已弃用。内部快照可能适用于您的用例,但红帽不提供对它们的全面测试和支持。

警告

不要在生产环境中使用内部快照。

要确保快照被支持,请显示快照的 XML 配置,并检查快照类型和存储:

# virsh snapshot-dumpxml <vm-name> <snapshot-name>
  • 支持的快照的输出示例:

    <domainsnapshot>
      <name>sample-snapshot-name-1<name>
      <state>shutoff</state>
      <creationTime>1706658764</creationTime>
      <memory snapshot='no'/>
      <disks>
        <disk name='vda' snapshot='external' type='file'>
          <driver type='qcow2'/>
          <source file='/var/lib/libvirt/images/vm-name.sample-snapshot-name-1'/>
        </disk>
      </disks>
      <domain type='kvm'>
      [...]
  • 不支持的快照的输出示例:

    <domainsnapshot>
      <name>sample-snapshot-name-2</name>
      <state>running</state>
      <creationTime>1653396424</creationTime>
      <memory snapshot='internal'/>
      <disks>
        <disk name='vda' snapshot='internal'/>
        <disk name='sda' snapshot='no'/>
      </disks>
      <domain type='kvm'>
      [...]