RAID技术的对比解析

D. A. Patterson 教授等人于1988年首次在论文 A Case of Redundant Array of Inexpensive Disks 中提出了RAID概念,即廉价冗余磁盘阵列( Redundant Array of Inexpensive Disks )。 RAID 的基本思想是将多个容量较小、相对廉价的磁盘进行有机组合,从而以较低的成本获得与昂贵大容量磁盘相当的容量、性能和可靠性。随着磁盘成本和价格的不断降低, RAID概念中的廉价已经毫无意义。因此, RAID 咨询委员会( RAID Advisory Board, RAB )决定用独立替代廉价 ,于时 RAID 变成了独立磁盘冗余阵列( Redundant Array of Independent Disks )。这里介绍了几种 RAID 的部署结构:RAID 0,RAID 1,RAID 2,RAID 3,RAID 4,RAID 5,RAID 6,RAID 7,RAID 01,RAID 10,RAID 30/53,RAID 50,RAID 60,RAID 100。

D. A. Patterson 等的论文中定义了 RAID1 ~ RAID5 原始 RAID 等级, 1988 年以来又扩展了 RAID0RAID6 。近年来,存储厂商不断推出诸如 RAID7RAID10/01RAID50RAID53RAID100RAID 等级。但这些并无统一的标准。目前业界公认的标准是 RAID0 ~ RAID5 ,除 RAID2 外的四个等级被定为工业标准,而在实际应用领域中使用最多的 RAID 等级是 RAID0RAID1RAID3RAID5RAID6RAID10

一、RAID 0

RAID 0实际上并没有提供任何冗余,它只是将多个磁盘组成一个大容量的磁盘。使用RAID 0后,多个磁盘可以同时读写,所以提高了磁盘的读写性能。RAID 0至少需要两块磁盘。

  • 优点:

    • 可以将多个磁盘当成一个大容量的磁盘来使用;
    • 读写性能有极大的提高;
  • 缺点:

    • 增加了数据的丢失风险,一旦阵列中的一块磁盘故障,整个阵列的数据将无法恢复;
    • 不建议将其作为系统盘,也不建议用来保存有价值的数据;
RAID 0

二、RAID 1

RAID 1在写入数据的时候,会同时将数据写入工作盘镜像盘,每一个工作盘都有一个对应的镜像盘工作盘镜像盘保存的数据内容是完全一样的。当工作盘发生故障时,可以从镜像盘读取数据。显然,使用RAID 1后,磁盘的利用率为50%,即有效存储空间变成原来的一半了。RAID 1至少需要两块磁盘。

  • 优点:

    • 读取速度有极大的提高(有时甚至比RAID 0更高);
    • 通过镜像的方式提供了冗余功能;
  • 缺点:

    • RAID 0相比,RAID 1的写速度较低;
    • 通过镜像的方式提供冗余功能,意味着在冗余上花费了很多成本;
RAID 1

三、RAID 2

RAID 2 称为纠错海明码磁盘阵列,其设计思想是利用海明码实现数据校验冗余。海明码是一种在原始数据中加入若干校验码来进行错误检测和纠正的编码技术,其中第 2n 位( 1, 2, 4, 8, … )是校验码,其他位置是数据码。因在 RAID 2 中,数据按位存储,每块磁盘存储一位数据编码,磁盘数量取决于所设定的数据存储宽度,可由用户设定。下图中展示了数据宽度为 4RAID 2 ,它需要 4数据盘3校验盘。如果是 64 位数据宽度,则需要 64 块数据盘7 块校验盘。可见, RAID2 的数据宽度越大,存储空间利用率越高,但同时需要的磁盘数量也越多。

  • 优点:

    • 海明码自身具备纠错能力,可以在数据发生错误的情况下对纠正错误,保证数据的安全性;
    • 数据传输性能相当高,设计复杂性要低于 RAID 3RAID 4RAID 5
  • 缺点:

    • 海明码的数据冗余开销太大,数据输出性能受阵列中最慢磁盘驱动器的限制;
    • 海明码是按位运算,数据重建非常耗时;
    • 大部分磁盘驱动器本身都具备了纠错功能,RAID 2使用海明码的数据纠错功能略显多余;
    • RAID2 在实际中很少应用,没有形成商业产品,目前主流存储磁盘阵列均不提供 RAID2 支持;
RAID 2

四、RAID 3

RAID 3使用专用校验盘并行访问阵列,它采用一个专用的磁盘作为校验盘,其余磁盘作为数据盘,数据以位或字节为单位进行分割存储在各个数据盘中。RAID 3至少需要三块磁盘,不同磁盘上同一带区的数据作 XOR 校验,校验值写入校验盘中。

  • 优点:
    • 磁盘状态完好时,读性能与RAID 0完全一致,并行从多个磁盘条带读取数据,性能非常高,同时还提供了数据容错能力;
    • 某一磁盘出现故障,不会影响数据读取,可以借助校验数据和其他完好数据来重建数据;
    • 校验盘只需要一个,阵列的存储空间利用率高,并且由于并行访问的特征,能够高性能的高带宽的大量读写;
    • 适用大容量数据的顺序访问应用,如影像处理、流媒体服务等;
  • 缺点:
    • 写入数据时,必须计算与所有同条带的校验值,并将新校验值写入校验盘中,一次写操作包含了写数据块、读取同条带的数据块、计算校验值、写入校验值等多个操作,系统开销大,性能低;
    • 出现坏盘时性能会大幅下降;
RAID 3

五、RAID 4

RAID 4RAID 3的原理大致相同,区别在于条带化的方式不同。 RAID 4按照块方式来组织数据,写操作只涉及当前数据盘校验盘两个盘,多个 I/O 请求可以同时得到处理,提高了系统性能。RAID 4在不同磁盘上的同级数据块同样使用XOR校验,结果存储在校验盘中。写入数据时, RAID 4按这种方式把各磁盘上的同级数据的校验值写入校验盘,读取时进行即时校验。因此,当某块磁盘的数据块损坏, RAID 4可以通过校验值以及其他磁盘上的同级数据块进行数据重建。

  • 优点:
    • 按块存储可以保证单块的完整性,可以避免受到其他磁盘上同条带产生的不利影响;
    • 多个I/O请求可以同时得到处理,提供了非常好的读性能;
  • 缺点:
    • 对于写操作, RAID 4只能一个磁盘一个磁盘地写,并且还要写入校验数据,因此写性能比较差;
    • 实际应用中很少见,主流存储产品也很少使用RAID 4保护;
    • 随着成员磁盘数量的增加,单一校验盘的瓶颈会十分突出,往往容易成为系统性能的瓶颈;
RAID 4

六、RAID 5

RAID 5使用奇偶校验数据来保障数据的恢复。通过将一个(假设为A)磁盘的校验数据保存在另一个(假设为B)磁盘上,使得在如果磁盘A发生了故障,则可以通过磁盘B上保存的校验数据恢复。显然RAID 5在单个磁盘发生故障时,可以恢复数据。RAID 5至少需要三块磁盘。

  • 优点:
    • 提供类似RAID 0的读取速度;
    • 提供单个磁盘故障的恢复能力;
    • 磁盘空间利用率要比RAID 1高,存储成本相对较低,是目前运用较多的一种解决方案;
  • 缺点:
    • 由于需要进行奇偶校验,所以写入数据的速度比对单个磁盘进行写入操作慢;
    • 磁盘阵列的容量必须一样大,当容量不同时,会以最小的容量为准;
RAID 5

七、RAID 6

RAID 6 引入了双重校验的概念,它可以保护阵列中同时出现两个磁盘失效时,阵列仍能够继续工作,不会发生数据丢失。 RAID 6是在RAID 5的基础上为了进一步增强数据保护而设计的一种 RAID 方式,它可以看作是一种扩展的RAID 5 等级。RAID 6思想最常见的实现方式是采用两个独立的校验算法,假设称为PQ ,校验数据可以分别存储在两个不同的校验盘上,或者分散存储在所有成员磁盘中。当两个磁盘同时失效时,即可通过求解两元方程来重建两个磁盘上的数据。

  • 优点:
    • 提供两个磁盘故障的恢复能力;
    • 具有快速的读取性能、更高的容错能力;
    • 主要用于对数据安全等级要求非常高的场合;
  • 缺点:
    • 写性能也较差;
    • 由于支持数据的恢复以及校验数据的恢复,因此实现代价很高,控制器的设计也比其他方案更复杂、更昂贵;
RAID 6

八、RAID 7

RAID 7 的全称是最优化的异步高 I/O 速率和高数据传输率,它与其他 RAID 等级有着明显区别。它不仅仅是一种技术,它还是一个独立存储计算机,自身带的操作系统和管理工具,完全可以独立运行。

RAID 7 的存储计算机操作系统是一套实时事件驱动操作系统,其主要用来进行系统初始化和安排 RAID 7 磁盘阵列的所有数据传输,并把它们转换到相应的物理存储驱动器上。 RAID 7 通过自身系统中的专用控制板来控制读写速度,存储计算机操作系统可使主机 I/O 传递性能达到最佳。如果一个磁盘出现故障, RAID7 还能够自动执行恢复操作,并可管理备份磁盘的重建过程。

RAID 7 突破了以往 RAID 标准的技术架构,采用了非同步访问,极大地减轻了数据写瓶颈,提高了 I/O 速度。 RAID 7 系统内置实时操作系统还可自动对主机发送过来的读写指令进行优化处理,以智能化方式将可能被读取的数据预先读入快速缓存中,从而大大减少了磁头的转动次数,提高存储系统的 I/O 速度。

RAID 7 可帮助用户有效地管理日益庞大的数据存储系统,并使系统的运行效率大大提高,满足不同用户的存储需求。但是, RAID 7 的成本比其他 RAID 等级要高许多。另外, RAID 7 已被某公司注册为商标,目前仅有一家公司提供 RAID 7 的产品,用户没有更多的选择。技术封闭,缺乏主流专业存储厂商的参与和研发严重制约了 RAID7 的发展。

  • 优点:
    • 读/写磁盘某一区域的数据时,可以迅速定位;
    • 采用了非同步访问,极大地减轻了数据写瓶颈,提高了 I/O 速度;
    • 可完全独立于主机运行,不占用主机CPU资源;
  • 缺点:
    • 成本比其他 RAID 等级要高许多;

RAID 7

九、RAID 组合级别

9.1、RAID 01

RAID 0+1是将RAID 0RAID 1有效的组合到了一起,先使用RAID 0将磁盘进行条带化,然后使用RAID 1将磁盘镜像化,分为工作盘镜像盘RAID 0+1至少需要四块磁盘。

  • 优点:
    • 兼容RAID 0RAID 1的优点,即具有较好的性能和冗余;
    • RAID 1+0具有更好的容错能力;
  • 缺点:
    • 实现比较复杂,成本比较高;
    • 磁盘的利用率仅为为50%
RAID 01

9.2、RAID 10

RAID 1+0是将RAID 1RAID 0有效的组合到了一起。先使用RAID 1将磁盘镜像化,然后使用RAID 0将镜像化后的磁盘进行条带化。RAID 1+0至少需要四块磁盘。

  • 优点:

    • 兼容RAID 0RAID 1的优点,即具有较好的性能和冗余;
  • 缺点:

    • 实现比较复杂,成本比较高;
    • 磁盘的利用率仅为50%
RAID 10

9.3、RAID 30/53

RAID 30也称为专用奇偶位阵列条带,具有RAID 0RAID 3的特性,由两组RAID 3的磁盘(每组3个磁盘)组成阵列,使用专用奇偶位,而这两种磁盘再组成一个RAID 0的阵列,实现跨磁盘抽取数据。RAID 30提供容错能力,并支持更大的卷尺寸。像RAID 10一样,RAID 30也提供高可靠性。

  • 优点:
    • 提供组内单个磁盘故障的恢复能力;
    • 结合 RAID 3RAID0,实现数据的高可靠性,用RAID 0的速度加RAID 3的安全;
  • 缺点:
    • 数据恢复比较复杂;
RAID 30

9.4、RAID 50

RAID 50RAID 5RAID 0的结合。它由两组RAID 5磁盘组成,每一组都使用了分布式奇偶位,而两组硬盘再组建成RAID 0,实现跨磁盘抽取数据。每个RAID 5子磁盘组要求至少三块硬盘,最少需要六块磁盘,它最适合需要高可靠性存储、高读取速度、高数据传输性能的应用。这些应用包括事务处理和有许多用户存取小文件的办公应用程序。

  • 优点:

    • 具备更高的容错能力;
    • 提供组内单个磁盘故障的恢复能力;
    • 具备更快数据读取速率的潜力;
  • 缺点:

    • 故障后重建信息的时间比镜像配置情况下要长;
RAID 50

9.5、RAID 60

RAID 60 RAID 6RAID 0的结合,将RAID 0直接块级条带化与RAID 6的分布式双奇偶校验相结合。每个RAID 6集中的两个磁盘可能会在没有数据丢失的情况下发生故障。此外,在一个RAID 6集中重建单个磁盘时磁盘故障不会导致数据丢失。至少需要八个磁盘才能实现。

  • 优点:

    • 具备更高的容错能力;
    • 提供RAID 6组内单个磁盘故障的恢复能力;
    • 具备更快数据读取速率的潜力;
  • 缺点:

    • 由于奇偶校验计算的额外开销,写入方面略差于RAID 50
RAID 60

9.6、RAID 100

RAID 100 也称为 RAID 10+0,是RAID 10RAID 0的组合,即条带化的 RAID10RAID100最顶层的 RAID 0 ,即条带化任务,通常由软件层来完成。RAID 100 突破了单个 RAID 控制器对物理磁盘数量的限制,可以获得更高的 I/O 负载均衡, I/O 压力分散到更多的磁盘上,进一步提高随机读性能,并有效降低热点盘故障风险。因此, RAID 100 通常是大数据库的最佳选择。

  • 优点:

    • 突破了单个 RAID 控制器对物理磁盘数量的限制,可以获得更高的 I/O 负载均衡;
    • I/O 压力分散到更多的磁盘上,进一步提高随机读性能;
    • 有效降低热点盘故障风险;
  • 缺点:

    • 实现比较复杂,成本比较高;
    • 磁盘的利用率仅为50%
RAID 100

十、数据表格对比

RAID等级 别名 容错性 冗余类型 热备份选择 读性能 随机写性能 连续写性能 磁盘数 可用容量
RAID 0 条带 n>=1 100%
RAID 1 镜像 2n(n>=1) 50%
RAID 2 海明码校验条带 n>=2
RAID 3 专用奇偶校验条带 n>=3 (n-1)/n
RAID 4
RAID 5 分布奇偶校验条带 一般 n>=3 (n-1)/n
RAID 6 双重奇偶校验条带 n>=4 (n-2)/n
RAID 7
RAID 01 50%
RAID 10 镜像加条带 一般 一般 2n(n>=4) 50%
RAID 30
RAID 50
RAID 60
RAID 100 条带化的 RAID10 50%

参考网址:

作者: bugwz
链接: https://bugwz.com/2019/11/25/raidX/
声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 咕咕