CAS 做在线克隆(虚拟机开机状态克隆),底层机制:对源虚拟机打临时内部快照,基于快照磁盘做复制,克隆完成自动清理这个临时快照。
- 如果克隆任务中途异常(网页关闭、cvm 服务重启、存储 IO 卡顿、存储池空间不足),临时快照没有正常清理释放;
- 源虚拟机磁盘链被快照锁住,磁盘处于被引用状态;CVM 后台对该 VM 的 vnc 控制台、修改配置、重启等管理操作被阻塞;但是虚拟机的业务 IO 还可以继续跑(业务不一定断,只是管理控制台失效);
- 常见触发条件:
- 源虚拟机开机状态执行克隆(在线克隆);
- 存储池剩余空间不足,克隆复制磁盘中途报错中断;
- 克隆过程 CVM tomcat 服务重启、页面刷新关闭任务;
- 源虚拟机本身已经存在旧快照,再做在线克隆,快照链异常。
⚠️关键点:关机克隆不会产生临时快照,一般不会出现该故障,生产优先关机克隆。
排查步骤(按顺序操作)
步骤 1:查看任务与告警
- CVM WEB:【任务与事件】,看克隆任务状态,是失败 / 取消 / 运行中。
- 查看源虚拟机快照列表:云资源‑虚拟机‑快照,是否残留克隆自动生成的临时快照(名字一般随机 UUID)。
- 如果页面可以看到这个临时快照,直接删除该快照;删除完成等待快照合并完成,刷新页面,控制台一般恢复。
步骤 2:WEB 无法删除快照(按钮灰色,点不动),SSH 登录 CVM 主节点后台处理
先确认:源虚拟机业务是否重要,业务不能中断优先选方案 A;业务允许关机用方案 B。
方案 A:业务不能停机(在线处理,有小概率 IO 抖动)
- SSH 登录CVM 主管理节点,执行查看虚拟机快照链
#查看虚拟机UUID(WEB虚拟机详情页面复制UUID)
virsh snapshot‑list‑xml 虚拟机UUID
- 看到残留的克隆临时快照,执行删除快照并合并磁盘
virsh snapshot‑delete --merge 虚拟机UUID 快照名称
- 等待磁盘合并任务完成(存储性能不同耗时不等);合并完成刷新 CVM 网页,测试打开控制台。
⚠️在线 merge 合并快照,源虚机有 IO 抖动风险,业务高负载尽量避开高峰。
方案 B(稳妥,推荐,业务允许停机)
- WEB 关闭源虚拟机电源;
- 删除残留的临时快照,自动执行磁盘合并;
- 合并进度在【任务与事件】观察;
- 合并 100% 完成后,再开机虚拟机,控制台恢复正常。
步骤 3:没有看到快照,但控制台依旧打不开(快照元数据残留锁)
- 确认克隆任务进程是否僵死,CVM 后台检查任务进程
ps -ef | grep clone
发现残留 clone 进程,kill 掉僵死进程。
2. 重启 CVM 的 tomcat 管理服务(不影响 CVK 主机上正在运行的虚拟机业务,只重启 WEB 管理服务)H3C
systemctl restart tomcat8
tomcat 重启大概 1‑3 分钟,刷新浏览器重新登录 CVM 页面,测试虚拟机控制台。
步骤 4:存储层面排查
- 确认虚拟机所在存储池剩余空间,存储池满会直接导致克隆中断并且快照清理失败;
df -h
存储池空间不足要清理释放空间,再处理快照链。
风险现象区分
- ✅ 源虚机业务 ping / 业务访问正常,仅 CVM 网页控制台打不开:基本就是临时快照残留锁问题,上面快照合并处理即可;
- ❌ 如果源虚拟机业务也断、磁盘 IO 报错:磁盘链已经损坏,需要立刻联系 400,不要反复开关机操作。
规避最佳实践(以后防止复现)
- 生产环境优先关机克隆虚拟机,关机克隆不会打临时快照,不会锁住源虚拟机磁盘;
- 如果必须在线开机克隆:
- 克隆前检查存储池可用空间,至少大于被克隆虚拟机磁盘总大小;
- 克隆过程不要关闭网页、不要刷新页面、不要重启 CVM 服务;
- 源虚拟机上不要保留大量旧快照,旧快照先全部删除合并完,再执行克隆;
- 克隆任务执行完成,确认克隆出来的新虚拟机完整可用之后,再操作源虚拟机。
收集信息给 400 开 case(处理还不能恢复的场景)
- 源虚拟机 UUID;
virsh snapshot‑list‑xml 虚拟机UUID输出;- CVM 任务事件里克隆任务的完整报错;
- 存储池使用率;
- CAS 版本号。
暂无评论