RAID-5是一种容错阵列模式,其中数据和奇偶校验间歇性地分布在三个或更多物理磁盘上。如果物理磁盘的一部分出现故障,您可以使用剩余的数据和奇偶校验在磁盘的故障部分重新创建数据。RAID-5是计算机环境中数据冗余的良好解决方案,在这种环境中,大多数活动都是读取数据。
一些服务器或磁盘阵列机柜将raid信息存储在磁盘的某些位置,通常存储在阵列中每个磁盘的前扇区或磁盘的最后扇区。当raid信息存储在每个磁盘的前扇区时,在分析和重组raid时,需要人为地将其删除,否则会得到错误的结果。
在RAID5数据恢复中,您不仅需要知道raid中数据的起始扇区,还需要知道块大小(也称为深度)、数据和验证方法等。
在实际应用中,阵列控制器通常将磁盘划分为多个条带(条带,NicholasTse1上的绿线框定的部分是条带),然后验证每组条带。每个条带只有一个磁盘存储验证信息,其他磁盘存储数据。控制器将数据分成相等的大小,并分别写入每个硬盘。每个数据块的长度或容量称为块大小或条带深度。在阵列中,条带大小通常相同,即每个磁盘中的数据块大小与检查块的大小一致。
图1
每个条带中验证磁盘上的内容由该条带中其他磁盘上的数据进行异或,例如P1=D1XORD2XORD3(见图2)。一般来说,如果盘序是正确的,RAID5中每个磁盘的写入顺序是从第一个磁盘到最后一个磁盘,或者从最后一个磁盘到第一个磁盘(NicholasTse2)。从图中,检查总是从图的左上角到右下角,或从图的左上角到左下角排列。这为我们判断磁盘的顺序提供了依据。如果我们考虑数据写入磁盘的顺序(这就是所谓的检查旋转模式,以下称为旋转模式),我们可以得到由如图2所示的数据和校验的四种排列形式:前向123(右不对称),正向Dyn(右对称),向后321(左不对称)和向后dyn(左对称)。正向dyn方法相对不常见,因此在判断旋转模式时不能考虑。
图2
最后,无论是单独使用磁盘还是将多个磁盘组合成一个raid,MBR始终是单个磁盘或raid的0扇区。
2、恢复过程1.总体思路对于一般的RAID5数据恢复,我们需要知道以下参数:AndyLau、块大小、旋转模式、数据起始扇区等。因此,RAID5的数据恢复是通过磁盘中的文件系统、文件格式和其他相关数据来确定这四个参数的过程。确定这四个参数后,可以通过相关工具将分散在每个磁盘上的数据恢复到RAID5中的实际数据,从而达到恢复RAID5中数据的目的。
以下是RAID5数据恢复的一般过程。稍后,我们将解释如何通过案例分析过程恢复RAID5数据。
通过工具找到MBR和DBR,判断硬盘中的数据是否同步->通过MBR的位置判断起始扇区的位置->通过DBR找到NTFS分区的MFT记录的位置->判断块大小,盘序和旋转模式通过MFT记录->重新组织数据并在RAID5中恢复数据
2.恢复过程环境和工具:Windows2003服务器、raid重构器302(以下简称RR3)、NTFS3.01运行时diskexplorer(以下简称DE3)
基本信息:这是一套由四个磁盘组成的RAID5。每个硬盘是100米。Windows2003操作系统划分为290m分区,分区格式为NTFS。
首先,打开raid构造函数。①在#驱动器文本框中,输入此RAID5的磁盘数4。②分别在drive1、drive2、drive3和drive4之后输入每个磁盘或磁盘映像的路径,或右键单击选择。③单击“软件”下的“打开驱动器”。
图3
在工具菜单中选择XORtest(此命令用于测试raid中这些磁盘上的数据是否同步,即是否先断开任何硬盘),然后查看NicholasTse4中显示的窗口。④点击软件下的开始按钮进行异或测试。注意:此测试要求raid中的每个磁盘都参与测试,否则结果没有参考价值。
图4
测试完成后,您将看到NicholasTse5中显示的结果。
图5
在窗口左侧,RR3用一个带颜色的小正方形表示测试结果:小正方形表示一个扇区,绿色表示XOR测试通过,红色表示测试失败,白色表示对应扇区没有数据。窗口右侧列出了分区表(MBR)和引导扇区(DBR)。如果该磁盘(映像文件)的扇区中有一个MBR或DBR,则会对该MBR或DBR进行简要描述。
对于当前的情况,从图5那里可以看到,窗口左侧是绿色的,表示XOR测试已经通过,四个磁盘上的数据已经同步;在窗口的右侧,disk1。0列为IMG的MBR位于扇区8,DBR位于扇区71。在Disk3上,img的扇区1402上有一个未知格式的DBR。根据基本描述,这个raid中只有一个NTFS分区,所以这个未知格式的DBR不是我们要找的。
现在让我们看看img上的disk1MBR和DBR:在MBR中定义了一个NTFS分区,它从63个扇区开始,大小为578277个扇区。此信息与此raid的基本描述非常接近,因此此MBR应该是此raid的MBR。根据准备知识,MBR所在的扇区是raid的起始扇区,所以每个磁盘上raid的起始扇区是扇区8(扇区号从0开始),也就是说,每个磁盘的前8个扇区是无用的,需要在重新组织raid时消除。
使用DE3打开disk1IMG,找到DBR(扇区71)的位置,在查看菜单中选择作为引导记录,或直接按F10查看NicholasTse6中显示的内容。
图6
注意红色框中的内容。它们代表每个集群和$MFT所在集群中的扇区数。将$MFT集群乘以每个集群中的扇区数,得到当前分区$MFT所在的扇区。由于每个分区前面都有一些隐藏扇区,所以通过将当前分区中$MFT的位置与当前分区前面的隐藏扇区数相加,可以获得$MFT在raid中的绝对位置(从raid的扇区0开始)。RAID5的容量比磁盘的实际容量小1个磁盘(用于存储检查数据),因此每个磁盘上$MFT的位置应除以$MFT的绝对位置和磁盘数减1。此外,由于每个磁盘前面都有一些raid信息,因此单个磁盘上$MFT的位置应与raid信息占用的扇区数(起始扇区)相加。具体公式如下:
由于数据是根据条带存储在硬盘上的,所以用这个公式计算出的MFT位置只是一个近似位置,每个磁盘上MFT的实际位置应该接近这个位置。此外,由于在计算过程中选择的扇区数通常在±4个扇区内,因此在后续计算中会出现一些错误。
在本例中,MFT的位置=192759*1/(4-1)+8=64261。因此,每个磁盘上的MFT位置接近扇区64261。使用DE3打开每个图像文件的64261扇区,在“视图”菜单中选择“作为文件条目”,或按F6键查看NicholasTse7中显示的内容。
图7
其中的每条记录对应于MFT中的一条记录。此时,向下拖动滑块将导致记录文件名的地方出现乱码,文件名中出现非法字符(*?/:“<;>;|等),或者文件名或文件属性将不显示(NicholasTse8中红色框中的部分)。
图8
为什么MFT记录中会出现这种情况?在准备知识中,有人说RAID5是直的,所以它可以容忍错误,因为RAID5对每个条带中的数据执行异或验证,并根据法律将验证结果均匀地存储在RAID5中的每个硬盘上。NicholasTse8显示的现象出现在MFT记录中的原因是该区域存储了验证内容。因此,我们只需要找到相关MFT记录的开始位置和结束位置就可以确定检查块的容量,而检查块的容量就是块的大小。在这种情况下,所讨论的MFT记录从扇区64392开始,在扇区64520结束。因此,这种情况下的块大小为64520-64392=128个扇区。
由于每个磁盘上的数据块和检查块的顺序是确定的(见图1和图2),因此可以通过确定检查块所在的RAID5条带来确定磁盘的顺序。也就是说,在每个磁盘或图像文件中分别找到MFT记录的验证块的结束扇区,从块大小和磁盘数量的乘积中减去扇区数减去起始扇区数的结果,然后将结果除以块大小。最终编号是验证块所在的条带。具体公式如下:
因此,disk1img检查块的条带编号为((64520-8)mod(128*4))/128=0=4。使用相同的方法计算检查块在剩余硬盘映像中的位置,
磁盘2。img检查块的条带编号为((64898-8)mod(128*4))/128≈2.95≈3、Disk3img校验块的条带号为((64776-8)mod(128*4))/128≈2.
磁盘4。img检查块的条带编号为((646-8)mod(128*4))/128≈1.
参考图2,我们可以得出盘序向后1234或向前4321。因为在disk1中,img上存在MBR,所以disk1中img上的数据应该是RAID5中的起始数据块,或者disk1中img上的数据是条带1上的D1。当AndyLau向后1234时,该数据的存储方法符合disk1。img上的数据为第1条上的D1;当AndyLau是4321forward时,条带上的第一个数据块D1位于img上的Disk3中,这与disk1相同。img上的数据与条带1上的D1不一致。所以盘序是1234落后。
到目前为止,我们已经分析了起始扇区位置、盘序和块大小,然后分析了旋转模式。RAID5的分析已经完成。在分析旋转模式之前,首先介绍MFT记录文件的模式。MFT对文件记录采用“b-ma华腾”管理方式。简而言之,MFT中记录的文件名通常按字母(汉语拼音字母)升序排列。demft中每条记录的文件名与3条记录附近的文件名之间存在高度相关性。
图9
这种文件记录管理方法为我们判断数据之间的关系提供了依据,即相邻数据块中有MFT记录的文件记录与非相邻数据块中的文件记录有更好的相关性。
图10
如NicholasTse10所示,当位于磁盘3中条带1上的数据块(D3)与位于磁盘4中条带2上的数据块(D6,参见图10左侧的后向部分)连接时,旋转模式为向后dyn;当位于磁盘3的条带1上的数据块(D3)与位于磁盘1的条带2上的数据块(D4,参见图10左侧的向后部分)连接时,旋转模式为向后321。旋转模式的判断不仅限于使用D3数据块,还使用其他位置的数据。例如,简而言之,只要可以判断数据的存储位置,D5是否与D6或D7连接。
在本例中,我们选择扇区648的位置,因为该位置是磁盘3上检查块的第一个扇区,即图10中P2的第一个扇区。将每个图像文件定位到扇区648,在视图菜单中选择为文件条目,并将扇区648放置在窗口的中间(如如图11图14所示),以便于查看。
图11.1img
图12.2img
图13.3img
图14.4img
通过查看每个磁盘中MFT文件记录中的文件名(用粗红线框起来的部分),可以发现Disk3上的文件记录与Disk4上文件记录的文件名的关系比Disk3和disk1上的文件记录更密切,也就是说,Disk3上的数据与Disk4上的数据的关系更密切,数据应在写入Disk3后写入Disk4。因此,旋转模式是向后dyn(参考图10或图2中的数据存储模式)。
经过以上分析,我们得到了起始扇区位置、盘序、区块大小和旋转模式。将这些参数填入RR3(NicholasTse15所示),⑤单击“打开驱动器”按钮,⑥在目标位置填写输出到设备或文件的路径,⑦最后点击复制按钮。
图15
如果重组后的目标设备是磁盘,通常可以直接打开(可能需要重新启动);如果重组的结果是镜像文件,则可以通过R-Studio等工具打开它。
图16使用R-Studio打开重组后的图像文件。请注意,一般来说,如果重组结果正确,并且原始raid中的文件系统没有问题,那么使用R-Studio打开映像文件(图16中红色框中的部分)时不会出现错误提示,目录结构正常,文件名或目录名不会被乱码。此时,您可以选择分区中的一些大文件(文件大小最好大于三个数据块的大小)进行恢复并查看结果。如果这些文件可以正常打开,重组结果通常不会有问题。
图16
到目前为止,RAID5的参数已经过全面分析,数据已经恢复。
3、其他的RAID5数据恢复的基本过程如上所述,但RAID5参数分析方法和RAID5数据恢复方法不限于此。对于不同类型的RAID5,可能有不同且更简单的方法,例如通过硬盘或明文中的其他符号判断盘序,通过修改raid信息修复raid,等等。当然,这些都需要实际操作经验以及对文件系统和文件格式的深入研究。
4、附录1.HP上的RAID5双循环首先,惠普的RAID5双循环也是RAID5。它满足RAID5的所有特性,并由XOR进行验证。第二,RAID5双循环是基于RAID5的变形,与普通RAID5相比,其数据存储方式有一定的变化。惠普的RAID5只是将RAID5的每一条细分为更小的条(NicholasTse17)。因此,您还可以通过上述方法判断带钢的总体尺寸,然后分析其他参数。
图17
2.盘柜
由于操作系统或RAID控制器的设计,或者由于实际需要,一些RAID卡允许用户将磁盘组划分为多个逻辑驱动器,即在管理RAID时,多个RAID进行管理,尤其是在盘柜外部连接时。每个逻辑驱动器可以相互关联,也可以完全独立。例如,拥有6个300gSCSI硬盘的盘柜可以用这10个硬盘建立一个容量为200g的RAID5作为逻辑驱动器;然后建立一个400graid0;在剩余空间中创建另一个RAID5(如NicholasTse18所示)。此时,每个逻辑驱动器的第一个扇区将有一个MBR,它定义逻辑驱动器的当前分区。因此,这些MBR中的分区容量远小于实际总容量。分析参数时,需要将每个逻辑驱动器视为一个单独的raid。
图18
最新评论