VMware vSphere常见问题汇总(十七)

170. Vmdk 的重做日志已损坏解题思路

[vmware-]环境:esxi5.0,vc5.0

故障问题:执行storage vmotion之后,虚拟机出现了报错。

报错信息:xssj-000003.vmdk is corrupted.power off the virtual machine. If the problem still persists, discard the redo log.

解提思路:

【故障原因】

由于快照之间的关系出现异常,导致vm启动失败:

Vmware-34.log:2013-01-14t08:36:53.885z| vmx| disklib-chain : "/vmfs/volumes/50f13506-075ed29b-86b5-5ef3fd359eab/???è???3???? 184/xssj-000005.vmdk" : failed to open (the parent virtual disk has been modified 34.log:2013-01-14t08:36:53.886z| vmx| disklib-lib : failed to open ‘/vmfs/volumes/50f13506-075ed29b-86b5-5ef3fd359eab/???è???3???? 184/xssj-000006.vmdk’ with flags 0xa the parent virtual disk has been modified since the child was created. The content id of the parent virtual disk does not match the corresponding parent content id in the child (18).

Vmware-34.log:2013-01-14t08:36:53.886z| vmx| disk: cannot open disk "/vmfs/volumes/50f13506-075ed29b-86b5-5ef3fd359eab/???è???3???? 184/xssj-000006.vmdk": the parent virtual disk has been modified since the child was created. The content id of the parent virtual disk does not match the corresponding parent content id in the child (18).

Vmware-34.log:2013-01-14t08:36:53.886z| vmx| msg_post: error

Vmware-34.log:2013-01-14t08:36:53.886z| vmx| [msg.disk.nobackend] cannot open the disk ‘/vmfs/volumes/50f13506-075ed29b-86b5-5ef3fd359eab/???è???3???? 184/xssj-000006.vmdk’ or one of the snapshot disks it depends on.

Vmware-34.log:2013-01-14t08:36:53.886z| vmx| [msg.disk.configurediskerror] reason: the parent virtual disk has been modified since the child was created. The content id of the parent virtual disk does not match the corresponding parent content id in the child.

Vmware-34.log:2013-01-14t08:36:53.900z| vmx| module diskearly power on failed.

【快照之间的联系】

正常情况下,原始磁盘与快照是通过parent content id来关联,父快照与子快照之间也是通过parent content id,但是现在我们查看原始磁盘与快照磁盘之间的关系,发现它们的cid和parentcid是混乱的,信息如下:

Xssj.vmdk:cid=ba60eb23

Xssj.vmdk:parentcid=ffffffff

Xssj-000001.vmdk:cid=27f8a456

Xssj-000001.vmdk:parentcid=ba60eb23

Xssj-000002.vmdk:cid=11ed1dac

Xssj-000002.vmdk:parentcid=27f8a456

Xssj-000003.vmdk:cid=2583a010

Xssj-000003.vmdk:parentcid=2583a010

Xssj-000004.vmdk:cid=2583a010

Xssj-000004.vmdk:parentcid=11ed1dac

Xssj-000005.vmdk:cid=4d38fabf

Xssj-000005.vmdk:parentcid=2583a010

Xssj-000006.vmdk:cid=9402bf1a

Xssj-000006.vmdk:parentcid=a30d0e91

可以看到这个磁盘关系从xssj.vmdk磁盘到xssj-000002.vmdk之间的关系都是没有问题的。

问题出在xssj-000002.vmdk之后的快照磁盘关联是混乱的。

通过如下记录,我们可以知道这几个磁盘之间的正确关系:

Xssj-000001.vmdk:parentfilenamehint="xssj.vmdk"

Xssj-000002.vmdk:parentfilenamehint="xssj-000001.vmdk"

Xssj-000003.vmdk:parentfilenamehint="xssj-000004.vmdk"

Xssj-000004.vmdk:parentfilenamehint="xssj-000002.vmdk"

Xssj-000005.vmdk:parentfilenamehint="xssj-000003.vmdk"

Xssj-000006.vmdk:parentfilenamehint="xssj-000005.vmdk"

磁盘之间的数据关系应该是:

Xssj.vmdkà xssj-000001.vmdkà xssj-000002.vmdkà xssj-000004.vmdkà xssj-000003.vmdkà xssj-000005.vmdkà xssj-000006.vmdk

【解决方案】

第一部分、确认上述的这个数据关系是正确的:

1. 使用vsphere client连接vcenter server或esxi server

2. 关闭虚拟机

如果虚拟机状态是关闭,请进入esxi server命令行再次确认进程是否已经不存在。

A. 进入esxi server命令行,查看tech support mode for emergency support (1003677) or using tech support mode in esxi 4.1 and esxi 5.x (1017910).

B. 输入“esxtop”

C. 按下“c”,按下“f”,按下“c”选中“c: lwid = leader world id (world group id)”,按下回车

B. 在这个面板中会列出“lwid”,找到这台vm,并记录“lwid”的号码 (如果在这个面板中已经没有显示这台vm,则不需要执行步骤e,这说明vm进程已经结束)

E. 按下“k”,输入虚拟机的lwid号码

3.进入虚拟机目录,命令如下:

#cd vmfs/volumes/50f13506-075ed29b-86b5-5ef3fd359eab/<vm name>

注:由于该目录使用中文名称,所以显示是乱码,请复制这段乱码,然后加上双引号”<vm name>”就可以进入虚拟机目录

4. 输入如下命令:

# vi xssj.vmx

找到这一行信息“scsi0:1.filename = "xssj-000005.vmdk"”

按下“i”进入编辑模式,将这一行信息更改为“scsi0:1.filename = "xssj-000004.vmdk"”,按下“esc键”退出编辑模式,按下“:wq!”保存退出。

5. 在vsphere client上,找到虚拟机,右键点击“从清单中移除”。通过浏览虚拟机所在的数据存储,找到虚拟机的xssj.vmx文件,右键点击“添加到清单”,启动虚拟机

第二部分、更正各个快照磁盘之间的关系:

确认磁盘的关系以后,我们需要做的是修改快照磁盘中的cid和parentcid。方法如下:

注意:请执行以下操作之前,对vm所有文件进行备份。建议您可以拷贝这些虚拟机文件后,对复制出来的文件进行操作。

1. 进入esxi server命令行 ,通过ssh tools或dcui界面的方法登录。

2. 进入虚拟机目录,命令如下:

#cd vmfs/volumes/50f13506-075ed29b-86b5-5ef3fd359eab/<vm name>

注:由于该目录使用中文名称,所以显示是乱码,请复制这段乱码,然后加上双引号”<vm name>”就可以进入虚拟机目录

3. 修改快照磁盘之间的cid和parentcid.

A. # vi xssj-000003.vmdk

输出类似如下,按“i”进入编辑模式,按“esc键”退出编辑模式,按“:wq!”保存退出:

# disk descriptorfile

Version=3

Encoding="utf-8"

Cid=2583a010 à将这个参数修改成”1234b123”

B. #vi xssj-000005.vmdk

输出类似如下,按“i”进入编辑模式,按“esc键”退出编辑模式,按“:wq!”保存退出:

# disk descriptorfile

Version=2

Encoding="utf-8"

Cid=4d38fabf

Parentcid=2583a010 à将这个参数改成”1234b123”

C. #vi xssj-000006.vmdk

输出类似如下,按“i”进入编辑模式,按“esc键”退出编辑模式,按“:wq!”保存退出:

# disk descriptorfile

Version=3

Encoding="utf-8"

Cid=9402bf1a

Parentcid=a30d0e91 à 将这个参数改成“4d38fabf”

4. 以上步骤完成以后,修改xssj.vmx文件的磁盘指向:

A. #vi xssj.vmx

B. 找到scsi0:1.filename = "xssj-000005.vmdk"这一行,将“xssj-000005.vmdk”改成“xssj-000006.vmdk”

5. 将虚拟机从清单中移除。然后通过浏览数据存储,找到虚拟机的xssj.vmx文件,右键点击“添加到清单”,启动虚拟机。

171. 如何把中文的vCenter界面改成英文 请打开窗口,让我的灵魂与你的灵魂相拥。

VMware vSphere常见问题汇总(十七)

相关文章:

你感兴趣的文章:

标签云: