简介

RAID是(Redundent Array of Inexpensive Disks)的缩写,直译为"廉价冗余磁盘阵列",也简称为"磁盘阵列"。

后来RAID中的字母I被改作了Independent,RAID就成了"独立冗余磁盘阵列",但这只是名称的变化,实质性的内容并没有改变。

RAID是一种通过将多个物理硬盘驱动器组合成一个或多个逻辑单元来提高性能、数据冗余或两者兼有的技术。

RAID技术旨在通过在多个硬盘之间分布数据来防止由于硬盘故障而导致的数据丢失,并且可以显著提升数据读写速度。

实现角度分类

  • 软 RAID

软 RAID 所有功能均有操作系统和 CPU 来完成,没有独立的 RAID 控制 / 处理芯片和 I/O 处理芯片,效率自然最低。

  • 硬 RAID

硬 RAID 配备了专门的 RAID 控制 / 处理芯片和 I/O 处理芯片以及阵列缓冲,不占用 CPU 资源,但成本很高。

  • 软硬混合 RAID

软硬混合 RAID 具备 RAID 控制 / 处理芯片,但缺乏 I/O 处理芯片,需要 CPU 和驱动程序来完成,性能和成本 在软 RAID 和硬 RAID 之间。

RAID 等级

JBOD

JBOD(Just a Bunch of Disks)不是标准的 RAID 等级,它通常用来表示一个没有控制软件提供协调控制的磁盘集合。JBOD 将多个物理磁盘串联起来,提供一个巨大的逻辑磁盘。

JBOD的数据存放机制是由第一块磁盘开始按顺序往后存储,当前磁盘存储空间用完后,再依次往后面的磁盘存储数据。

JBOD 存储性能完全等同于单块磁盘,而却也不提供数据安全保护,它只是简单提供一种扩展存储空间的机制,JBOD 可用存储容量等于所有成员磁盘的存储空间之和。目前 JBOD 常指磁盘柜,而不论其是否提供 RAID 功能。

RAID0

RAID0 是一种简单的、无数据校验的数据条带华技术。实际上不是一种真正的 RAID,因为它并不提供任何形式的冗余数据策略。RAID0 将所在磁盘条带化后组成大容量的存储空间(如图2所示),将数据分散存储在所有磁盘中,以独立访问方式实现多块磁盘的并读访问。由于可以并发执行 I/O 操作,总线带宽得到充分利用。在加上不需要进行数据校验,RAID0 的性能在所有 RAID 等级中是最高的。理论上讲,一个由 n 块磁盘组成的 RAID0,它的读写性能是单个磁盘性能的 n 倍,但由于总线带宽等多种因素的限制,实际的性能提升低于理论值。

RAID0 具有低成本、高读写性能、100%的 高存储空间利用率等优点,但是它不提供数据冗余保护,一旦数据损坏,将无法恢复。因此,RAID0 一般适用于对性能要求严格但对数据安全性和可靠性不高的应用,如视频、音频存储、临时数据缓存空间等。

d2674d49298763c5e0106672b8413fb4_1718202306.0526_406.gif

RAID1

RAID1 称为镜像,它将数据完全易一致地分别写到工作磁盘和镜像磁盘,它的磁盘空间利用率为 50%。RAID1 在数据写入时,响应时间会有所音响,但是读数据的时候没有影响。RAID1 提供了最佳的数据保护,一旦工作磁盘发生故障,系统自动从镜像磁盘读取数据,不会影响用户工作。

RAID1 与 RAID0 刚好相反,为了增强数据安全性使两块磁盘数据呈现完全镜像,从而达到安全性好、技术简单、管理方便。RAID1 拥有完全容错的能力,但实现成本高。RAID1 应用于对顺序读写性能要求高以及数据保护极为重视的应用。如对邮件系统的数据保护。

bb432b5c4fb57331efac634d2544d656_1718202306.1891_529.gif

RAID2

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

海明码自身具备纠错能力,因此 RAID2 可以在数据发生错误的情况下对纠正错误,保证数据的安全性。它的数据传输性能相当高,设计复杂性要低于后面介绍的 RAID3、RAID4 和 RAID5.

但是,海明码的数据冗余开销太大,而且 RAID2 的数据输出性能受阵列中最慢磁盘驱动器的限制。再者,海明码是按位运算,RAID2 数据重建非常耗时。由于这些显著的缺陷,再加上大部分磁盘驱动器本身都具备了纠错功能,因此 RAID2 在实际中很少应用,没有形成商业产品,目前主流存储磁盘阵列均不提供 RAID2 支持。

RAID5

RAID5 应该是应该是目前最常见的 RAID 等级,它的原理与 RAID4 相似,区别在于校验数据分布在阵列中的所有磁盘上,而没有采用专门的校验磁盘,对于数据和校验数据,它们的写操作可以同时发生在完全不同的磁盘上。因此,RAID5 不存在 RAID4 中的并发写操作时的校验盘性能瓶颈问题。另外,RAID5 还具备很好的扩展性。当阵列磁盘数量增加时,并行操作量的能力也随着增长,可比 RAID4 支持更多的磁盘,从而拥有更高的容量及更高的性能。

RAID5的磁盘上同时存储数据和校验数据,数据块和对应的校验信息保存在不同的磁盘上,当一个数据盘损坏的时,系统可以根据同一条带的其他数据块和对应的校验数据来重建损坏的数据。与其他 RAID 等级一样,重建数据时,RAID5 的性能会受到较大的影响。

RAID5 兼顾存储性能、数据安全和存储成本等各个方面因素,它可以理解为 RAID0 和 RAID1 的折中方案,是目前综合性能最佳的数据保护解决方案。RAID5 基本上可以满足大部分的存储应用需求,数据中心大多采用它作为应用数据的保护方案。

它的奇偶校验码存在于所有磁盘上,其中的 p0 代表第 0 带区的奇偶校验值,其它的意思也相同。

RAID5 的读出效率很高,写入效率一般,块式的集体访问效率不错。因为奇偶校验码在不同的磁盘上,所以提高了可靠性,允许单个磁盘出错。RAID 5 也是以数据的校验位来保证数据的安全,但它不是以单独硬盘来存放数据的校验位,而是将数据段的校验位交互存放于各个硬盘上。

这样,任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据。硬盘的利用率为n-1。但是它对数据传输的并行性解决不好,而且控制器的设计也相当困难。RAID 3 与RAID 5 相比,重要的区别在于 RAID 3 每进行一次数据传输,需涉及到所有的阵列盘。而对于 RAID 5 来说,大部分数据传输只对一块磁盘操作,可进行并行操作。

在 RAID 5 中有“写损失”,即每一次写操作,将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。RAID 5 的话,优点是提供了冗余性(支持一块盘掉线后仍然正常运行),磁盘空间利用率较高 (N-1/N) ,读写速度较快(N-1倍)。

RAID 5 最大的好处是在一块盘掉线的情况下,RAID 照常工作,相对于 RAID 0 必须每一块盘都正常才可以正常工作的状况容错性能好多了。

因此 RAID5 是 RAID 级别中最常见的一个类型。RAID 5 校验位即P位是通过其它条带数据做异或 (xor) 求得的。

计算公式为 P = D0 xor D1 xor D2 … xor Dn,其中 p 代表校验块,Dn 代表相应的数据块,xor 是数学运算符号异或。

d8cdc1b5715d3a4d7b60c3474389b83b_1718202306.5874_199.gif

RAID 10/01

高可靠性与高效磁盘结构

这种结构无非是一个带区结构加一个镜象结构,因为两种结构各有优缺点,因此可以相互补充,达到既高效又高速还可以互为镜像的目的。

可以结合两种结构的优点和缺点来理解这种新结构。这种新结构的价格高,可扩充性不好。主要用于容量不大,但要求速度和差错控制的数据库中。

其中可分为两种组合:RAID 10 和 RAID 01

RAID 10 是先镜射再分区数据。是将所有硬盘分为两组,视为是 RAID 0 的最低组合,然后将这两组各自视为 RAID 1 运作。

RAID 10 有着不错的读取速度,而且拥有比 RAID 0 更高的数据保护性。

0e17f53bbe0127c1ed8d36f535a6f232_1718202307.0235_713.gif

RAID 01 则是跟 RAID 10 的程序相反,是先分区再将数据镜射到两组硬盘。它将所有的硬盘分为两组,变成 RAID 1 的最低组合,而将两组硬盘各自视为 RAID 0 运作。RAID 01 比起 RAID 10 有着更快的读写速度,不过也多了一些会让整个硬盘组停止运转的机率;因为只要同一组的硬盘全部损毁,RAID 01 就会停止运作,而 RAID 10 则可以在牺牲 RAID 0 的优势下正常运作。

RAID 10 巧妙的利用了 RAID 0 的速度以及 RAID 1 的保护两种特性,不过它的缺点是需要的硬盘数较多,因为至少必须拥有四个以上的偶数硬盘才能使用。

RAID100

通常看作 RAID1+0+0,有时也称为 RAID10 + 0,条带化的 RAID10 。原理如图 10 所示。RAID100 的缺陷与 RAID10 相同,任意一个 RAID1 损坏一个磁盘不会发生数据丢失,但是剩下的磁盘存在单点故障的危险。最顶层的RAID0,即条带化任务,通常由软件层来完成。

RAID100 突破了单个 RAID 控制器对物理磁盘数量的限制,可以获得更高的 I/O 负载均衡,I/O 压力分散到更多的磁盘上,进一步提高随机读性能,并有效降低热点盘故障风险。因此,RAID100 通常是大数据库的最佳选择。

RAID级别

最小磁盘数

存储效率

容错能力

性能特点

适用场景

RAID 0

2

100%

高速读写

对性能要求高、数据不重要

RAID 1

2

50%

单盘故障恢复

高读取性能,写入一般

对数据安全性要求高

RAID 5

3

(n-1)/n

单盘故障恢复

较高读取性能,写入一般

平衡性能与安全性的场景

RAID 6

4

(n-2)/n

双盘故障恢复

读取性能良好,写入较慢

大规模存储、高安全性需求

RAID 10

4

50%

单组磁盘故障恢复

高速读写,高可靠性

高性能与高可靠性并重的场景

RAID 01

4

50%

单组磁盘故障恢复

高速读写,数据冗余

高性能与数据保护并重的场景

参考文章

https://blog.csdn.net/jin1476814059/article/details/147573090

https://befun.ink/detail/165.html

https://baijiahao.baidu.com/s?id=1801666018297883756&wfr=spider&for=pc

https://baijiahao.baidu.com/s?id=1801666018297883756&wfr=spider&for=pc