【Raid数据恢复概述】
北京某企业一台EMC FC AX-4存储由于存储上的RAID5阵列故障导致存储瘫痪,急需进行raid数据恢复。这台存储中搭建了一组12块硬盘的raid5磁盘阵列,阵列中包括有2块热备盘。由于raid阵列中出现两块硬盘离线,但热备盘中有一块未成功激活,raid真累瘫痪,上层LUN无法正常使用,存储崩溃,数据丢失,客户要求上门对raid阵列进行数据恢复。
【Raid5硬盘检测过程】
由于硬盘离线原因未知,首先由硬盘工程师对raid阵列中的所有硬盘进行物理检测(包括掉线盘和正常磁盘)但所有磁盘均无物理故障,掉线盘也是正常的,随后工程师使用数据恢复工具对所有磁盘进行坏道检测,依然是正常的。
【raid阵列数据备份】
由于硬盘正常,工程师按照数据恢复流程开始对所有磁盘进行镜像备份,在本案例中由于源磁盘的扇区大小为520字节,因此还需要使用特殊工具将所有备份的数据再做520 to 512字节的转换(此为特殊情况,不做过多叙述)。
【分析RAID组结构】
镜像完成后将在镜像文件中对底层raid信息进行分析,得出raid结构后重组原raid组。工程师依次对磁盘进行分析发现该磁盘阵列中9号盘和10号盘为热备盘(这两块磁盘中没有数据),但从管理界面中查看到10盘在原raid出现硬盘离线后替换了掉线的3号硬盘,但由于raid5阵列的性质导致虽然10号盘虽然成功激活但阵列中仍然有一块硬盘缺失,所以数据没有同步。继续分析其他10块硬盘,分析数据在硬盘中分布的规律,RAID条带的大小,以及每块磁盘的顺序。
【分析RAID组lun信息】
尝试通过一款我们自用的RAID虚拟程序把客户的原raid组虚拟组件起来,然后分析LUN在RAID组中的分配信息,以及LUN分配的数据块MAP。由于底层只有一个LUN,因此只需要分析一份LUN信息就OK了。然后解释LUN的数据MAP并导出LUN的所有数据。
【解释ZFS文件系统并修复】
同样使用一款自用的软件对LUN做文件系统解释,但是程序在对某些文件系统原文件进行解释时出现报错现象,工程师首先对程序进行了debug调试、随后分析zfs文件系统,最后得出报错的原因是元文件损坏导致解释zfs文件系统的程序报错。工程师手动对损坏的元文件进行修复操作,zfs文件系统就可以正常解析了,然后导出所有数据。
【数据恢复结果验证】
客户方工程师对所有数据进行验证,数据恢复成功。
原文地址:http://blog.51cto.com/sun510/2121132