pucca1020 发表于 2014-8-21 09:32:40

raid数据恢复中你所不知道的秘密

      最近接手一个HP服务器4块盘的RAID5,其中一块盘物理上识别不了,于是用其余3块盘组合恢复数据,发现恢复出来的数据不正常,于是想办法修复那块物理故障的硬盘,幸好修好了这块物理故障的硬盘,把镜像做好了.于是按照下面的步骤来:

      1、采用故障硬盘的镜像参与RAID5组合,分3次缺不同的硬盘组合数据;

      2、导出原先觉得有问题的数据,尝试打开,看看文件是否正常。

      结果是:无论缺哪一块盘,组合出来的数据都是异常的,打开都有问题。用“护航舰”检测4块盘的冗余情况,都出现不符合raid5冗余信息的数据。按照以往的经验,可能就直接宣布恢复失败。忽然想起我很久以前恢复过的一个案例,跟这个案例类似。于是按照不缺盘的方式组合,结果出人意料:恢复出来的数据都能打开!

      从这个案例来讲,一开始的思路就是掉入Raid5 缺盘排除异常硬盘的组合就一定能判断出哪块盘不新鲜的陷阱。我们来分析一下:

      1、4块盘的Raid5,如果4块盘都是好的,用4块盘组合数据肯定没问题,缺任意一块盘组合数据也是没问题的;

      2、4块盘的Raid5,如果其中有一块盘数据不新鲜,那么我们通过缺盘组合验证数据,就能判断出哪块盘数据不新鲜;

      3、如果挨个缺盘组合,数据都不对,那么我们往往会放弃下一步恢复(这种情况会出现在一开始接手的时候有一块盘出现物理问题,我们先尝试用其余的硬盘来组合恢复数据,如果数据不对,我们就认为肯定有一块盘数据不新鲜,而且数据不新鲜的硬盘就在这正常的硬盘中,当我们把原来坏掉的硬盘修复好以后,我们采取的思路就是用这个原来的坏盘参与组合,缺原来好盘中的一个,而不是采用所有的硬盘来组合,正是我们忽略了这一步)

      在4个盘组成的Raid5的阵列中,为什么我们缺任何一块盘组合数据都不对呢?而用所有的硬盘组合数据就对呢?也许在数据恢复行业里,有人碰到过这个问题,可能也没想明白是什么回事。我经过了一番思考得出以下结论:

      由于RAID卡的XOR运算模块不起作用或者出现异常,导致往磁盘阵列中写数据时,数据块写入成功,但是冗余(校验)块没有写入成功或者XOR运算出错得到一个错误的结果写入校验块位置,这样我们用工具运算4块盘的XOR结果时得到一个错误的结果,我们就认为其中有坏盘。因为数据块写入正常,而校验块错误,所以我们不能用缺盘的方式来组合,一定要用所有的硬盘来组合才能恢复出正常的数据。
      来源:覃总

pc3000lgh 发表于 2014-8-21 15:17:46

分析的有道理,细想能理解!

西安零壹 发表于 2014-8-21 16:30:05

覃总出品,必属佳作。

bsmao 发表于 2014-8-21 21:25:55

本帖最后由 bsmao 于 2014-8-21 21:31 编辑

精彩的分析,如果这个结论最终得到验证,那就非常完美了。佩服!真是学习了。
页: [1]
查看完整版本: raid数据恢复中你所不知道的秘密