任务2.5 虚拟机快照

KVM 是一种开源的虚拟化技术,提供了快照管理的功能。快照是虚拟机当前状态的一个副本,可以记录虚拟机在某个时间点的状态,允许管理员回滚虚拟机到之前的状态。
KVM 快照管理的原理主要包含以下三个步骤:
1.创建快照
管理员可以在 KVM 中使用 virsh 命令或者其他管理工具创建快照。当管理员创建快照时,当前虚拟机的状态将被冻结,包括内存的数据和虚拟机的 CPU 状态。此时,KVM 会将当前虚拟机的状态保存到一个镜像文件中。
2.修改虚拟机
在创建快照之后,管理员可以在虚拟机中进行修改,包括安装软件、配置网络和修改文件等操作。这些修改将不会影响到快照中的虚拟机状态。
3.恢复虚拟机
如果管理员需要恢复虚拟机到之前的状态,可以使用 virsh 命令或者其他管理工具操作。此时,KVM 会使用之前创建的快照镜像文件中的数据恢复虚拟机的状态,包括内存和 CPU 的状态,使之前的状态得以恢复。
需要注意的是,恢复快照会覆盖当前虚拟机的状态,包括修改后的数据。因此,在恢复快照之前需要先备份当前虚拟机的数据,以便在恢复快照后再次操作。此外,快照会占用存储空间,因此需要根据实际情况定期清理无用的快照数据。

KVM 中的快照管理使用的是 COW(Copy-On-Write)技术。
在 COW 中,当管理员创建快照时,KVM 不会在磁盘上创建一个新的虚拟机镜像,而是复制一份指向原始虚拟机镜像的元数据(metadata),并创建一个快照树(snapshot tree)。新的快照将只记录修改过的部分,在新的快照上进行的写入操作将被复制到新的块设备中,而不改变旧的数据,因此可以避免复制整个块设备的开销。
当管理员恢复快照时,KVM 会将所有快照和基础镜像进行合并,以便恢复原始的虚拟机镜像。在合并快照时,KVM 会将修改的数据块复制到新的虚拟机镜像中,并释放旧的数据块。由于只有修改过的部分被复制,因此合并的时间通常会比较短,占用的磁盘空间也相对较小。

第一部分

[root@localhost ~]# virsh list --all
Id Name State


centos7.0                      shut off
 VM-1                           shut off
 VM-2                           shut off
 VM-3                           shut off

[root@localhost ~]# virsh start VM-3
Domain VM-3 started
[root@localhost ~]# virsh snapshot-create VM-3 创建快照
Domain snapshot 1714999488 created

[root@localhost ~]# virsh snapshot-info VM-3 --current 查看快照
Name: 1714999488
Domain: VM-3
Current: yes
State: running
Location: internal
Parent: 1714999215
Children: 0
Descendants: 0
Metadata: yes

[root@localhost ~]# virsh snapshot-info VM-3 --snapshotname 1714999488
Name: 1714999488
Domain: VM-3
Current: yes
State: running
Location: internal
Parent: 1714999215
Children: 0
Descendants: 0
Metadata: ye

$ rm -rf /* 模拟删库跑路

[root@localhost ~]# virsh snapshot-list VM-3
Name Creation Time State


1714999215 2024-05-06 20:40:15 +0800 shutoff
1714999488 2024-05-06 20:44:48 +0800 running

[root@localhost ~]# virsh snapshot-revert VM-3 --snapshotname 1714999488 恢复快照

[root@localhost ~]# virsh reboot VM-3 重启虚拟机
Domain VM-3 is being rebooted

[root@localhost ~]# virsh list --all
Id Name State


 VM-3                           running
 centos7.0                      shut off
 VM-1                           shut off
 VM-2                           shut off
文件系统正常

[root@localhost ~]# virsh snapshot-delete VM-3 --snapshotname 1714999488
Domain snapshot 1714999488 deleted

[root@localhost ~]# virsh snapshot-list VM-3
Name Creation Time State


1714999215 2024-05-06 20:40:15 +0800 shutoff

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容