关于数据恢复:服务器数据恢复Unix环境zfs文件系统下重组RAID5案例分享

40次阅读

共计 2639 个字符,预计需要花费 7 分钟才能阅读完成。

服务器 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。

正文完
 0