• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 是
  • 否
  • 全部
  • 是
  • 否
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索
问

CAS 虚拟机在删除快照的时候卡住,正常关机服务器后显示无快照了。但是无法开机

2026-11-07提问
  • 1关注
  • 0收藏,177浏览
粉丝:0人 关注:1人

问题描述:

CAS平台虚拟机做快照删除2个月了还是照片99%的进度,所以将虚拟机做关机处理。关机后过了一段时间从虚拟机上看快照都没有了,所以重启了虚拟机,但是发现无法启动。尝试克隆也不行。怎么办?

组网及组网描述:

4台主机,两台CVM(CVM01和CVM02),两台CVK(CVK01和CVK02)

6 个回答
已采纳
粉丝:48人 关注:2人

CAS 外部快照删除本质是block‑job 后台镜像合并任务;合并到 99% 阶段强制关机,合并任务被粗暴终止。Web 界面 CVM 数据库把快照记录清除,但底层 qcow2 镜像链是半合并断裂状态;XML 配置、底层 qcow2 backing‑file 父子依赖关系错乱。Web 看不到快照,但是磁盘增量镜像文件还在存储卷中,链断裂导致虚拟机启动失败,克隆同样失败H3C。

组网环境:2 台 CVM(主备)、2 台 CVK,共享存储。

⚠️高风险操作,操作前务必对所有 qcow2 磁盘文件做文件级别备份;优先联系 400 工程师现场指导,qemu‑img 修复有数据丢失风险。

现象特征总结

  1. 删除快照任务长期卡在 99%,后台 block‑job 合并还在运行;
  2. 没有等待合并完成直接关闭虚拟机;
  3. CVM 页面快照列表清空(CVM 数据库快照记录被清除);
  4. 实际存储卷上,部分增量 qcow2 快照文件仍然存在;镜像父子 backing‑file 链路断裂;
  5. 虚拟机开机失败;克隆虚拟机同样报错失败;
  6. Web 看不到快照,但底层存储目录下能看到多个 qcow2 增量文件。

排错步骤

步骤 1:确认虚拟机所在 CVK 主机,找到磁盘存储路径

  1. CVM 页面查看该虚拟机运行在哪个 CVK 节点,SSH 登录该 CVK。
  2. 查看虚拟机 xml 定义,确认磁盘路径:
virsh list --all | grep "虚拟机名称" virsh dumpxml 虚拟机名称 > /tmp/vm‑bak.xml cat /tmp/vm‑bak.xml

记录磁盘的完整 qcow2 路径。 3. 进入虚拟机存储目录,列出全部磁盘文件:

ls -lh 虚拟机磁盘存储路径/*.qcow2

此时你会看到多个 qcow2 文件,CVM 页面无快照,但底层增量文件残留。

步骤 2:检查镜像链是否断裂(关键)

#查看完整镜像父子链 qemu‑img info --backing‑chain 【最上层top镜像文件完整路径】

正常输出会完整打印 base→sn1→sn2→top; 如果出现 backing file: cannot open、找不到父镜像,确认镜像链断裂,就是本次故障根源H3C。

对比:libvirt xml 里面记录的磁盘链 和 qemu‑img 查询底层 qcow2 的 backing‑chain,两者不一致,就是 CVM 数据库与底层镜像不同步。

步骤 3:查看 libvirt 日志,确认 block‑job 异常终止

grep -i block‑job /var/log/libvirt/libvirtd.log | grep 虚拟机磁盘

可以看到之前删除快照时 block‑job 合并任务被强制中断的日志。

三种处理方案(按优先级)

⚠️禁止直接 Web 界面做任何快照、克隆、磁盘修改操作,会加重损坏。

方案一:有备份(首选)

使用 CAS 备份恢复快照删除之前的虚拟机备份,业务恢复最快,无数据风险。

方案二:镜像链还可以识别,qemu‑img convert 做全量扁平化导出(最稳妥的应急)

如果 backing‑chain 还可以完整识别,没有报 cannot open。通过 convert 把整条镜像链输出成一个独立完整 qcow2 单文件,脱离损坏快照链。

  1. 备份原有全部 qcow2 文件;
  2. 执行转换,把整条链合并输出新单盘:
qemu‑img convert -p -f qcow2 【top镜像】‑O qcow2 【新完整磁盘qcow2路径】
  1. 在 CVM 平台编辑虚拟机,删除旧磁盘,挂载新生成的扁平化 qcow2 磁盘;
  2. 尝试开机;开机成功后验证业务数据。

注意:转换时间取决于磁盘大小,共享存储下不要中途中断。

方案三:镜像链已经损坏,qemu‑img check 修复(有数据丢失风险,谨慎)

只有镜像报 qcow2 元数据损坏时才执行:

qemu‑img check top.qcow2 #检测报错后执行修复 qemu‑img check -r all top.qcow2

‑r all会自动修复元数据,但有可能丢失部分数据,必须先拷贝全部 qcow2 备份,不建议直接在原文件操作。

不推荐操作

  1. ❌不要 Web 页面再次尝试删除快照:页面看不到快照,操作无效,会加重数据库与底层镜像不一致。
  2. ❌不要直接删除底层 qcow2 快照文件:会直接彻底丢失增量数据。
  3. ❌不要直接修改 CVM 数据库表,官方不支持。

故障复盘:为什么会出现这个问题

  1. CAS 外部快照删除不是瞬间完成;大磁盘快照删除后台执行 block‑job 合并,99% 位置代表大量数据还在写入磁盘,严禁在合并未完成时关机 / 强制关闭虚拟机。
  2. 虚拟机关机后,CVM 数据库快照记录被清理,但底层 qcow2 合并进程被杀死,镜像链半残。Web 界面只读取数据库,看不到底层残留镜像文件。
  3. 镜像链一旦断裂,虚拟机启动、克隆都全部失败。

现场收集信息提交 H3C‑400

  1. virsh dumpxml 虚拟机名称;
  2. qemu‑img info --backing‑chain top.qcow2完整输出;
  3. /var/log/libvirt/libvirtd.log对应时间段日志;
  4. 存储目录下全部 qcow2 文件列表;
  5. CVM 平台任务日志(删除快照任务历史)。

补充:如果 convert、check 修复均无效,只能依靠备份恢复。


暂无评论

粉丝:0人 关注:1人

这情况大概率是快照删除时磁盘链出问题了,关机后快照信息丢了但底层镜像链没对上。你先上宿主机用 qemu-img info --backing-chain 看下磁盘链是否完整,缺链的话试试 qemu-img check -r all 修一下,修之前记得备份原盘。实在不行就 virsh dumpxml 导出配置,undefine 再 define 重新加载一遍。搞不定就打 400-810-0504 吧,别自己瞎折腾了。

暂无评论

KaydenChen 知了小白
粉丝:0人 关注:1人

qemu-img info --backing-chain看不到文件

暂无评论

KaydenChen 知了小白
粉丝:0人 关注:1人

我的虚拟机名称是tqV10kzt,现在在/vms/Storagelun里面可以看到3个文件,分别是tqV10kzt,tqV10kzt_inc_1,tqV10kzt_inc_260。

暂无评论

KaydenChen 知了小白
粉丝:0人 关注:1人

维保到期了,400让我来这个社区提问来解决问题。

暂无评论

粉丝:19人 关注:9人

故障原因:快照删除卡在99%通常意味着底层存储合并未完成,强制关机导致快照链元数据不一致,虚拟机磁盘文件仍被锁定或引用关系损坏。
排查步骤:
1. 在CVM上确认虚拟机状态和所在CVK:
登录CVM,执行 virsh list --all 查看虚拟机定义是否存在。
执行 virsh dominfo <虚拟机名> 查看状态。
2. 检查存储池中虚拟机磁盘文件:
进入虚拟机磁盘所在目录(通常为 /vms/images/<虚拟机UUID>/)。
执行 ls -lh 查看是否存在残留的快照文件(如 *.snap 或 *-delta 文件)。
执行 qemu-img info <磁盘文件> 查看磁盘链是否完整,是否有 backing file 指向不存在的文件。
3. 检查CVK上的存储任务:
在CVM上执行 cat /var/log/libvirt/qemu/<虚拟机名>.log 查看启动失败的具体报错。
常见报错为 Cannot find backing file 或 Permission denied。
4. 尝试手动启动虚拟机:
执行 virsh start <虚拟机名>,观察报错信息。
解决方案:
1. 如果磁盘链完整但虚拟机定义损坏:
在CVM上执行 virsh undefine <虚拟机名>(不删除磁盘文件)。
重新注册虚拟机:virsh define /etc/libvirt/qemu/<虚拟机名>.xml。
2. 如果存在残留快照文件:
先备份虚拟机磁盘文件。
使用 qemu-img commit -d <快照文件> 将快照合并到父磁盘,或使用 qemu-img rebase -b <父磁盘> <子磁盘> 修复链。
合并完成后重新定义虚拟机。
3. 如果磁盘链损坏严重无法修复:
使用 qemu-img convert -f qcow2 -O qcow2 <损坏磁盘> <新磁盘> 导出数据。
新建虚拟机,挂载转换后的磁盘文件启动。
4. 克隆失败的原因相同,需先修复源虚拟机磁盘链。
预防建议:
删除快照前确保存储空间充足,避免合并过程中断。
删除快照操作不要在业务高峰期执行。
定期检查存储池状态:ceph -s 或 df -h 查看空间使用率。

暂无评论

编辑答案

你正在编辑答案

如果你要对问题或其他回答进行点评或询问,请使用评论功能。

✖

分享扩散:

➤

提出建议

✖

    +
✖

亲~登录后才可以操作哦!

确定
✖

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub
✖

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作

✖

举报

×

侵犯我的权益 >
对根叔社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明