📜  RAID(独立磁盘冗余阵列)

📅  最后修改于: 2021-09-10 01:23:08             🧑  作者: Mango

RAID 或“独立磁盘冗余阵列”是一种技术,它使用多个磁盘的组合而不是使用单个磁盘来提高性能、数据冗余或两者兼而有之。该术语由加州大学伯克利分校的 David Patterson、Garth A. Gibson 和 Randy Katz 于 1987 年创造。

为什么数据冗余?

数据冗余虽然占用了额外的空间,但增加了磁盘的可靠性。这意味着,在磁盘故障的情况下,如果相同的数据也备份到另一个磁盘上,我们可以检索数据并继续操作。另一方面,如果数据在没有 RAID 技术的情况下仅分布在多个磁盘上,则单个磁盘的丢失会影响整个数据。

RAID 系统的关键评估点

  • 可靠性:系统能容忍多少个磁盘故障?
  • 可用性:处于正常运行模式的系统占总会话时间的多少,即系统在实际使用中的可用性如何?
  • 性能:响应时间有多好?吞吐量(处理工作的速率)有多高?请注意,性能包含很多参数,而不仅仅是这两个。
  • 容量:给定一组 N 个磁盘,每个磁盘有 B 个块,用户可以使用多少可用容量?

RAID 对底层系统非常透明。这意味着,对于主机系统,它表现为一个单独的大磁盘,表现为一个线性块阵列。这允许使用 RAID 替换旧技术,而无需对现有代码进行太多更改。

不同的 RAID 级别

RAID-0(条带化)

  • 块跨磁盘“条带化”。

    突袭0

    在图中,块“0,1,2,3”形成一个条纹。

  • 不是一次只将一个块放入磁盘,我们可以先将两个(或更多)块放入磁盘中,然后再进行下一个。

    raid0_chunk

评估:

  • 可靠性:0
    没有重复的数据。因此,一旦丢失的块就无法恢复。
  • 容量:N*B
    整个空间都用于存储数据。由于没有重复,每个有 B 个块的 N 个磁盘被充分利用。

RAID-1(镜像)

  • 每个块的多个副本存储在单独的磁盘中。因此,每个块都有两个(或更多)副本,位于不同的磁盘上。
    突袭1

    上图显示了镜像级别为 2 的 RAID-1 系统。

  • RAID 0 无法容忍任何磁盘故障。但是 RAID 1 具有可靠性。

评估:

假设 RAID 系统的镜像级别为 2。

  • 可靠性:1 至 N/2
    可以肯定地处理 1 个磁盘故障,因为该磁盘的块将在其他磁盘上具有重复项。如果我们足够幸运并且磁盘 0 和 2 发生故障,那么这可以再次处理,因为这些磁盘的块在磁盘 1 和 3 上有重复。因此,在最好的情况下,可以处理 N/2 个磁盘故障。
  • 容量:N*B/2
    只有一半的空间用于存储数据。另一半只是已经存储数据的镜像。

RAID-4(具有专用奇偶校验的块级条带化)

  • 这不是复制数据,而是采用基于奇偶校验的方法。

    突袭4

    在图中,我们可以观察到专用于奇偶校验的一列(磁盘)。

  • 奇偶校验是使用简单的 XOR函数计算的。如果数据位是 0,0,0,1,奇偶校验位是 XOR(0,0,0,1) = 1。如果数据位是 0,1,1,0,奇偶校验位是 XOR(0,1 ,1,0) = 0。一个简单的方法是偶数个 1 导致奇偶校验 0,奇数个 1 导致奇偶校验 1。

    奇偶校验

    假设在上图中,由于某些磁盘故障,C3 丢失。然后,我们可以通过查看所有其他列的值和奇偶校验位来重新计算存储在 C3 中的数据位。这使我们能够恢复丢失的数据。


评估:

  • 可靠性:1
    RAID-4 允许最多恢复 1 个磁盘故障(由于奇偶校验的工作方式)。如果多个磁盘出现故障,则无法恢复数据。
  • 容量:(N-1)*B
    系统中的一个磁盘被保留用于存储奇偶校验。因此,(N-1) 个磁盘可用于数据存储,每个磁盘具有 B 个块。

RAID-5(具有分布式奇偶校验的块级条带化)

  • 这是对 RAID-4 系统的轻微修改,其中唯一的区别是奇偶校验在驱动器之间轮换。

    突袭5

    在图中,我们可以注意到奇偶校验位是如何“旋转”的。

  • 引入它是为了使随机写入性能更好。

评估:

  • 可靠性:1
    RAID-5 允许最多恢复 1 个磁盘故障(由于奇偶校验的工作方式)。如果多个磁盘出现故障,则无法恢复数据。这与 RAID-4 相同。
  • 容量:(N-1)*B
    总的来说,相当于一个磁盘的空间用于存储奇偶校验。因此,(N-1) 个磁盘可用于数据存储,每个磁盘具有 B 个块。

其他 RAID 级别呢?

RAID-2 由使用汉明码奇偶校验的位级条带化组成。 RAID-3 由具有专用奇偶校验的字节级条带化组成。这两个不太常用。
RAID-6 是最近的一项改进,它包含分布式双奇偶校验,它涉及具有 2 个奇偶校验位的块级条带化,而不是仅分布在所有磁盘上的 1 个。也有混合 RAID,它利用一个接一个嵌套的多个 RAID 级别来满足特定要求。

参考:

  • https://en.wikipedia.org/wiki/RAID
  • Remzi H. Arpaci-Dusseau 的三部曲中的操作系统。