首页/云/云平台与虚拟化速查/virsh 快照回滚与删除
虚拟化操作94 条

virsh 快照回滚与删除

snapshot-revert 把域恢复到大快照点状态(丢弃其后的写入),snapshot-delete 删除快照并触发合并;外部快照的删除还要配合 blockcommit 把增量合并回基础盘。

云平台与虚拟化速查云更新于 2026-10-13

快照回滚与删除

virsh snapshot-revert 把虚机状态回滚到某个快照,快照之后的写入会被丢弃;snapshot-delete 删除快照,其中 --metadata 只删元数据而把数据留在增量盘上,之后需要自行做 blockcommit 合并。外部快照(磁盘与状态分开存放)的删除与合并更依赖手工步骤,需要在维护窗口内按顺序执行,避免中间态无人接管。

基本信息

回滚virsh snapshot-revert vm1 snap1
删除virsh snapshot-delete vm1 snap1
仅删元数据virsh snapshot-delete vm1 snap1 --metadata(数据保留在增量盘)
合并外部快照删除后配合 virsh blockcommit 合并增量
查看virsh snapshot-list vm1(含创建时间与状态字段)

典型使用场景

  • 升级或变更前打快照,出问题快速回到变更前状态
  • 演练环境反复回滚到初始状态
  • 清理不再需要的快照链,回收存储空间
  • 排查快照链过长导致的性能下降问题时先梳理现有快照
  • 在做备份前建立一致性快照

回滚与删除

回滚与删除
virsh snapshot-list vm1                       # 列出快照与创建时间
virsh snapshot-revert vm1 snap-before-upgrade # 回滚,之后的写入会丢弃
virsh snapshot-delete vm1 snap-before-upgrade  # 删除快照
virsh snapshot-delete vm1 snap2 --metadata     # 只删元数据,数据仍在增量盘
virsh blockcommit vm1 vda --active --pivot     # 合并增量到基础盘
virsh domblklist vm1                           # 合并后核对磁盘状态

操作与注意

操作命令要点注意
创建snapshot-create-as 指定名称与描述命名带时间与用途,便于事后辨认
查看snapshot-list 看类型与时间外部快照与内部快照的删除流程不同
回滚snapshot-revert 指定快照名回滚丢弃之后写入,必须先备份现状
删除snapshot-delete 删除整条快照运行状态下删除要先确认磁盘链完整
仅删元数据加 --metadata数据留在增量盘,需手工 blockcommit
合并blockcommit 把增量并入基础盘合并期间不要同时做其他磁盘操作
回滚前对现状再打一个快照:这样即使回滚后发现问题,还有一条退路,代价只是少量存储空间。
回滚是否需要关机取决于快照类型:磁盘快照通常要求虚机处于关机状态,带内存状态的快照可在运行态回滚;执行前先确认快照类型与所支持的操作组合。

易错点

  • 回滚会丢弃快照之后的所有写入,先确认业务数据要求
  • 对运行中的域直接操作外部快照链,未按流程管理增量文件
  • 只用 --metadata 删除快照后忘记合并,增量盘长期挂着一层数据
  • 快照链越积越长,磁盘性能下降且删除时操作复杂

数据来源与参考

  • libvirt 文档:virsh snapshot-revert / snapshot-delete
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌