存储数据恢复环境:
北京某医院的一台EMC某型号存储raid5解体;
存储中12块硬盘组成raid5(2块热备盘);
下层一个lun调配给sun小机,下层文件系统是ZFS。
存储故障:
故障存储中有2块硬盘呈现故障,但只有1块热备盘激活胜利,raid5阵列瘫痪,下层lun无奈应用。
存储数据恢复过程:
1、数据恢复工程师检测故障存储中所有磁盘没有发现物理故障和坏道。
2、应用工具将故障存储中的全副磁盘镜像备份。源磁盘的扇区大小是520字节,须要把所有备份数据做520字节 to 512字节的转换。
3、因为所有硬盘不存在物理故障和坏道,能够初步判断故障是由局部磁盘读写不稳固造成的。因为EMC控制器有着十分严格的查看磁盘策略,如果磁盘呈现性能不稳固的状况就会被EMC控制器判断为坏盘并踢出raid阵列。当raid中掉盘数量超过该raid所容许最大掉盘数量,raid瘫痪,导致raid的下层lun不可用。
4、EMC存储的LUN都是基于RAID的,因而须要先剖析底层RAID的信息,而后依据剖析获取到的信息重构原始RAID。对所有硬盘数据剖析,发现8号盘和11号盘齐全没有数据,8号盘和11号盘都是Hot Spare,但8号盘的Hot Spare替换了5号坏盘。因而判断8号盘(Hot Spare)尽管胜利激活,但RAID阵列中还缺失一块硬盘,所以数据没有同步到8号硬盘中。持续剖析其余10块硬盘的数据分布法则、RAID条带的大小和每块磁盘的程序。
5、基于剖析获取到的RAID信息,通过北亚自主开发的RAID虚构程序将原始RAID虚构进去。但因为故障RAID总共掉线两块盘,因而须要判断这两块硬盘的掉线程序。仔细分析所有硬盘中的数据发现有一块硬盘在同一个条带上的数据和其余硬盘显著不统一,因而能够初步判断此盘是最先掉线的,通过北亚自主开发的RAID校验程序检测这个条带发现除掉方才剖析的那块硬盘得出的数据是最好的,因而能够确定最先掉线的硬盘。
6、因为EMC存储的LUN是基于RAID的,RAID重组进去后,数据恢复工程师开始剖析LUN在RAID中的调配信息以及LUN调配的数据块MAP。下层只有一个LUN,只须要剖析一份LUN信息,而后依据剖析进去的信息应用raid恢复程序解释LUN的数据MAP并导出LUN的所有数据。
7、利用北亚自主开发的ZFS文件系统解释程序对生成的LUN做文件系统解释,然而在解释某些文件系统元文件的时候有报错。于是开发工程师对该ZFS文件系统解释程序做debug调试并分析程序报错起因。文件系统工程师剖析ZFS文件系统是否因为版本起因导致程序不反对。通过数小时的剖析与调试,后果发现存储忽然解体导致ZFS文件系统中某些元文件损坏,从而导致解释报错。
8、通过剖析确认存储瘫痪导致局部文件系统元文件损坏,只有修复好这些损坏的文件系统元文件能力失常解析ZFS文件系统。通过剖析损坏的元文件发现,存储瘫痪的同时ZFS文件系统正在进行IO操作,所以导致局部文件系统元文件没有更新或者损坏。数据恢复工程师对这些损坏的元文件进行手工修复,保障ZFS文件系统可能失常解析。
9、修复好的ZFS文件系统做解析,解析所有文件节点及目录构造。由用户方工程师对数据进行验证,验证没有发现问题,数据残缺可用。