服务器RAID5数据恢复环境:
存储中12块SCSI硬盘组建RAID5,其中1块热备盘;
FreeBSD操作系统,zfs文件系统。
服务器RAID5故障:
第6块数据硬盘呈现故障。
服务器RAID5数据恢复过程:
一、剖析服务器RAID5。
1、初步判断RAID5起始扇区。
RAID起始扇区是指RAID内的数据在每块物理盘(创立RAID所用的每块独立的物理硬盘)上的起始地位。起始扇区只存在于一块物理盘,大多数状况是0扇区。找到起始扇区复原raid5的第一步。
用WinHex将11块没有问题的硬盘去RAID化。
用WinHex的同步性能将11块盘定位在0扇区,11块盘中只有3块盘(1、2、6号硬盘)的0扇区有“55 AA”标记,这个标记意味着MBR磁盘构造。
剖析哪个硬盘是起始扇区。先看第6块硬盘发现第6块硬盘的结尾显示这是一个GPT头备份并且只有128MB大小。
剩下的1号磁盘和2号磁盘中0扇区有起始扇区或校验。
2、剖析块大小(条带大小)。
本案例应用的zfs文件系统,用WinHex同步显示11块物理盘的某个扇区,比方53654656扇区,发现只有1号盘的此扇区跟其余盘显示的不一样,这是位于1号盘的校验区。顺着1号盘53654656扇区高低寻找,找到间断的128个扇区。这128个扇区就是这个RAID5的条带大小。
3、RAID5成员盘的盘序。
本案例说的1号盘不肯定就是RAID5的第一个盘,也就是说物理盘程序并不一定就是是RAID的程序,须要进行人工校验能力确定。
用WinHex同步定位11块硬盘的53654656扇区,发现1号盘的此扇区与其余盘显示的不同,这个扇区是1号盘的校验区。接着剖析1号盘的下一个条带,即53654656+128=53654784扇区,得出2号盘的这个扇区和其余盘显示的不同,所以2号盘从53654784扇区开始的条带是校验区。以此形式继续下去,接着是3号盘的校验区,4号盘的校验区……得出的校验区如下图所示,“P”字母示意校验区。咱们依照校验区的地位即可失去盘序,而本案例的盘序正好是从1号盘开始顺次递增的。
既然晓得了盘序,从第一步剖析晓得了1号盘和2号盘的0扇区为起始扇区或为校验区。对于左构造来说,0扇区是起始扇区的物理盘肯定是RAID5的1号盘;对于右构造来说,0扇区是起始扇区的物理盘肯定是RAID5的2号盘。
4、校验方向。
RAID5的根本构造有左同步、左异步、右同步、右异步。左和右是对校验方向来说的,区别如下图所示。本案例中的RAID5很显著是右走向的。
从校验区的走向能够确定整个RAID5的校验方向是右方向。
左同步、左异步构造中的校验块都是从最初一块物理盘开始;右同步、右异步构造中的校验块都是从第一块物理盘开始。
判断校验方向的办法有两种:一种是先剖析起始扇区,再剖析条带大小,而后是盘序,盘序剖析后校验方向很容易就看进去了。另一种是如果盘序没有确定下来,只确定了起始扇区和条带大小,能够采纳反推法。
应用反推法分析,在盘序还没有确定下来的状况下,由这个校验区能够算出某个盘中第一个校验区是第几个条带。具体方法如下:找到某个校验区,比方3号盘的53654912扇区,用这个扇区对条带大小与盘数的乘积取余。即
53654912MOD(128 * 12)=256
计算的后果等于256,示意256号扇区是校验。而位于此扇区的3号盘处于第3个条带,并且是第3个条带的开始扇区,包含256号扇区在内的当前的128个扇区是3号盘的第一个校验区。
接着判断1号盘下一个条带,1号盘下一个条带显示3号盘是校验区。接着判断3号盘下一个条带,3号盘下一个条带显示3号盘是校验区。由此能够确定校验方向。
5、数据走向。
同步异步说的是数据的走向。异步构造中,各条带组内的数据块均由低号盘向高号盘顺次写入。同步构造中,每个条带组内第一个数据块写在校验块所在物理盘的下一个物理盘,若前面还有物理盘,则程序往后写,若校验块所在物理盘后没有物理盘,则从校验块所在物理盘后面的物理盘开始从低号盘向高号盘程序写入。
以下是本案例RAID5的剖析过程(已确定此RAID5是右构造)。
1.从“数据块A”动手。
首先查看“数据块A”开端扇区的数据,而后再查看“数据块B”和“数据块C”开始扇区的数据。如果“数据块A” 开端扇区的数据可能与“数据块B” 开始扇区的数据连接,则该RAID5属于异步构造。如果“数据块A” 开端扇区的数据可能与“数据块C” 开始扇区的数据连接,则该RAID5属于同步构造。
2.从“数据块A”动手。
首先查看“数据块A”开端扇区的数据,而后再查看“数据块B”和“数据块C”开始扇区的数据。如果“数据块A” 开端扇区的数据可能与“数据块B” 开始扇区的数据连接,则该RAID5属于异步构造。如果“数据块A” 开端扇区的数据可能与“数据块C” 开始扇区的数据连接,则该RAID5属于同步构造。
3.从“数据块A”动手。
首先查看“数据块A”开端扇区的数据,而后再查看“数据块B”和“数据块C”开始扇区的数据。如果“数据块A” 开端扇区的数据可能与“数据块B” 开始扇区的数据连接,则该RAID5属于同步构造。如果“数据块A” 开端扇区的数据可能与“数据块C” 开始扇区的数据连接,则该RAID5属于异步构造。
4.从“数据块A”动手。
首先查看“数据块A”开端扇区的数据,而后再查看“数据块B”和“数据块C”开始扇区的数据。如果“数据块A” 开端扇区的数据可能与“数据块B” 开始扇区的数据连接,则该RAID5属于异步构造。如果“数据块A” 开端扇区的数据可能与“数据块C” 开始扇区的数据连接,则该RAID5属于同步构造。
二、重组RAID5。
从下面的步骤中咱们曾经解析出RAID5的一些重要信息,依据这些信息,咱们就能够重组RAID5了。
上面咱们用UFS Explorer工具关上并增加这11块硬盘。
将1.dsk增加到了左侧Connected storages里。
把RAID5的10块盘都增加进去。点击Build RAID选项,按照RAID5的盘序把10块盘都增加进去,开始组建RAID5。
第6块盘因为呈现故障,所以要剔除,并在其地位增加时补一个空缺,并持续程序增加完其它硬盘。点击标红框地位处的按钮,增加空缺硬盘。
接着抉择校验方向和数据走向,本实例条带大小为28个扇区,即65KB,右异步构造。因而设置如下所示。
接着点击Build按钮,呈现如下所示。点击find查找,抉择zfs文件系统。
呈现了如下图所示的正在组建的RAID5。