推广 热搜: APP  存储  设备  闪存  交换机  企业存储  华为  联想  思科  监控 

  • 匿名
点击 261回答 0 2015-09-30 00:00

浅析RAID5恢复丢失的数据

待解决 悬赏分:0 - 离问题结束还有
浅析RAID5恢复丢失的数据

很多企业的网管都认为RAID5很少出故障,即使出了故障,RAID5本身也有强大的容错能力,因此往往不太重视数据备份。这就造成了RAID出现故障时就是大灾难。要知道天有不测风云,人有旦夕祸福,那么,在没有备份的情况下,如果RAID5出现故障,我们该如何进行RAID5恢复数据呢?本文将通过一个实例来讲解RAID5恢复故障后丢失的数据。

>

RAID5发生故障的原因可能有很多种,或者是RAID控制器故障,或者是突然断电导致的RAID信息出错,也有可能RAID5的一块硬盘出错,没及时更换,等到第二块硬盘出错时,造成RAID5失效。第一种情况,RAID5发生硬件故障,那么本文也无能为力,但是后两种情况,只要掌握了方法,操作得当,数据还是能被找回来的。

>

本文案例中的RAID5是由RAID卡/芯片生成的(硬RAID5)并且文件系统是NTFS。在讲述具体案例前,我们先介绍一下RAID5有五个关键参数:阵列起始扇区、每块扇区数、盘序、校验(用P代表)块走向、数据块走向!如果这五个参数计算正确,就可成功RAID5恢复数据。

>

扇区编号一律从“0”开始。

>

空扇区:512个字节全是00的扇区!

>

平行扇区:一个RAID5由若干块硬盘组成,不同硬盘上的同一编号的扇区之间互成“平行扇区”。平行扇区的扇区编号相同,只是在不同的硬盘上!在一组平行扇区中,总有一个也只有一个扇区是P扇区!

>

好了,了解以上的背景知识后,我们就可以来看看RAID5恢复数据的具体操作了。

>

RAID5恢复第一步:对单个磁盘做全盘备份

>

本案例中RAID5共计3块硬盘。在RAID5恢复数据之前,我们先开始准备工作。

>

准备工作:对每块硬盘做“全盘备份”,并且使每个硬盘的“全盘备份”都成为一个单独的文件(通常是img/dsk文件,如1.img,2.img,3.img。这里的1,2,3只是编号而已,与盘序无关!)

>

操作提示:点击Winhex工具栏的中的“克隆磁盘”并勾选“复制整个磁盘”

>

用winhex打开这三个文件并且对每个文件进行“解释映象文件为磁盘的操作”。这样映像文件就变成磁盘了!

>

RAID5恢复第二步:搜索DBR扇区

>

下面我们进行参数分析,首先我们需要找到DBR扇区,这里介绍一下,DBR扇区对于多个磁盘的系统来说非常重要,本身保存了很多重要的数据。但我们需要用到的只有2个。参考下面的公式结果。硬RAID5的起始扇区总是 0号扇区,我们从0号扇区开始找阵列的DBR扇区。

>

搜索操作:用winhex的搜索菜单,选择“查找16进制值”,在搜索框中按下图示信息填写参数。DBR扇区的位置是很靠前的,所以在一个盘上搜一会如果没有就到其它盘上找。

>

这样我们搜索到1.dsk的31扇区是DBR。

>

RAID5恢复第三步:根据DBR参数判断文件记录和校验块

>

从上图我们看到DBR模板会显示各种DBR参数,要用到其中两个数值:

>

(786432*8)/(2)+31=3145759号扇区

>

但是我们需要注意,此扇区是“源文件的文件记录”,而我们需要找到的是“用户文件的文件记录”。

>

下面我们继续找用户文件的文件记录

>

发现 3.img和1.img的3145793扇区都是用户文件的文件记录。而 2.img的3145793扇区就可确定为P扇区,用“46 49 4C 45”来向下找文件记录。发现2.img的3145825号扇区是文件记录,并且是一个数据块的开头扇区(它之前的若干扇区都是P扇区)!3145825-3145793=32。

>

3.img的3145825扇区是P扇区,并且是一个P块的开头扇区。(平行着看)用“46 49 4C 45”来向下找文件记录,发现3.img的3145857是文件记录并且是一个数据块的开头扇区。3145857-3145825=32,所以,每块扇区数=32。

>

RAID5恢复第四步:确定所有磁盘的首个校验块

>

dsk的3145857号扇区是P扇区。

>

3145793MOD 96=65 ,65号扇区隶属于2.img上的首个P块,所以2.img上的首个P块是第三个块;

>

3145825 MOD 96=1,1号扇区隶属于3.img上的首个P块,3.img的首个P块是第一个块;

>

3145857MOD 96=33,33号扇区隶属于1.dsk上的首个P块,所以1.img上的首个P块第二个块。

>

RAID5恢复第五步:判断P块走向

>

如果阵列上存有数据,假设D1是首个数据块,那么它的首个扇区就应该是阵列的起始扇区,也是所在硬盘的0号扇区。内容是MBR、EBR、DBR三者中的一种。

>

下面我们需要先假设一种“P块走向”,先假定“P块走向”是 1、2、3,因为1.dsk的首个P块第二个块,所以 1.dsk就是第二块盘,根据P块走向图,1.dsk的0扇区应该是阵列的起始扇区,内容应该是EBR,但实际上却是空扇区。所以我们可以否定 1,2,3的P 块顺序了。

>

确定P块走向为3,2,1,再结合已知的“各个硬盘上首个P块的位置”得出正确的盘序。数据块走向的判断,带颜色的是校验块。因为每块扇区数是32(编号0~31)。2号块总是第二块盘的首个块。3号块不论在哪个硬盘上,都是第二个块!

>

2号块最后扇区(31号扇区)和3号块首个扇区(32号扇区)在内容肯定是是紧密相连的。关键是看3号块在哪个盘。如果在第一块硬盘,那就是连续;如果是第三块硬盘,那就是标准。

>

2号块最后扇区内容是DBR(EB5290) 即 31号扇区。如果不是在RAID中,则32号扇区就应该是“NTLDR”

>

以上就是RAID5恢复发生故障后丢失的数据的步骤,希望能给大家带来帮助。

反对 0举报 0 收藏 0
网站首页  |  物流配送  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅  |  违规举报  |  京ICP备14047533号-2
Processed in 0.005 second(s), 6 queries, Memory 0.46 M