分析Linux raid6同步成raid5导致数据丢失的情况

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分析Linux raid6同步成raid5导致数据丢失的情况相关的知识,希望对你有一定的参考价值。

数据恢复故障描述:
原存储为12块2T硬盘组成的Linux RAID6,文件系统均为EXT3,此存储上划有3个LUN,每个均为6TB大小,某天在RAID失效后,维护人员为了抢救数据,对此失效的存储重进行分配RAID,并进行了初始化。
初始化进行很长时间后,维护人员察觉到情况有异,便强制停止初始化,但初始化已达到 50%以上。数据部分有不可逆的破坏。
数据恢复故障分析:
故障的起因仅仅是RAID失效,维护人员随后的抢救数据过程中用11块硬盘进行重分配RAID5,并进行长时间的初始化,这对原始数据是不可逆的损坏,后经证明,仅第三个LUN可用普通RAID6方法恢复出数据,但第三个LUN并没有客户想要的要的重要数据,重要的数据主要集中在第一个LUN。
由于此案例的故障极其复杂,我公司接到客户送修时已经在国内数据恢复公司之间转手多次,包括多家知名数据恢复公司,仍未解决。
数据恢复过程:
恢复过程分成4步:

1. 分析原始12块磁盘RAID6的RAID和磁盘的组织结构。
2. 分析重分配RAID5时RAID和磁盘的组织结构。
3. 判断可恢复性,以及怎么实现恢复程序的算法。

  1. 恢复及修复。
    快速分析出原始RAID6的结构,但因为底层RAID6和RAID5大量的信息重合导致分析重分配RAID5的结构时比较困难,整整花费了 1天时间。
    第一步和第二步已完成,经分析,被初始化破坏的数据可用其它方法进行还原,制定出恢复算法,花费一天写程序及进行程序算法的校正,程序把12块磁盘中原始数据的第一和第二个LUN分别镜像到搭好的两个7TB 的存储上。
    经验证第二个LUN数据完全正常,但最重要的第一个LUN前有大约有10MB数据的破坏,这前 10MB数据很要命,EXT3的根目录和第一个块组的I节点全在这前10MB里面,然后使用数据恢复常用的软件UFS Explorer 和 R-Studio 的恢复效果都相当不理想 ,可能是存储较大的原因。
    在这种情况下只得自行修复损坏的EXT3文件系统,自行写一个程序进行EXT3孤目录查找,找到了根目录下有3个了目录,重建根目录和I节点,用 文件系统解析程序打开已完全正常,但为了保证原始数据的一些权限和属性,在LINUX简单修复,LINUX已能正常挂载,然后在LINUX把文件用 cp 命令进行拷贝格式化好的EXT3 的单块磁盘的分区上。这样客户使用数据时,不再需要别的任何设置,直接 cp 后,文件目录结构和属性都和原来一模一样。
    技术图片
    技术图片
    技术图片
    数据恢复结论:
    用时6天,数据恢复成功。

以上是关于分析Linux raid6同步成raid5导致数据丢失的情况的主要内容,如果未能解决你的问题,请参考以下文章

linux配置磁盘阵列raid 0raid1 raid5 raid6 raid10

服务器磁盘raid0,raid1,raid10,raid5,raid50,raid6,raid60 分析与案例

RAID ADG 如何实现能同时允许2块硬盘出现故障?

CentOS 7 RAID磁盘阵列详解二(raid5raid6raid10)全程可跟做

raid0,raid1,raid10,raid5,raid50,raid6,raid60的功能总结简述

raid卷构建精华(raid0raid1raid5raid6以及raid10)