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

快照导致迁移失败报错:修正磁盘与基础镜像的关系失败

2019-01-20提问
  • 0关注
  • 1收藏,2225浏览
粉丝:0人 关注:1人

问题描述:

VM 迁移至其他存储池得时候,CAS报错: 修正磁盘与基础镜像的关系失败。

检查qemu日志报错:/var/log/libvirt/qemu/

qcow2: Preventing invalid write on metadata (overlaps with snapshot table); image marked as corrupt.  

QCOW2:防止对元数据的无效写入(与快照表重叠)  

这是什么意思?

最佳答案

粉丝:4人 关注:1人

虚拟机在线跨存储池迁移的基本流程如下:

a. 创建临时的磁盘快照,此时虚机的磁盘文件会临时增加一级(3级变4级,或者1级变2级)。以原虚机磁盘是3级为例,执行完这一步之后,虚机的磁盘关系如下,top_tmp(临时磁盘快照文件,在线跨存储池迁移时虚拟机磁盘文件会临时使用)->top(磁盘文件,第3级镜像文件)->base1(第2级镜像文件)->base0(第1级基本镜像文件)。

b. 将上一步中的下面3级磁盘文件(top, base1, base0)拷贝的目的存储池。c. 在线将top_tmp rebase 到目的存储池的top

d. 在线将top_tmp的内容commit到目的存储池的top中。

e. 修正虚拟机的磁盘关系,使用目的存储池上的top

f. 清理不需要的磁盘文件top_tmp,完成虚拟机在线跨存储池迁移。

然而,跨存储池在线迁移虚拟机时,如果虚拟机状态突然从运行状态变为关闭状态,那么在执行步骤cde时会由于虚拟机状态变化而无法继续进行,从而造成迁移失败。

那么,我们来看一个实际例子,迁移前虚机的磁盘关系如下:

3级镜像文件topwin2008R2x64,第2级镜像文件base1win2008R2x64_base_1,第1级镜像文件base0win2008R2x64_base_0

通过qemu-img info命令可以查看到磁盘关系如下:

root@HZ-CAS02-CVK11:/vms/images# qemu-img info win2008R2x64

image: win2008R2x64

file format: qcow2

virtual size: 40G (42949672960 bytes)

disk size: 480M

cluster_size: 2097152

backing file: /vms/images/win2008R2x64_base_1

Format specific information:

    compat: 1.1

    lazy refcounts: false

root@HZ-CAS02-CVK11:/vms/images# qemu-img info win2008R2x64_base_1

image: win2008R2x64_base_1

file format: qcow2

virtual size: 40G (42949672960 bytes)

disk size: 6.0M

cluster_size: 2097152

backing file: /vms/images/win2008R2x64_base_0

Format specific information:

    compat: 1.1

    lazy refcounts: false

root@HZ-CAS02-CVK11:/vms/images# qemu-img info win2008R2x64_base_0

image: win2008R2x64_base_0

file format: qcow2

virtual size: 40G (42949672960 bytes)

disk size: 7.1G

cluster_size: 2097152

Format specific information:

    compat: 0.10

跨存储池在线迁移虚拟机时,当执行完上述迁移步骤a后,出现磁盘快照文件top_tmpwin2008R2x64.1459322440759,其基础镜像文件backing file为原虚拟机第3级磁盘镜像文件,即top文件:win2008R2x64

root@HZ-CAS02-CVK11:/vms/images# qemu-img info win2008R2x64.1459322440759

image: win2008R2x64.1459322440759

file format: qcow2

virtual size: 40G (42949672960 bytes)

disk size: 60M

cluster_size: 2097152

backing file: /vms/images/win2008R2x64

backing file format: qcow2

Format specific information:

    compat: 1.1

    lazy refcounts: false

若迁移过程中虚拟机状态由运行状态变为关闭状态(虚拟机内部操作系统进行了关闭系统操作),后续迁移步骤cde无法进行,并列为相关迁移失败原因,如下截图:

此时,前台查看虚拟机配置,其磁盘文件会使用步骤a创建的磁盘快照文件,即win2008R2x64.1459322440759

 

 

 

解决办法

参考上文的虚机迁移步骤,可以看出,当出现问题后,虚拟机的镜像变成了4级,其中变化的内容全部会写到临时的top_tmp中。所以,恢复的主要工作就是将这部分内容合并到top(原虚拟机磁盘镜像文件)中,同时修改虚拟机的配置文件(虚拟机名称.xml)调用正确的磁盘镜像文件。

具体步骤如下(以上述虚拟机win2008R2x64为例):

1 正常关闭虚拟机操作系统。

2 备份相关文件。

cp top top.bak

示例:cp win2008R2x64 win2008R2x64.bak

cp top_tmp top_tmp.bak

示例:cp win2008R2x64.1459322440759 win2008R2x64.1459322440759.bak

3 执行数据提交操作,将top_tmp中的数据提交至其baking file文件top中。

qemu-img commit top_tmp

示例:qemu-img commit win2008R2x64.1459322440759

4 cas界面上,删除对应的虚机存储设备磁盘top_tmp(即本案例中的win2008R2x64.1459322440759),再使用top文件(即本案例中的win2008R2x64)来创建新的存储设备(注意磁盘类型需要与之前保持一致)。

5 启动虚机。

6  验证无误后,删除之前备份的磁盘文件(top.baktop_tmp.bak,即本案例中的win2008R2x64.bakwin2008R2x64.1459322440759.bak)。


暂无评论

1 个回答
zhiliao_qsbfi 知了小白
粉丝:0人 关注:1人

你好,在线跨存储池迁移的时候,都会创建top_tmp临时磁盘快照文件 吗? 跨主机迁移非存储池也会创建top_tmp临时磁盘快照文件 ?  迁移创建op_tmp临时磁盘快照文件 是必要条件吗

暂无评论

编辑答案

你正在编辑答案

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

分享扩散:

提出建议

    +

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

确定

亲~检测到您登陆的账号未在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. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔社区有害的内容

×

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

不规范转载

×

举报说明