服务器数据恢复环境:
一台EMC某型号存储设备,该存储中有一组由12块(包括2块热备盘)STAT硬盘组建的raid5阵列。
服务器故障:
该存储在运行过程中突然崩溃,raid瘫痪。数据恢复工程师到达现场对故障存储设备进行初检,发现raid中有两块硬盘掉线但只有一块热备盘成功激活,所以导致阵列瘫痪,上层lun无法使用。
服务器数据恢复过程:
1、将故障存储中所有磁盘标记后取出。由硬件工程师检测后没有发现有磁盘存在物理故障,使用坏道检测工具检测也没有发现有磁盘存在坏道。将所有磁盘以只读方式进行扇区级全盘镜像,由于源磁盘的扇区大小是520字节,做完镜像后将520字节转换成512字节。
2、由于故障存储中所有硬盘经过检测没有发现存在物理故障和坏道,基本上可以推断硬盘掉线是磁盘读写性能不稳定造成的。EMC控制器的磁盘检测策略十分严格,读写性能不稳定的磁盘一般会被控制器判定为坏盘并踢出raid。当raid中掉线盘超过该raid级别的允许掉盘数量的极限,raid就会崩溃,基于raid的lun不可用。本案例中只有一个lun分配给sun小机,上层文件系统是ZFS。
3、EMC存储的LUN都是基于RAID。通过分析发现有2块盘完全没有数据,EMC存储的管理界面上显示这2块没有数据的盘都是热备盘,其中一块热备盘替换了一块离线盘。虽然这块热备盘成功激活,RAID中还有一块硬盘离线,所以数据没有同步到这块热备盘中。继续分析其他10块盘,分析数据在硬盘中的分布规律、RAID条带大小以及盘序等重组RAID所需要的信息。
4、由于RAID中有两块盘掉线,需要搞清楚这两块盘的掉线顺序。分析每一块盘中的数据,发现有一块硬盘在同一个条带上的数据和其他硬盘明显不一样,因此初步判断此硬盘可能是最先掉线的。通过北亚企安自主开发的RAID校验程序对这个条带做校验,最终确定这块硬盘就是最先掉线的。
5、根据上面步骤获取到的信息将RAID重组出来。EMC存储的LUN是基于RAID的。分析LUN在RAID中的分配信息,以及LUN分配的数据块MAP。根据上述信息,用北亚企安自主开发的程序解释LUN的数据MAP并导出LUN的所有数据。
6、用北亚企安自主开发的ZFS文件系统解释程序对生成的LUN做文件系统解释,但是在解释某些文件系统元文件的时候报错。开发工程师对程序做debug调试并分析程序报错原因,文件系统工程师分析ZFS文件系统是否因为版本原因而导致程序不支持。经过长达数小时的分析与调试,发现ZFS文件系统因存储瘫痪导致某些元文件损坏,从而导致文件系统解释报错。
7、北亚企安数据恢复工程师手工修复这些损坏的元文件,直到ZFS文件系统能够正常解析。
8、解析ZFS文件系统,解析所有文件节点及目录结构。用户方工程师对恢复出来的数据进行随机验证,经过仔细验证没有发现问题。