存储数据恢复环境:
北京某医院的一台 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 文件系统做解析,解析所有文件节点及目录构造。由用户方工程师对数据进行验证,验证没有发现问题,数据残缺可用。