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 年以来又扩展了 RAID0
和 RAID6
。近年来,存储厂商不断推出诸如 RAID7
、 RAID10/01
、 RAID50
、 RAID53
、 RAID100
等 RAID
等级。但这些并无统一的标准。目前业界公认的标准是 RAID0
~ RAID5
,除 RAID2
外的四个等级被定为工业标准,而在实际应用领域中使用最多的 RAID 等级是 RAID0
、 RAID1
、 RAID3
、 RAID5
、 RAID6
和 RAID10
。
一、RAID 0
RAID 0
实际上并没有提供任何冗余,它只是将多个磁盘组成一个大容量的磁盘。使用RAID 0
后,多个磁盘可以同时读写,所以提高了磁盘的读写性能。RAID 0
至少需要两块磁盘。
优点:
- 可以将多个磁盘当成一个大容量的磁盘来使用;
- 读写性能有极大的提高;
缺点:
- 增加了数据的丢失风险,一旦阵列中的一块磁盘故障,整个阵列的数据将无法恢复;
- 不建议将其作为系统盘,也不建议用来保存有价值的数据;
二、RAID 1
RAID 1
在写入数据的时候,会同时将数据写入工作盘
和镜像盘
,每一个工作盘
都有一个对应的镜像盘
,工作盘
和镜像盘
保存的数据内容是完全一样的。当工作盘
发生故障时,可以从镜像盘
读取数据。显然,使用RAID 1
后,磁盘的利用率为50%
,即有效存储空间变成原来的一半了。RAID 1
至少需要两块磁盘。
优点:
- 读取速度有极大的提高(有时甚至比
RAID 0
更高); - 通过镜像的方式提供了
冗余
功能;
- 读取速度有极大的提高(有时甚至比
缺点:
- 与
RAID 0
相比,RAID 1
的写速度较低; - 通过镜像的方式提供冗余功能,意味着在冗余上花费了很多成本;
- 与
三、RAID 2
RAID 2
称为纠错海明码磁盘阵列
,其设计思想是利用海明码
实现数据校验冗余。海明码
是一种在原始数据中加入若干校验码来进行错误检测和纠正的编码技术,其中第 2n
位( 1, 2, 4, 8, … )是校验码
,其他位置是数据码
。因在 RAID 2
中,数据按位存储,每块磁盘存储一位
数据编码,磁盘数量取决于所设定的数据存储宽度
,可由用户设定。下图中展示了数据宽度为 4
的 RAID 2
,它需要 4
块数据盘
和 3
块校验盘
。如果是 64 位数据宽度
,则需要 64 块数据盘
和 7 块校验盘
。可见, RAID2
的数据宽度越大,存储空间利用率越高,但同时需要的磁盘数量也越多。
优点:
- 海明码自身具备纠错能力,可以在数据发生错误的情况下对纠正错误,保证数据的安全性;
- 数据传输性能相当高,设计复杂性要低于
RAID 3
、RAID 4
和RAID 5
;
缺点:
- 海明码的数据冗余开销太大,数据输出性能受阵列中最慢磁盘驱动器的限制;
- 海明码是按位运算,数据重建非常耗时;
- 大部分磁盘驱动器本身都具备了纠错功能,
RAID 2
使用海明码的数据纠错功能略显多余; RAID2
在实际中很少应用,没有形成商业产品,目前主流存储磁盘阵列均不提供RAID2
支持;
四、RAID 3
RAID 3
使用专用校验盘
的并行访问阵列
,它采用一个专用的磁盘作为校验盘
,其余磁盘作为数据盘
,数据以位或字节为单位进行分割存储在各个数据盘中。RAID 3
至少需要三块磁盘
,不同磁盘上同一带区的数据作 XOR 校验
,校验值写入校验盘
中。
- 优点:
- 磁盘状态完好时,读性能与
RAID 0
完全一致,并行从多个磁盘条带读取数据,性能非常高,同时还提供了数据容错
能力; - 某一磁盘出现故障,不会影响数据读取,可以借助校验数据和其他完好数据来重建数据;
- 校验盘只需要一个,阵列的存储空间利用率高,并且由于并行访问的特征,能够高性能的高带宽的大量读写;
- 适用大容量数据的顺序访问应用,如影像处理、流媒体服务等;
- 磁盘状态完好时,读性能与
- 缺点:
- 写入数据时,必须计算与所有同条带的校验值,并将新校验值写入校验盘中,一次写操作包含了写数据块、读取同条带的数据块、计算校验值、写入校验值等多个操作,系统开销大,性能低;
- 出现坏盘时性能会大幅下降;
五、RAID 4
RAID 4
与 RAID 3
的原理大致相同,区别在于条带化
的方式不同。 RAID 4
按照块方式
来组织数据,写操作只涉及当前数据盘
和校验盘
两个盘,多个 I/O 请求可以同时得到处理,提高了系统性能。RAID 4
在不同磁盘上的同级数据块同样使用XOR校验
,结果存储在校验盘中。写入数据时, RAID 4
按这种方式把各磁盘上的同级数据的校验值写入校验盘,读取时进行即时校验。因此,当某块磁盘的数据块损坏, RAID 4
可以通过校验值以及其他磁盘上的同级数据块进行数据重建。
- 优点:
- 按块存储可以保证单块的完整性,可以避免受到其他磁盘上同条带产生的不利影响;
- 多个
I/O
请求可以同时得到处理,提供了非常好的读性能;
- 缺点:
- 对于写操作,
RAID 4
只能一个磁盘一个磁盘地写,并且还要写入校验数据,因此写性能比较差; - 实际应用中很少见,主流存储产品也很少使用
RAID 4
保护; - 随着成员磁盘数量的增加,单一校验盘的瓶颈会十分突出,往往容易成为系统性能的瓶颈;
- 对于写操作,
六、RAID 5
RAID 5
使用奇偶校验数据
来保障数据的恢复。通过将一个(假设为A)磁盘的校验数据保存在另一个(假设为B)磁盘上,使得在如果磁盘A
发生了故障,则可以通过磁盘B
上保存的校验数据恢复。显然RAID 5
在单个磁盘发生故障时,可以恢复数据。RAID 5至少需要三块磁盘。
- 优点:
- 提供类似
RAID 0
的读取速度; - 提供单个磁盘故障的恢复能力;
- 磁盘空间利用率要比
RAID 1
高,存储成本相对较低,是目前运用较多的一种解决方案;
- 提供类似
- 缺点:
- 由于需要进行奇偶校验,所以写入数据的速度比对单个磁盘进行写入操作慢;
- 磁盘阵列的容量必须一样大,当容量不同时,会以最小的容量为准;
七、RAID 6
RAID 6
引入了双重校验
的概念,它可以保护阵列中同时出现两个磁盘失效时,阵列仍能够继续工作,不会发生数据丢失。 RAID 6
是在RAID 5
的基础上为了进一步增强数据保护而设计的一种 RAID
方式,它可以看作是一种扩展的RAID 5
等级。RAID 6
思想最常见的实现方式是采用两个独立的校验算法,假设称为P
和Q
,校验数据可以分别存储在两个
不同的校验盘
上,或者分散存储在所有成员磁盘中。当两个磁盘同时失效时,即可通过求解两元方程来重建两个磁盘上的数据。
- 优点:
- 提供两个磁盘故障的恢复能力;
- 具有快速的读取性能、更高的容错能力;
- 主要用于对数据安全等级要求非常高的场合;
- 缺点:
- 写性能也较差;
- 由于支持数据的恢复以及校验数据的恢复,因此实现代价很高,控制器的设计也比其他方案更复杂、更昂贵;
八、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 组合级别
9.1、RAID 01
RAID 0+1
是将RAID 0
和RAID 1
有效的组合到了一起,先使用RAID 0
将磁盘进行条带化,然后使用RAID 1
将磁盘镜像化,分为工作盘
和镜像盘
。RAID 0+1
至少需要四块磁盘。
- 优点:
- 兼容
RAID 0
和RAID 1
的优点,即具有较好的性能和冗余; - 比
RAID 1+0
具有更好的容错能力;
- 兼容
- 缺点:
- 实现比较复杂,成本比较高;
- 磁盘的利用率仅为为
50%
;
9.2、RAID 10
RAID 1+0
是将RAID 1
和RAID 0
有效的组合到了一起。先使用RAID 1
将磁盘镜像化,然后使用RAID 0
将镜像化后的磁盘进行条带化。RAID 1+0
至少需要四块
磁盘。
优点:
- 兼容
RAID 0
和RAID 1
的优点,即具有较好的性能和冗余;
- 兼容
缺点:
- 实现比较复杂,成本比较高;
- 磁盘的利用率仅为
50%
;
9.3、RAID 30/53
RAID 30
也称为专用奇偶位阵列条带,具有RAID 0
和RAID 3
的特性,由两组RAID 3
的磁盘(每组3个磁盘)组成阵列,使用专用奇偶位,而这两种磁盘再组成一个RAID 0
的阵列,实现跨磁盘抽取数据。RAID 30
提供容错能力,并支持更大的卷尺寸。像RAID 10
一样,RAID 30
也提供高可靠性。
- 优点:
- 提供组内单个磁盘故障的恢复能力;
- 结合
RAID 3
和RAID0
,实现数据的高可靠性,用RAID 0
的速度加RAID 3
的安全;
- 缺点:
- 数据恢复比较复杂;
9.4、RAID 50
RAID 50
是RAID 5
与RAID 0
的结合。它由两组RAID 5
磁盘组成,每一组都使用了分布式奇偶位,而两组硬盘再组建成RAID 0
,实现跨磁盘抽取数据。每个RAID 5
子磁盘组要求至少三块
硬盘,最少需要六块
磁盘,它最适合需要高可靠性存储、高读取速度、高数据传输性能的应用。这些应用包括事务处理和有许多用户存取小文件的办公应用程序。
优点:
- 具备更高的容错能力;
- 提供组内单个磁盘故障的恢复能力;
- 具备更快数据读取速率的潜力;
缺点:
- 故障后重建信息的时间比镜像配置情况下要长;
9.5、RAID 60
RAID 60
是 RAID 6
与RAID 0
的结合,将RAID 0
直接块级条带化与RAID 6
的分布式双奇偶校验相结合。每个RAID 6
集中的两个磁盘可能会在没有数据丢失的情况下发生故障。此外,在一个RAID 6
集中重建单个磁盘时磁盘故障不会导致数据丢失。至少需要八个磁盘才能实现。
优点:
- 具备更高的容错能力;
- 提供
RAID 6
组内单个磁盘故障的恢复能力; - 具备更快数据读取速率的潜力;
缺点:
- 由于奇偶校验计算的额外开销,写入方面略差于
RAID 50
;
- 由于奇偶校验计算的额外开销,写入方面略差于
9.6、RAID 100
RAID 100
也称为 RAID 10+0
,是RAID 10
与RAID 0
的组合,即条带化的 RAID10
。RAID100
最顶层的 RAID 0
,即条带化任务,通常由软件层来完成。RAID 100
突破了单个 RAID 控制器对物理磁盘数量的限制,可以获得更高的 I/O 负载均衡, I/O 压力分散到更多的磁盘上,进一步提高随机读性能,并有效降低热点盘故障风险。因此, RAID 100
通常是大数据库的最佳选择。
优点:
- 突破了单个
RAID
控制器对物理磁盘数量的限制,可以获得更高的 I/O 负载均衡; I/O
压力分散到更多的磁盘上,进一步提高随机读性能;- 有效降低热点盘故障风险;
- 突破了单个
缺点:
- 实现比较复杂,成本比较高;
- 磁盘的利用率仅为
50%
;
十、数据表格对比
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% |
参考网址: