近日鸿萌接到一个HP P2000 G3 MSA惠普磁盘阵列系统业务案例,该设备由10块900G SAS机械硬盘组成RAID 6阵列,其中有三块硬盘报警,设备瘫痪,导致数据丢失。
今天,鸿萌借助这个案例,针对RAID 6的阵列进行一下分析。
RAID 6是一个由独立硬盘组成的阵列,配备了两个独立的分布式校验和方案。一般来说,RAID 6类似于RAID 5,但有更大的冗余度,因为有两个校验码被计算并写入阵列成员盘。第一个奇偶校验函数(P)与RAID 5的情况相同(独占或或XOR),而第二个函数(Q)则复杂得多(通常是Reed-Solomon ① 函数)。
除了RAID 5典型的参数,如磁盘数量、磁盘顺序、块大小、起始偏移量、P函数的奇偶校验模式之外,RAID6还有一些额外的参数。
RAID 6参数
RAID 6布局利用两种不同的奇偶校验功能,这有助于RAID 6阵列在双磁盘故障下不影响工作。尽管RAID6被认为比RAID5更可靠,但控制器故障的概率是一样的。因此,如果您的RAID6出现故障,这很可能是由于控制器故障造成的。为了从控制器故障中恢复RAID6,我们需要知道或恢复以下参数:
u? 阵列中硬盘的数量
u? 磁盘顺序以及哪个磁盘是阵列中的第一个磁盘
u? 块大小
u? 成员盘的起始偏移量。
u? 每个奇偶函数的位置。
u? 奇偶函数的旋转。
u? 用于计算第二个奇偶校验函数的算法。
u? 奇偶校验函数的模式。
我们应该知道以上所有这些参数,才可以成功重建RAID 6。
RAID 6变化
RAID 6比RAID 5复杂得多。第一个奇偶校验函数(XOR,在图中表示为P)自然来自RAID5。然而,第二个奇偶校验函数(Q)没有被广泛接受的标准。通常情况下,使用Reed-Solomon码或其一些变体。Reed-Solomon码取决于输入的顺序。这又产生了四种变化:从左到右或从右到左,以及如果P或Q先计算。
有几种布局的变化,可容纳两个奇偶函数。
当我们通过硬盘底层代码将上述参数分析出来以后,就可以通过数据恢复专用工具,将阵列在软件中虚拟出来,使丢失的数据瞬间可以重现。后续的任务就是将数据慢慢导出到好的硬盘上了。
注释:
①??? .Reed-Solomon RS编码,又称里所码,即Reed-solomon codes,是一种前向纠错的信道编码,对由校正过采样数据所产生的多项式有效。当接收器正确的收到足够的点后,它就可以恢复原来的多项式,即使接收到的多项式上有很多点被噪声干扰失真。里德-所罗门码被广泛的应用于各种商业用途,最显著的是在CD、DVD和蓝光光盘上的使用;在数据传输中,它也被用于DSL和WiMAX;广播系统中DVB和ATSC也闪现着它的身影;在电脑科学里,它是第六层标准RAID的重要成员。