服务器存储数据恢复环境:
一台infortrend某型号存储,内部有一组由12块硬盘组建的RAID6阵列。RAID6阵列空间划分了一个LUN,映射到WINDOWS SERVER系统上。WINDOWS SERVER系统上划分了一个GPT分区。
服务器存储故障:
存储在运行过程中突然无法访问。管理员查看后发现raid6阵列中有3块盘离线。管理员通过非常规手段上线存储并开始rebuild,但通过主机访问时发现分区打不开,存储中所有数据均无法访问。咨询一些专业人士后基本上确认存储中的数据已经破坏。为避免情况进一步恶化,管理员中止rebuild,将存储关机后寻求当地一家数据恢复公司的帮助。经过该公司的全力恢复后,发现还是有大量数据丢失以及大量的文件无法打开。
RAID6支持2块硬盘同时掉线,但当2块以上的磁盘下线后,RAID6阵列便无法正常工作了。RAID6阵列中离线的3块盘一般不会同时下线,而是每间隔一段时间就有一块盘离线。这种情况下,如果将较早掉线的盘上线,就会与在线的盘进行RAID6算法同步,导致数据混乱,无法正常读取。
本案例中的情况就是如此。所幸是本案例中rebuild时间较短,在这段时间内同步的数据量不是很大。本案例中所涉及存储中数据文件非常多,且作为素材库,文件系统前面部分的空间存放老旧数据的可能性非常大;另外因为文件数量很多,所以较新文件的目录及节点索引应该都位于磁盘后部,所以同步操作可能对存储中整体数据的影响不大,破坏程度有限。
服务器存储数据恢复过程:
1、将故障存储中所有磁盘编号后取出,由硬件工程师进行检测,经过检测没有发现有硬盘存在硬件故障。以只读方式对所有硬盘做扇区级完整镜像。镜像完成后将所有磁盘按照编号还原到原存储中,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
2、基于镜像文件分析存储中所使用的的RAID6算法。北亚企安数据恢复工程师按照分析出来的RAID6算法对12块硬盘做C(12,2)共66种可能的缺2盘的情况组合,找到正确的缺盘情况组合。
3、搭建虚拟RAID平台,按分析出的缺盘状态、盘序、块大小、校验方向、RAID6算法进行附加。
4、对RAID做GPT分区结构解释,然后进行文件系统解释,确定算法的正确性。如不正确,调整算法,直到找到正确结构。
5、将提取出来的数据迁移到用户准备好的环境中。
Tips:
故障发生后,应在关机状态下插拔硬盘,同时对硬盘原位置进行标注。在硬盘离开存储后,不要再对存储加电。确保所有操作尽可能可回溯。