virsh域快照和备份
虚拟机快照(snapshot)
作用:将虚拟机某个时间点的状态(包括内存、磁盘文件等的状态)进行保存,以便在后续时间恢复虚拟机创建快照时的状态
快照类型
磁盘快照:只对虚拟机的磁盘内容进行快照
内存快照:只对虚拟机的内存数据进行快照
完整快照:对虚拟机的磁盘内容与内存数据都进行快照
快照的保存位置分类
内部快照:虚拟机的状态数据保存在虚拟机的虚拟磁盘文件内部(只针对qcow2磁盘文件格式)
外部快照::虚拟机的状态数据保存在外部文件中(而非虚拟磁盘文件,支持各种磁盘文件格式)
快照的实现
快照链:按照时间先后顺序做多次快照,根据快照之间的依赖关系就形成了快照链
注意:在时间顺序上,后一个快照是以前一个快照为基础创建的,仅仅记录虚拟机状态改变的部分
virsh虚拟机快照管理
内部快照的创建
snapshot-create-as 虚拟机名或ID
--name:快照名
--atomic #原子操作,确保快照要么完全制作成功,要么完全制作失败
内部快照的恢复
snapshot-revert 虚拟机名或ID 快照名
内部快照的合并与删除
snapshot-delete 虚拟机名或ID 快照名
注意:删除某个快照,快照的数据将合并至其下级快照中
外部快照的管理
前提:宿主机需安装增强版qemu-kvm:qemu-kvm-ev
外部磁盘快照
snapshot-create-as 域名 快照名 \
--diskspec 做快照的磁盘在虚拟机中的设备名,file=新磁盘文件的路径 \
--disk-only --atomic
说明:--disk-only #只进行磁盘快照
查看qcow2文件链
qemu-img info 虚拟磁盘文件 \
--backing-chain
外部快照的合并
blockcommit 虚拟机名 做快照的磁盘在虚拟机中的设备名 --pivot --verbose
说明:将下游的qcow2文件合并至上游的qcow2文件
--pivot #命令会等待快照合并的完成
--verbose #显示快照合并的进度
blockcommit --base 磁盘文件路径 --top 磁盘文件路径
将文件链上,从top磁盘文件到base磁盘文件之间(包括top磁盘文件)的磁盘文件内容,都合并至base磁盘文件中
外部快照的删除
注意:virsh并不支持外部快照的删除,需手动删除
删除过程:
将待删除快照的磁盘文件内容,合并至上游磁盘文件中
删除关于该外部快照在libvirt中的信息
删除快照对应的外部磁盘文件
外部快照的恢复
目前,virsh不支持外部快照的恢复
虚拟机备份
虚拟机相关文件的备份:虚拟机虚拟磁盘文件和虚拟机配置文件
目的:避免因为虚拟机相关文件损坏、丢失,导致虚拟机无法运行
备份方式
1)冷备份,又称为离线备份
关闭虚拟机的情况下进行备份
优点:简单,低维护,高安全性
缺点:备份时,虚拟机提供的业务将不可用
2)热备份,也称为在线备份
在虚拟机处于运行状态下,进行备份
借助虚拟机磁盘文件的外部快照创建,实现虚拟机磁盘文件的备份
以虚拟机要备份的虚拟磁盘文件为后端文件,产生一个新的临时虚拟磁盘文件
虚拟机新产生的数据,将保存在该临时虚拟磁盘文件中
注意:冷备份不能在虚拟机运行时,直接对相关文件进行复制,会产生数据不一致问题。而热备份不会。
热备份的基本步骤
1.针对要备份的磁盘文件,创建外部磁盘快照
2.备份磁盘文件
3.备份完毕,将外部磁盘快照对应的磁盘文件内容,合并至原磁盘文件
4.删除外部快照
备份虚拟磁盘文件
tar zcvf 压缩包保存路径 被打包压缩的虚拟磁盘文件路径
可以将VM1.qcow2复制到其它存储位置,在复制时也可以打包压缩
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现