整个存储空室由12块1TBSATA的硬盘组成,其中10块硬盘组成RAID5阵列,另外两块硬盘作为热备盘。由于RAID5阵列中两个硬盘损坏,此时只有一个热备盘成功激活,RAID5阵列瘫痪,上层LUN无法正常使用。状态图如下:
【检测磁盘】整个存储不可用,因为一些磁盘已断开连接。因此,在收到磁盘后,会对所有磁盘进行物理测试,测试后未发现任何物理故障。然后用坏轨检测工具检测磁盘的坏轨,发现没有坏轨。
【备份数据】考虑到数据的安全性和可还原性,在数据恢复之前,所有的源数据都要进行备份,以防止数据因为其他原因再次被恢复。使用Winhex将所有磁盘镜像到文件中。因为源盘的扇区大小是520字节,所以需要使用专门的工具将所有备份的数据转换成520到512字节。备份数据如下:
【故障分析】 1、分析故障原因因为前两步没有检测到磁盘的物理故障或坏磁道,所以推断故障可能是由于部分磁盘读写不稳定造成的。由于EMC存储控制器有严格的磁盘检查策略,一旦某些磁盘性能不稳定,EMC存储控制器就会将其视为坏磁盘,并将其踢出RAID组。一旦RAID组中删除的磁盘达到RAID级别的限制,RAID组将变得不可用,基于RAID组的上层LUN也将变得不可用。目前初步了解是基于RAID组的LUN只有一个,分配给SUN电脑,上层文件系统是ZFS。
2、分析RAID组结构EMC存储的LUN都是基于RAID组的,所以需要先分析底层RAID组的信息,然后根据分析出的信息重建原始RAID组。通过分析每个数据磁盘,发现磁盘8和磁盘11中没有数据。从管理界面可以看出,磁盘8和磁盘11属于热备,但是磁盘8的热备替换了磁盘5的坏盘。因此可以判断,虽然8号盘热备成功激活,但由于RAID级别为RAID5,数据没有同步到8号硬盘,此时RAID组中缺少一块硬盘。继续分析另外10个硬盘,分析硬盘中的数据分布规律,RAID条带的大小,每个磁盘的顺序。
3、分析RAID组掉线盘根据上面分析的RAID信息,尝试通过北亚自主研发的RAID虚拟程序,将原有的RAID组虚拟化。但是,由于整个RAID组中有两个磁盘被丢弃,所以需要分析这两个硬盘的丢弃顺序。仔细分析每个硬盘中的数据后发现,同一个条带中的一个硬盘的数据与其他硬盘明显不同。所以初步判断这个硬盘可能是最先掉线的。通过北亚自主研发的RAID验证程序,对这个条带进行验证,发现去掉刚分析的硬盘得到的数据是最好的,所以可以识别出最先掉线的硬盘。
4、分析RAID组中的LUN信息由于LUN基于RAID组,因此有必要根据上面分析的信息重组RAID组。然后分析LUN在RAID组中的分配信息以及LUN分配的数据块映射。由于底层只有一个LUN,因此只需要分析一个LUN信息。然后根据这些信息编写相应的程序来解释LUN的数据映射,导出LUN的所有数据。
【解释ZFS文件系统并修复】 1、解释ZFS文件系统使用北亚自主开发的ZFS文件系统解释器解释生成的LUN,发现解释器在解释一些文件系统元文件时报错。迅速安排开发工程师调试程序,分析程序错误的原因。然后安排文件系统工程师分析ZFS文件系统是否因为版本原因不被程序支持。经过7个小时的分析调试,发现ZFS文件系统部分元文件因突然存储瘫痪而损坏,导致程序无法解读ZFS文件系统。
2、修复ZFS文件系统上述分析表明,ZFS文件系统的存储瘫痪导致部分文件系统元文件损坏,因此需要修复这些损坏的文件系统元文件才能正常解析ZFS文件系统。对受损元文件的分析表明,由于ZFS文件的存储与IO *** 作同时瘫痪,部分文件系统元文件没有更新而受损。手动修复这些损坏的元文件,以确保ZFS文件系统的正常解析。
【恢复所有数据】使用该程序分析修复后的ZFS文件系统,并分析所有文件节点和目录结构。部分文件目录截图如下:
因为数据都是文本类型和DCM图片,所以不需要搭建太多的环境。部分数据经过用户工程师验证,验证结果全部正确完整。一些文件核实如下:
【移交数据】用户应提供三块2T的SATA硬盘,并将所有恢复的数据复制到这些硬盘上,数据恢复总容量为5T。
【数据恢复结论】因为故障后存储站点环境好,不需要做危险的 *** 作,对后期的数据恢复很有帮助。整个数据恢复过程虽然有很多技术瓶颈,但都一一解决了。最后,整个数据恢复项目在预期时间内完成,恢复数据的用户相当满意。
北亚高级工程师:邓琦
联系方式:18515283878
电子邮件地址:dq@frombyte.com
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)