首页 > 鸿萌培训

时间:2020-08-30
具有奇偶校验功能的 RAID
 
       RAID 5 利用条带化和奇偶校验技术的结合。在 RAID 5 中,数据流被分割成一定大小的块(块大小),然后依次写入成员盘。在每一行中,有一个磁盘被指定存储一定的校验和,即所谓的奇偶校验函数,它是根据行中其他成员磁盘的数据计算出来的。当单块磁盘发生故障时,可以利用奇偶校验计算出缺失的数据。通过这样的方式提供了容错功能。
 
       RAID 5至少需要三块磁盘。理论上,磁盘的最大数量不受限制,但在实际操作中,需要考虑到硬件RAID情况下控制器的容量。阵列的容量为(N-1)乘以N块磁盘组成的阵列中最小的成员磁盘的大小。
 
       这样,在RAID 5中,一个磁盘的容量被用来存储奇偶函数数据,以提供容错能力。

RAID 5 布局

       根据奇偶校验块的位置和数据块的写入顺序,RAID 5有四种不同的类型(注意,在下面的图中,每行的第一个块是红色的)。
 
RAID 5 Left Synchronous RAID 5 Right Synchronous
RAID 5 Left Asynchronous RAID 5 Right Asynchronous
 
       左右数组由奇偶块如何分布到成员磁盘上决定。同步性和异步性定义了数据块的顺序。

       对于RAID 5的数据恢复,除了考虑块的大小,起始偏移量和成员盘的顺序外,所有这些参数都应该被分析到。

      在 RAID 5 阵列中,写入大小小于数据块大小的数据,需要进行以下操作:

  • 读取旧的数据块
  • 读取旧的奇偶校验块
  • 将旧数据块中的数据与新到的数据块进行比较。每改变一个位,改变奇偶校验中相应的位。
  • 写入新的数据块。
  • 写入新的奇偶校验块。

      可以看出,奇偶校验更新会降低系统的写入性能。

 

 

      对于等于或大于由N个数据块组成的行的大小的写入,由于不需要读取旧的数据块并查找变化,所以写入速度会更快一些。

 

RAID 6

 

       RAID 6 同时使用条带和奇偶校验技术,但与 RAID 5 不同的是,它使用两个独立的奇偶校验函数,然后写入两个成员盘。通常情况下,其中一个奇偶校验函数与 RAID 5 中的函数相同(XOR函数),而第二个函数则更为复杂。奇偶校验数据有助于在两个成员盘同时失效时恢复数据。

       创建 RAID 6 至少需要4块磁盘。阵列的容量是N块磁盘组成的阵列中最小的成员磁盘大小的(N-2)倍。

 

RAID 6

 

        读取速度比单块磁盘的情况下快(N-2)倍--行中的两块磁盘持有奇偶校验,读取时无用。这样的读取速度值与RAID 5>中大致相同。

 

        在 RAID 6 中,写入速度并没有提高,因为每次写入都需要重新计算和更新两个不同的奇偶校验块。RAID 6 是相当昂贵的存储选项。然而,当它需要一个大的和可靠的存储空间时,那么 RAID 6 是最好的选择之一,因为它可以在两块磁盘发生故障时保护数据。这可能发生在以下情况:

 

  • 阵列正在重建(所谓的重建时间)。
  • 由于操作者的错误而导致错误的磁盘被热插拔。

 

数据恢复方面的思考

       当RAID 5中缺少一个硬盘时,会有一定的速度损失,因为缺少的硬盘上存储的数据必须重新计算。然而,重新计算的速度仍然比读取一个物理损坏的硬盘要快得多。因此,您应该避免使用已知物理损坏(多个坏扇区或类似问题)的硬盘进行恢复。

 

       虽然 RAID 6 可以由控制器用N-2块硬盘重建,但我们分析RAID 6阵列时最好还是需要N-1块硬盘来分析恢复RAID6。
带延迟奇偶校验的RAID 5恢复

        一些控制器(如HP SmartArray)使用非标准的条带方案,称为延迟奇偶校验(DP)。

       实际上,使用了两个不同的块大小,一个用于奇偶校验,另一个用于数据。奇偶校验块大小是数据块大小的整数倍。因此,在RAID配置中出现了两个额外的参数--延迟和first delay。延迟参数表示多重性,即一个奇偶校验块中适合多少数据块;first delay表示第一个奇偶校验块中包含多少数据块。可能的延迟值有1、2、4、8、16、32,第一个延迟可以从1到延迟值。
 

RAID 5 with delayed parity

 

延迟奇偶校验的RAID的更多细节

 

延迟奇偶校验的RAID恢复比上面简单的模型稍微复杂一些。完整的模型包括起始偏移量,起始偏移量小于一个数据块。因此,除了磁盘顺序,还有7个数组参数:

 

  • 开始偏移量。
  • 数据块大小(对应于没有延迟的RAID中典型的块大小)。
  • 延迟(一个延迟奇偶校验块中的数据块数)。
  • Firstdelay(第一个延迟奇偶校验块中的数据块数)。
  • 在第一个块中的奇偶校验位置。
  • 旋转,它决定了奇偶校验块在数组中的位置变化。
  • 数据放置的类型(同步或异步)。 
 
RAID 5 with delayed parity
 
       请注意,偏移量和奇偶校验块开始的磁盘已经改变。偏移量从2变为5,第一个奇偶校验块的磁盘变成了磁盘1而不是磁盘2。如果无法指定第一个奇偶校验的磁盘,则偏移量增加,以便切断奇偶校验的第一整圈。在这个例子中,应该使用的偏移量是13。理论上讲,这样的转换会导致一些用户数据,本来在第一行的数据,不能被工具读取(由于负地址)。在这个例子中,灰色标记的数据块,从0到5,都会丢失。如果无法设置奇偶校验开始的磁盘,我们将不得不使用偏移量为13.在这种情况下,从1到21(含21)的数据块将丢失。

       在实践中,控制器元数据而不是用户数据经常被放置在这些块中,因此所有的用户数据仍然可以访问。
 

RAID 6 恢复和 RAID 6 参数

 

        RAID 6布局利用两种不同的奇偶校验功能,这有助于RAID 6阵列在双磁盘故障下生存。尽管RAID6被认为比RAID5更可靠,但控制器故障的概率是一样的。因此,如果您的RAID6出现故障,这很可能是由于控制器故障造成的。为了从控制器故障中恢复RAID6,您需要知道或恢复以下参数:

 

  • 成员盘的数量
  • 磁盘顺序以及哪个磁盘是阵列中的第一个磁盘。
  • 块大小。
  • 成员盘的起始偏移量。
  • 每个奇偶函数的位置。
  • 奇偶函数的旋转。
  • 用于计算第二个奇偶校验函数的算法。
  • 奇偶校验函数的模式。

 

        我们只有知道这些参数才能成功重建RAID6。

 

RAID 6 的复杂性

        RAID 6比RAID 5复杂得多。

        第一个奇偶校验函数(XOR,图中表示为P)自然来自RAID5。然而,第二个奇偶校验函数(Q)没有被广泛接受的标准。通常情况下,使用Reed-Solomon码或其一些变体。   Reed-Solomon码取决于输入的顺序。这又产生了四种变化:从左到右或从右到左,以及如果P或Q先计算。有几种布局的变化,可容纳两个奇偶函数。

 

RAID6 P-bottom and P-top layouts

 

RAID 6 WidePace (Promise hardware setup)