最近在捣鼓服务器、ESxi、磁盘阵列等,背景是对一台装有ESXI的服务器进行了升级,同时添加了磁盘阵列,完成以后要将原来esxi上的虚拟机迁移到做完磁盘整列的存储盘上,但是在迁移的过程中出现了一些问题,导致在启动虚拟机的时候出现了问题。
The parent virtual disk has been modified since the child was created. The content ID the parent virtual disk does not match the corresponding parent content ID in the child
产看具体的虚拟机配置,发现虚拟机挂载的是【CentOS-7-000001.vmdk】,而在存储器中,有三个vmdk文件,如下图
为啥会出现一个000001和000002,我先修改了下配置,然虚拟机挂载了 没数字后缀的 CentOS-7.vmdk,发现竟然可以启动,我以为问题解决了,结果进入系统发现最新的一些数据都没了,我又想到虚拟机默认就挂载了000001,所以我还是更改了回去。
没办法,本人第一次弄这个玩意,没啥经验,于是请教度娘,网上还是有一些资料的,尤其是一片老外的东东,问题应该和我是一样的,再结合问题本身说类似 父/子ID不匹配,于是按照网上的经验,需要编辑vmdk的某个ID。(网上也有类似教程,可能比较简单,我就重新整理下。)
使用SSH连接到 esxi,进入控制台, 输入 cd ./vmfs 并一步步查看路径,找到我当前问题系统所在的存储位置。
进入目录以后,对几个虚拟磁盘进行编辑
注意这个里的几个ID CID 应该是当前该虚拟磁盘的id值, parentCID应该表示 该磁盘的继承的父磁盘的ID,由于这个可能是最原始的磁盘,因此这里的 parentCID 为 fffffff ,下面在来看 000001和00002的。
上图 是000001在编辑状态下的配置数据,也请注意几个ID,同时多了一个 parentFileNameHint 。
上图 是000002在编辑状态下的配置数据,这里同样和000001一样 ,对有的几个ID。
从上面几张图可以看住,几个ID和 父文件对应以后,发现 000001是继承了000002, 000002继承了最开始的 CentOS-7.vmdk,当然,这里的截图中,是我已经修正过的,在原来出问题的时候, 000001的parentCID 和其他的vmdk是不匹配的,导致了最开始的那个错误提示,于是我将这个ID进行了修改(vi状态下 按i,然后进行编辑完按esc,输入 :wq 即保存退出,此为linux命令),最后正常开机,问题解决。
其他参考: 1. http://blog.sina.com.cn/s/blog_7120c0be01011aib.html