kvm快照
在KVM中,内部快照是基于当前虚拟机镜像创建的快照,存储在虚拟机镜像文件的一个内部快照链中;而外部快照是创建一个独立于虚拟机镜像的快照文件,不在虚拟机镜像的快照链中。
以下是创建内部快照和外部快照的详细步骤和命令:
一、内部快照
- 创建内部快照:
virsh snapshot-create --domain <虚拟机名称> --name <快照名称>
例如,创建名为snapshot1
的内部快照:
virsh snapshot-create --domain test-vm --name snapshot1
- 查看内部快照列表:
virsh snapshot-list --domain <虚拟机名称>
例如,查看test-vm
虚拟机的内部快照列表:
virsh snapshot-list --domain test-vm
- 恢复到内部快照:
virsh snapshot-revert --domain <虚拟机名称> --snapshotname <快照名称>
例如,恢复到名为snapshot1
的内部快照:
virsh snapshot-revert --domain test-vm --snapshotname snapshot1
- 删除内部快照:
virsh snapshot-delete --domain <虚拟机名称> --snapshotname <快照名称>
例如,删除名为snapshot1
的内部快照:
virsh snapshot-delete --domain test-vm --snapshotname snapshot1
二、外部快照
1.创建外部快照:
qemu-img snapshot -c <快照名称> <虚拟机镜像文件路径>
例如,创建名为external_snapshot
的外部快照:
qemu-img snapshot -c external_snapshot /var/lib/libvirt/images/test-vm.qcow2
2.查看外部快照列表:
qemu-img snapshot -l <虚拟机镜像文件路径>
例如,查看/var/lib/libvirt/images/test-vm.qcow2
的外部快照列表:
qemu-img snapshot -l /var/lib/libvirt/images/test-vm.qcow2
3.删除外部快照:
qemu-img snapshot -d <快照名称> <虚拟机镜像文件路径>
例如,删除名为external_snapshot
的外部快照:
qemu-img snapshot -d external_snapshot /var/lib/libvirt/images/test-vm.qcow2
通过以上步骤和命令,您可以在KVM中创建内部快照和外部快照,并了解它们之间的区别。
三、外部快照的使用场景
在系统不支持创建内部快照的情况下可以使用外部快照
例如:华为TaiShan服务器
cpu:Kunpeng-920
####尝试创建内部快照
virsh snapshot-create --domain Asianux
问题原因:
aarch64的开源KVM当前只支持UEFI启动,而UEFI不支持内部快照,所以当前TaiShan服务器虚拟化也只能支持外部快照。
创建外部快照
#创建一个名为external_snapshot的外部快照
qemu-img snapshot -c external_snapshot /var/lib/libvirt/images/Asianux.qcow2
#查看
qemu-img snapshot -l /var/lib/libvirt/images/Asianux.qcow2
#恢复
qemu-img snapshot -a external_snapshot /var/lib/libvirt/images/Asianux.qcow2