天天看点

VMware虚拟机vmfs卷损坏怎么办?

  今天给大家分享的案例是中石化某省分公司的信息管理平台,几台vmware虚拟机——esx server共享一台ibm ds4100存储,大约有40~50组虚拟机,占用1.8tb空间,数据非常重要。

  正常工作中,vc里报告虚拟磁盘丢失,ssh到esx中执行fdisk -l查看磁盘,发现storage已经没有分区表了。重启所有设备后,esx server均无法连接到ds4100所在的storage。

  仔细询问当时的管理员,他们提到一点,曾经在这个存储网络里连接过一台windows 2003服务器,具体情况不详。于是很自然地想到了,可能是那台windows 2003因对storage的独享操作导致了整个vmfs卷损坏。

  以整个存储做分析发现分区表清0,有55aa有效结束标志,有硬盘id标志。简单从前向后查看,发现一个ntfs卷,但似乎并未写数据进去,像一个刚刚格式化的卷,对这个ntfs卷的bitmap做分析,得知大小约为1.8t(全部空间),前部占用部分空间,3g左右位置占用部分空间,0.9t附近占用部分空间,但总占用空间不超过100m。针对vmfs卷进行分析,发现在原1.8tb的磁盘里有2组vmfs分区,第2组是对第一组的extend,第一组约1.5t,第二组约300gb,因ntfs分区并未写数据到第二个vmfs分区里(最后一个扇区的dbr备份没有覆盖有用数据),所以重点在于第一个vmfs分区。分析第一组vmfs,卷头结构丢失,一级索引、二级索引均存在,ntfs覆盖的数据区正好是某组虚拟机的临时内存镜像,损坏也无妨。

  通过以上分析,我们就可以进行数据的恢复了,

第一步:对整个storage进行镜像备份。

第二步:分析后,连接两个vmfs分区,直接按照vmfs分析组织方式提取所有vmdk及配置文件。

第三步:通过nfs直接迁移回esx server。

  另:本例中因已对故障存储做了安全备份,修复中同时直接重建第一组vmfs卷头,索引列表、分区表等信息,直接附加在esx server环境,算是第二个方案。

  经过两天的努力,数据成功恢复,在此感谢工程师们为此付出的努力。

[其他]

1、本例中依然是因为光纤环境互斥不当导致的问题,实际上,应该是这个卷在windows系统做了重新分区,并格式化成了ntfs,之后又对分区做了删除操作。因esx vmfs的互斥不依赖于硬件,只依赖于操作系统驱动层,所以在其他服务器接入存储网络时一定要小心,尽量考虑好存储分配权限。

2、esx因便捷的信息集中管理,真正使用中往往数据特别重要,一定要做好备份工作,并考虑损坏时迁移的方便性。

继续阅读