案例:RAID6失后效服务器数据恢复全过程

【单位】

某上市公司

【数据恢复故障描述】

原存储为12块2T硬盘组成的RAID6,操作系统为RHEL5,文件系统均为EXT3,此存储上划有3个LUN,每个均为6TB大小,某天在RAID失效后,维护人员为了抢救数据,对此失效的存储上用11块硬盘重进行分配RAID5,并进行了初始化。

初始化进行很长时间后,维护人员看情况不对,便强制停止初始化,但初始化已达到 50%以上。数据部分已被不可逆的破坏。

【数据恢复故障分析】

此案例开始仅是RAID失效,其实数据在底层依旧完好的存在,但维护人员后面抢救数据过程中用11块硬盘进行重分配RAID5,并进行长时间的初始化,这对原始数据是不可逆的损坏,后面经证明,仅第三个LUN可用普通RAID6方法恢复出数据,但第三个LUN没客户要的重要的数据,重要的数据主要集中在第一个LUN。

由于此案例的复杂性,在国内转手多次,经过多家知名的数据恢复公司着手,仍无法解决,恢复价格更是水涨船高,客户最后只得送修到北京北亚数据恢复中心。

【数据恢复过程】

恢复过程分成4步:

1. 分析原始12块磁盘RAID6的磁盘组织结构。

2. 分析重分配RAID5时磁盘的组织结构。

3. 判断可恢复性,以及怎么实现恢复程序的算法。

4. 恢复及修复。

很容易分析出原始RAID6的结构,但分析重分配RAID5的结构时也花费了 1天的时间,因为底层RAID6和RAID5大量的信息重合。

第一步和第二步已完成,经分析,被初始化破坏的数据可用其它方法进行还原,制定出恢复算法,花费一天写程序及进行程序算法的校正,程序把12块磁盘中原始数据的第一和第二个LUN分别镜像到北亚数据恢复公司搭好的两个7TB 的存储上。

经验证第二个LUN数据完全正常,但最重要的第一个LUN前有大约有10MB数据的破坏,这前 10MB数据很要命,EXT的根目录和第一个块组的I节点全在这前10MB里面,然后使用使用数据恢复常用的软件UFS Explorer 和 R-Studio 的恢复效果都相当不理想 ,可能是存储较大的原因。

北京北亚数据恢复中心只得自行修复损坏的EXT3文件系统,自行写一个程序进行EXT3孤目录查找,找到了根目录下有3个子目录,重建根目录和I节点,用 UFS Explorer 打开已完全正常,但为了保证原始数据的一些权限和属性,北京北亚数据恢复中心在LINUX简单修复,LINUX已能正常挂载,然后在LINUX把文件用 cp 命令拷贝到格式化好的EXT3 的单块磁盘的分区上。这样客户使用数据时,不再需要别的任何设置,直接 cp 后,文件目录结构和属性都和原来一模一样。

【数据恢复结论】

用时6天,数据100%恢复成功。

还原第一个LUN:

还原第二个LUN:

数据: