服务器数据恢复环境:
一台infortrend存储,有一组由12块硬盘组建的RAID6,RAID6的所有空间划分给一个LUN并映射到WINDOWS系统上,WINDOWS系统上划分了一个GPT分区。
服务器故障&分析:
存储无法访问,经过检查发现存储中有3块硬盘离线。工作人员通过一系列操作让存储掉线磁盘上线并开始rebuild,但是这个时候发现分区打不开,所有数据无法访问。为避免情况进一步恶化,工作人员中止了rebuild并关机。
经过当地的数据恢复机构进行恢复后,还是有大量数据丢失和无法打开。
RAID6可以支持两块硬盘同时掉线,但如果有第三块磁盘离线,RAID6便无法正常工作了。最常见的一种情况是RAID6离线硬盘不是同时离线,而是每间隔一段时间就有一块磁盘离线。在这种情况下,如果将早掉线的盘上线,便会与还在线的盘进行RAID6算法同步,导致数据出现问题,无法正常读取数据。
本案例应该就是属于这种情况。因为rebuild时间较短,本案例存储中的文件数量非常多,文件系统前部分存放老旧数据的可能性比较大大,一些较新的文件的目录及节点索引很大可能性存放于文件系统后部分,所以推测同步操作对存储中的数据影响不大,破坏程度有限。
服务器数据恢复过程:
1、将故障存储中所有磁盘编号后取出(应在关机状态下插拔硬盘,对硬盘原位置进行标注。在硬盘离开存储后,不要再对存储加电。确保所有操作尽可能可回溯。),以只读方式做扇区级别的镜像备份。对于部分存在物理故障的硬盘,交由硬件工程师处理后利用专业工具进行镜像。备份完成后将所有硬盘按照编号还原到原存储中,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
2、基于镜像文件分析该infortrend存储所使用的的RAID6算法,按算法对12块硬盘做C(12,2)共66种可能的缺2盘的情况组合,找出可能性最大的缺盘组合。
3、通过北亚R企安自研的RAID数据恢复程序重构虚拟RAID,按分析出的缺盘状态、盘序、块大小、校验方向、RAID6算法构建进行附加。
4、对虚拟RAID进行GPT分区结构解释,然后对文件系统进行解释,确定算法是否正确。如不正确,调整算法,直到得到最佳结构。
5、按文件或扇区方式迁移数据到准备好的存储中,由用户方对恢复出来的数据进行检测。经过反复检测,用户方工程师确认恢复出来的数据完整有效。本次服务器数据恢复工作完成。