使用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