virsh 快照创建与查看
libvirt 的快照分两类:带内存状态的系统检查点,和只保存磁盘状态的磁盘快照。创建用 snapshot-create-as 给出名称与描述,查看用 snapshot-list 与 snapshot-info。内部快照依赖磁盘格式,qcow2 支持而 raw 不支持,所以对 raw 盘做快照会直接报错,需要先转换格式或改用外部快照方案。
基本信息
| 创建 | virsh snapshot-create-as vm1 snap1 "描述文字" |
|---|---|
| 仅磁盘 | 加 --disk-only 不保存内存状态,速度快但恢复后相当于异常断电 |
| 列表 | virsh snapshot-list vm1,--tree 以树形展示快照链 |
| 详情 | virsh snapshot-info vm1 snap1 查看父子关系与状态 |
| 格式依赖 | 内部快照要求 qcow2 等支持写时复制的格式,raw 不支持 |
典型使用场景
- 变更前保护:升级内核、改配置、调软件版本前打一个恢复点
- 变更失败回退:留着快照作为快速回退手段,比重新部署快
- 测试环境快照:测试前打点,测完回滚到干净状态
- 多级回退链:连续变更前逐个打点,形成可追溯的回退阶梯
- 验证配置差异:对比快照时刻与当前状态的差异定位问题
创建与查看快照
创建与查看快照
virsh snapshot-create-as vm1 snap-before-upgrade "内核升级前"
virsh snapshot-list vm1 # 列出快照
virsh snapshot-info vm1 snap-before-upgrade # 查看详情
virsh snapshot-list vm1 --tree # 树形展示快照链
# 回滚到某个快照:先关机再执行
virsh snapshot-revert vm1 snap-before-upgrade快照类型对比
| 类型 | 保存内容 | 适用与代价 |
|---|---|---|
| 带内存的快照 | 磁盘状态 + 运行内存 | 恢复即回到当时的运行状态,体积大 |
| 仅磁盘快照 | 只保存磁盘状态 | 速度较快,恢复后相当于一次重启 |
| 内部快照 | 写进原镜像文件内部 | 依赖 qcow2,链长后影响读写 |
| 外部快照 | 生成独立文件形成链 | raw 也能用,但文件管理更复杂 |
快照不是备份:快照文件与源盘在同一存储上,存储损坏时两者一起丢,重要数据仍需独立备份。
对运行中的数据库虚机打磁盘快照,应用缓存尚未落盘,回滚后数据可能不一致;关键业务要先停写或使用应用侧一致性手段。