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

[复制链接]

该用户从未签到

8

主题

0

回帖

60

积分

[INTOHARD]班长

Rank: 2

积分
60
发表于 2019-10-28 11:28:08 | 显示全部楼层 |阅读模式
数据恢复故障描述:
原存储为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. 判断可恢复性,以及怎么实现恢复程序的算法。
4. 恢复及修复。
快速分析出原始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 后,文件目录结构和属性都和原来一模一样。
1.jpg

2.jpg

3.jpg

数据恢复结论:
用时6天,数据恢复成功。
  • TA的每日心情
    无聊
    2021-11-2 09:15
  • 签到天数: 806 天

    [LV.10]一品大学士

    16

    主题

    1235

    回帖

    8310

    积分

    [INTOHARD]团长

    Rank: 8Rank: 8

    积分
    8310
    QQ
    发表于 2021-6-1 09:48:35 | 显示全部楼层
    这么牛X的贴居然没人点赞
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2023-7-14 17:21
  • 签到天数: 23 天

    [LV.4]七品知县

    0

    主题

    58

    回帖

    92

    积分

    [INTOHARD]班长

    Rank: 2

    积分
    92
    发表于 2022-12-26 10:14:51 | 显示全部楼层
    赞1122222222222222222222222222222
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表