使用KVM的快照来管理客户操作系统的状态

KVM快照概述

KVM快照是保留KVM在某个时间点的状态的功能。快照与普通备份不同,它仅保留发生更改的差异,从而保留了创建快照时的状态。此外,由于不需要复制整个客户操作系统的所有数据,所以创建快照的过程非常快速。但是请注意,如果客户操作系统本体或快照文件中的任何一个损坏,就无法恢复到原始状态,因此请谨慎使用快照作为备份的替代品。创建快照的步骤是先创建外部父快照,然后派生子快照。

获取快照(外部)

通过使用virsh snapshot-create-as命令,您可以获取虚拟机的外部快照。即使虚拟机正在运行,也可以进行快照的获取。

# virsh snapshot-create-as <KVMドメイン名> <スナップショット名> "<コメント>" --disk-only --atomic
Domain snapshot sn01_kvm_centos7 created
# virsh snapshot-create-as kvm_centos7 sn01_kvm_centos7 "test snap shot" --disk-only --atomic
Domain snapshot sn01_kvm_centos7 created

关于快照(外部)的恢复

目前看来,外部快照的恢复尚不支持,这是在2015年6月的情况。

$ virsh snapshot-revert kvm_centos7 sn01_kvm_centos7
error: unsupported configuration: revert to external snapshot not supported yet

请在进行快照恢复之前先获取内部快照。

确认快照

# virsh snapshot-list <KVMドメイン名>
# virsh snapshot-list kvm_centos7
 Name                 Creation Time             State
------------------------------------------------------------
 sn01_kvm_centos7     2015-01-18 18:04:44 +0900 shutoff

获取快照(内部)

在获取外部快照的状态下,执行以下命令可以获取快照。请确保快照名称不与其他外部快照或内部快照重复。

# virsh snapshot-create-as <KVMドメイン名> <スナップショット名> "<コメント>"
# virsh snapshot-create-as kvm_centos7 sn02_kvm_centos7 "comment"

用树形结构展示快照

如果想要确认快照的派生关系,您可以通过加上 “–tree” 选项来进行确认。

# virsh snapshot-list kvm_centos7 --tree
sn01_kvm_centos7
  |
  +- sn02_kvm_centos7
      |
      +- mariadb_kvm_centos7
      +- postgresql_kvm_centos7

查找当前状态是从哪个快照衍生而来的。

通过使用 virsh snapshot-list 命令的 –tree 和 –current 选项,可以进行确认。

# virsh snapshot-list kvm_centos7 --tree --current
mariadb_kvm_centos7

恢复到特定的快照状态。

要返回到特定快照点,请使用virsh snapshot-revert命令。
请指定内部快照作为所指定的快照。

# virsh snapshot-revert <KVMドメイン名> <スナップショット名>
# virsh snapshot-revert kvm_centos7 sn02_kvm_centos7

删除快照(内部)。

通过执行virsh snapshot-delete命令,可以删除快照。

# virsh snapshot-delete <KVMドメイン名> <スナップショット名>
# virsh snapshot-delete kvm_centos7 sn03_kvm_centos7

删除快照(外部)。

如果要删除外部快照,可以通过添加–metadata选项来进行删除。

# virsh snapshot-delete <KVMドメイン名> <スナップショット名> --metadata
# virsh snapshot-delete kvm_centos7 sn01_kvm_centos7 --metadata
bannerAds