RAID-5由5块1.5TB的SATA硬盘组成,服务器在运行中突然宕机,不知是什么原因导致RAID崩溃,原有数据全部丢失。

把5块SATA硬盘去RAID化后分别进行检测,没有发现坏扇区,可能是RAID控制器或者RAID信息故障导致RAID-5崩溃。

物理盘检测完成后将它们通过SAS卡同时连接到计算机上,在系统的磁盘管理中可以看到这5块硬盘,如图18-24所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-24 磁盘管理中的5块物理盘

这5块物理盘在磁盘管理中显示为“磁盘1”、“磁盘3”、“磁盘4”、“磁盘5”和“磁盘6”,我们用“硬盘1”、“硬盘3”、“硬盘4”、“硬盘5”和“硬盘6”来称呼它们。

由于硬盘太大不方便做镜像,我们直接用物理盘进行分析和恢复。用WinHex同时打开5块硬盘,如图18-25所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-25 用WinHex打开5块硬盘

把5块成员盘都打开后就可以开始分析该RAID-5的结构了。

分析RAID开始扇区

从图18-24中可以看到,每块成员盘都显示有3个独立的分区,在最后一个分区前还有126MB的未指派区域。我们实际分析一下为什么会出现这种结构。

依然从每块物理盘的0号扇区入手。首先用WinHex查看“硬盘1”的第一个扇区,内容如图18-26所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-26 “硬盘1”的第一个扇区

硬盘的编号中没有“硬盘2”,下一块硬盘是“硬盘3”,其第一个扇区的内容如图18-27所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-27 “硬盘3”的第一个扇区

“硬盘4”的第一个扇区的内容如图18-28所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-28 “硬盘4”的第一个扇区

“硬盘5”的第一个扇区的内容如图18-29所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-29 “硬盘5”的第一个扇区

“硬盘6”的第一个扇区的内容如图18-30所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-30 “硬盘6”的第一个扇区

对比5块成员盘的第一个扇区发现,它们都是MBR,并且这5个扇区除了磁盘签名不同外,其他数据都一样,分区表中有完全一样的3个分区表项。

进一步分析发现,每块成员盘的前两个分区都是独立的,并且互为镜像,数据完全一样,相当于RAID-1,其中第一个分区为Ext3文件系统的系统区,第二个分区为Swap分区。

MBR的第三个分区表项中描述了分区的开始位置在6 281 415号扇区。接下来我们从这个扇区分析每块成员盘。

“硬盘1”的6 281 415号扇区的内容如图18-31所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-31 “硬盘1”的6 281 415号扇区

“硬盘3”的6 281 415号扇区的内容如图18-32所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-32 “硬盘3”的6 281 415号扇区

“硬盘4”的6 281 415号扇区的内容如图18-33所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-33 “硬盘4”的6 281 415号扇区

“硬盘5”的6 281 415号扇区的内容如图18-34所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-34 “硬盘5”的6 281 415号扇区

“硬盘6”的6 281 415号扇区的内容如图18-35所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-35 “硬盘6”的6 281 415号扇区

对比5块成员盘可以看出,“硬盘1”的6 281 415号扇区肯定是校验;“硬盘3”的6 281 415号扇区都是0字节;“硬盘4”、“硬盘5”、“硬盘6”的6 281 415号扇区都是柱面组描述符,并且“硬盘5”和“硬盘6”的数据完全一样,如果将“硬盘5”和“硬盘6”去掉其中一块,剩下4块硬盘的6 281 415号扇区符合异或结果,从这一点我们可以得出两个结论:

  • 该RAID起始扇区为物理盘的6 281 415号扇区。
  • 硬盘5和硬盘6其中一块是热备盘。

分析热备盘

上一步我们判断“硬盘5”和“硬盘6”其中一块是热备盘。经过对比发现,这两块硬盘中的数据的确是一样的,在恢复数据时必须先去掉一块,但并不是说任意去掉一块都可以,而是应该详细分析看哪块硬盘中的数据不新鲜,然后把数据不新鲜的硬盘去掉。

我们用WinHex的“同步和比较”功能对比“硬盘5”和“硬盘6”,结果发现“硬盘6”的数据有缺失,也就是不新鲜,如图18-36所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-36 “硬盘5”和“硬盘6”的同步比较

从图18-36中可以看出“硬盘5”的2 358 404 700号扇区有数据,而“硬盘6”的2 358 404 700号扇区则没有数据,说明“硬盘6”的数据不新鲜,在恢复数据是需要把“硬盘6”去掉,只用其他4块成员盘恢复即可。

分析RAID结构

分析条带大小

通过前面的分析已经知道该RAID-5的起始扇区是6 281 415,并且确定“硬盘1”的6 281 415号扇区是校验信息,所以“硬盘1”的第一个条带就是校验块。我们可以从这个校验块入手分析条带大小,具体方法是从“硬盘1”的6 281 415号扇区往后找,直到发现一个数据块的开始,就说明校验块已经结束了。从6 281 415号扇区到这个数据块之间的扇区数就是该RAID-5的条带大小。

从“硬盘1”的6 281 415号扇区开始,一次以2N个扇区为单位往后跳转,查看校验信息是否结束,最后发现6 281 543号扇区已经不是校验信息,而是柱面组描述符的结构,如图18-37所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-37 硬盘1的6 281 543号扇区

这样就能够计算出该RAID-5的条带大小了,计算方法是:6281543-6281415=128。

分析盘序和校验方向

在后面的分析和恢复过程中,我们可以把“硬盘6”剔除,只用其他4块成员盘分析即可。

现在已经知道该RAID-5的起始扇区是6 281 415,并且“硬盘1”的6 281 415号扇区是校验信息,“硬盘3”的6 281 415号扇区都是0。从这里我们可以推断“硬盘3”的6 281 415号扇区应该是RAID-5逻辑盘的开始,其后的第三个扇区,即6 281 417扇区,则应该是超级块。

跳转到“硬盘3”的6 281 417号扇区,其内容如图18-38所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-38 “硬盘3”的6 281 417号扇区

从图18-38可以看出“硬盘3”的6 281 417号扇区的确是超级块。为了判断硬盘3之后应该衔接哪一块成员盘,我们看一看“硬盘3”第一个条带最后一个扇区的数据,这个扇区是6 281 542,跳转到该扇区,其内容如图18-39所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-39 “硬盘3”的6 281 542号扇区

然后再查看“硬盘4”和“硬盘5”的6 281 415号扇区,发现“硬盘3”的6 281 542号扇区最后的柱面组描述符应该与“硬盘4”的6 281 415号扇区开始的柱面组描述符衔接。“硬盘4”的6 281 415号扇区前部的柱面组描述符如图18-40所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-40 “硬盘4”的6 281 415号扇区的柱面组描述符

最后剩下“硬盘5”,它自然就是衔接在“硬盘4”之后了。

通过上面的分析可以得知,如果该RAID-5是左结构,那么“硬盘3”就是“0号盘”,“硬盘4”是“1号盘”,“硬盘5”就是“2号盘”,“硬盘1”则是“3号盘”,其结构如图18-41所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-41 左结构示意图

如果该RAID-5是右结构,“硬盘1”就是“0号盘”,“硬盘3”是“1号盘”,“硬盘4”是“2号盘”,“硬盘5”则是“3号盘”,其结构如图18-42所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-42 右结构示意图

所以只要把该RAID-5的左、右结构确定下来,盘序也就可以确定了。

我们用“硬盘3”进行分析。现在已经肯定“硬盘1”的第一个条带是数据块,只要判断出“硬盘3”的第二个条带是数据块还是校验块,就可以知道该RAID-5是左结构还是右结构了。

对照图18-41和18-42来看,如果“硬盘3”的第二个条带是数据块,那么该RAID-5就是左结构;如果“硬盘3”的第二个条带是校验块,那么该RAID-5就是右结构。

已经知道该RAID-5的起始扇区是物理盘的6 281 415号扇区,条带大小是128扇区,所以第二个条带在物理盘中的绝对起始扇区号是6 281 543,跳转到“硬盘3”的6 281 543号扇区,其内容如图18-43所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-43 “硬盘3”的6 281 543扇区

“硬盘3”的6 281 543扇区很明显是整齐的柱面组描述符结构,也就是说它一定是数据而非校验,所以“硬盘3”的第二个条带是数据块,那么可以确定该RAID-5一定是左结构,从而得出其盘序为:“硬盘3”是“0号盘”,“硬盘4”是“1号盘”,“硬盘5”是“2号盘”,“硬盘1”是“3号盘”。

分析数据的循环方向

数据的循环方向就是同步或异步。我们已经分析出该RAID-5是左结构,所以它要么是左异步,要么是左同步。如果是左异步,其结构如图18-44所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-44 左异步结构图

如果是左同步,其结构如图18-45所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-45 左同步结构图

现在我们只要分析数据块“2”最后一个扇区后面衔接的数据在“0号盘”上还是在“3号盘”上。如果在“0号盘”上,就是左异步;如果在“3号盘”上,就是左同步。

数据块“2”是“2号盘”的第一个条带,其最后一个扇区也就是“硬盘5”的6 281 542号扇区,该扇区的内容如图18-46所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-46 “硬盘5”的6 281 542号扇区

从内容看,“硬盘5”的6 281 542号扇区是柱面组描述符,为了判断该扇区之后的数据写入的位置,我们需要分别查看“0号盘”和“3号盘”第二个条带的开始扇区。

“0号盘”第二个条带的开始扇区也就是“硬盘3”的6 281 543号扇区,其内容在之前的分析中已经查看过,可以参看图18-43,很明显这个扇区的内容与图18-46中“硬盘5”的6 281 542号扇区的柱面组描述符衔接不上。

“3号盘”第二个条带的开始扇区也就是“硬盘1”的6 281 543号扇区,其内容在之前的分析中也已经查看过,可以参看图18-37。很明显这个扇区的内容与图18-45中“硬盘5”的6 281 542号扇区的柱面组描述符能够衔接上,所以数据块“2”最后一个扇区之后衔接的数据在“3号盘”上,该RAID-5应该为左同步结构。

数据重组

这个案例我们分别用R-studio和UFS Explorer进行重组演示。

用R-studio进行重组

运行R-studio后单击菜单栏“Create”中的“Create Virtual Block RAID”命令,如图18-47所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-47 “Create Virtual Block RAID”命令

创建出虚拟RAID后,把4块成员盘按照其盘序所在顺序依次加入,如图18-48所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-48 加入成员盘

成员盘加入后别忘记设置RAID开始扇区,如图18-49所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-49 设置RAID开始扇区

接下来设置虚拟RAID类型,当前案例是RAID-5,所以要选择RAID-5类型,如图18-50所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-50 设置虚拟RAID类型

把RAID类型设置为RAID-5之后,就该选择条带大小了。当前RAID-5的条带大小是128扇区,即64KB,在下拉菜单中选择即可,如图18-51所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-51 选择条带大小

最后一个参数是循环方向,该RAID-5是左同步,如图18-52所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-52 设置循环方向

所有参数设置正确后,就能够在虚拟RAID下看到一个大小为4.08TB的Ext3文件系统分区,如图18-53所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-53 4.08TB的Ext3文件系统分区

双击这个Ext3文件系统分区就能够看到数据了,如图18-54所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-54 Ext3文件系统分区中的数据

为了保护用户的隐私,我们将数据做了技术处理。

选中需要恢复的数据,然后单击鼠标右键,选择“Recover Marked”命令,就可以把这些数据保存到指定位置中了,如图18-55所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-55 保存数据

用UFS Explorer进行重组

运行UFS Explorer后单击菜单栏“Tools”中的“Build virtual RAID array”命令,如图18-56所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-56 “Build virtual RAID array”命令

创建出虚拟RAID后,把4块成员盘按照其盘序所在顺序依次加入,并设置RAID类型、条带大小、RAID起始扇区、循环方向,如图18-57所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-57 设置参数

所有参数设置正确后,就能够在虚拟RAID下显示出一个大小为4182.80GB的Ext3文件系统分区,如图18-58所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-58 4182.80GB的Ext3文件系统分区

双击这个Ext3文件系统分区就能够看到数据了,如图18-59所示。

有热备盘的服务器RAID-5数据恢复实例-数据恢复迷

图18-59 Ext3文件系统分区中的数据