需要进行数据恢复的服务器共10个磁盘柜,每个磁盘柜满配24块硬盘。其9个存储柜用作数据存储使用,另外1个存储柜用作元数据存储使用。元数据存储里一共24块146G硬盘,其中设置了9组RAID 1阵列,1组4盘位RAID 10阵列,4个热备硬盘。
数据存储中,每6块硬盘设置一组RAID 5阵列,共36组RAID,这36组RAID阵列中,又分为2个存储系统。其中1个存储系统中,一组RAID由于2块硬盘先后故障离线,导致RAID阵列失效,整个存储系统瘫痪,无法使用。
存储及文件系统架构大致如下图一:
注:Meta_LUN(元数据卷) Data_LUN(用户数据卷)
为避免服务器数据恢复过程中由于误操作对原始磁盘造成二次破坏, 先使用WinHex软件对客户的存储环境进行备份。
备份过程如下图二所示:
对故障RAID中的6块成员盘进行编号标记,将硬盘从存储柜中拔出,接入到准备好的备份平台上,对6块硬盘进行备份。
对其余没有出现故障的RAID阵列,进行存储层面的备份。使用光纤线缆将备份平台和存储设备连接,进入昆腾存储设备管理界面配置备份平台和存储设备可以正常通信,使用WinHex软件对RAID中的LUN进行镜像备份。
在备份过程中发现故障RAID中的1块故障硬盘存在大量的坏道区域,在备份的过程出现故障,无法继续备份。对故障硬盘进行开盘更换固件,并使用PC3000工具进行修复后,硬盘可以继续备份,但坏道仍然存在。图三:
部分镜像文件
先对故障的RAID阵列进行分析,获取到相关的RAID信息,使用WinHex软件对RAID阵列进行虚拟重组,并将RAID中的LUN恢复成镜像文件。在分析过程中发现,损坏较严重的硬盘为后离线硬盘,由于此硬盘存在大量坏道,可能对恢复结果产生影响。
登陆昆腾存储设备的管理界面,获取到StorNext文件系统中卷相关的一些基本信息,如下图四:
继续对StorNext文件系统中的Meta卷和Data卷进行分析,客户的StorNext文件系统中,包含2个Data卷,完整的Data卷都是由多组RAID中的LUN组成的,对这些LUN进行分析,得到LUN之间组合的算法规律,虚拟重组出完整的Data卷。
图五:
分析Meta卷,对Meta卷中的节点信息和目录项信息,以及Meta卷和Data之间的对应关系进行分析,针对一个Meta卷管理多个Data卷的情况,研究得到Meta卷到Data卷的索引算法。文件节点如下图六:
目录块如下图七:
通过分析研究我们已经获取到了恢复工作所需信息,开始编写程序,扫描Meta卷中的节点信息和目录项信息,同时对目录项和节点进行解析,获取完整的文件系统目录结构,解析节点中的指针信息,将这些信息记录在数据库中。
文件信息如下图八:
编写文件提取程序,读取数据库,根据解析出的信息以及两个Data卷之间的聚合算法对数据进行提取。
对生成出的数据进行随机抽样检测,数据没有问题。将客户所需文件提取到本地,确认提取完成后,到客户线程进行数据移交。数据移交完成,客户对数据恢复结果表示满意。虽然故障硬盘存在有坏道的情况,但万幸主要数据没有遭到破坏,数据恢复工作圆满完成。