RAID技术讲解-RAID0、RAID1、RAID3、RAID5、RAID6、RAID10对比

Linux 6842℃

1.RAID概述

1988年美国加州大学伯克利分校的提出了RAID概念(RedundantArrayofInexpensiveDisks廉价冗余磁盘阵列),随着磁盘成本的不断降低,RAID变成了(RedundantArrayofIndependentDisks独立磁盘冗余阵列),但实质内容没有改变。SNIA、Berkeley等组织机构把RAID0~RAID6七个等级定为标准的RAID等级,标准RAID可以组合成其他RAID等级,而实际中使用最多的等级是RAID0、RAID1、RAID3、RAID5、RAID6和RAID10。RAID每一个等级代表一种实现方法和技术,等级之间并无高低之分。在实际应用中,应当根据用户的数据应用特点,综合考虑可用性、性能和成本来选择合适的RAID等级,以及具体的实现方式。

从实现角度看,RAID主要分为软RAID、硬RAID以及软硬混合RAID三种。软RAID所有功能均由操作系统和CPU来完成,效率自然最低。硬RAID配备了专门的RAID控制/处理芯片和I/O处理芯片以及阵列缓冲,不占用CPU资源,但成本很高。软硬混合RAID具备RAID控制/处理芯片,但缺乏I/O处理芯片,需要CPU和驱动程序来完成,性能和成本在软RAID和硬RAID之间。

2.基本原理

RAID是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能和数据冗余的技术。RAID是一类多磁盘管理技术,其向主机环境提供了成本适中、数据可靠性高的高性能存储。RAID的两个关键目标是提高数据可靠性和I/O性能。磁盘阵列中,数据分散在多个磁盘中,然而对于计算机系统来说,就像一个单独的磁盘。通过把相同数据同时写入到多块磁盘(典型地如镜像),或者将计算的校验数据写入阵列中来获得冗余能力,当单块磁盘出现故障时可以保证不会导致数据丢失。

RAID中主要有三个关键概念和技术:镜像(Mirroring)、数据条带(DataStripping)和数据校验(Dataparity):

  • 镜像,将数据复制到多个磁盘,一方面可以提高可靠性,另一方面可并发从两个或多个副本读取数据来提高读性能。显而易见,镜像的写性能要稍低,确保数据正确地写到多个磁盘需要更多的时间消耗。
  • 数据条带,将数据分片保存在多个不同的磁盘,多个数据分片共同组成一个完整数据副本,这与镜像的多个副本是不同的,它通常用于性能考虑。数据条带具有更高的并发粒度,当访问数据时,可以同时对位于不同磁盘上数据进行读写操作,从而获得非常可观的I/O性能提升。
  • 数据校验,利用冗余数据进行数据错误检测和修复,冗余数据通常采用海明码、异或操作等算法来计算获得。利用校验功能,可以很大程度上提高磁盘阵列的可靠性、鲁棒性和容错能力。不过,数据校验需要从多处读取数据并进行计算和对比,会影响系统性能。

不同等级的RAID采用一个或多个以上的三种技术,来获得不同的数据可靠性、可用性和I/O性能。至于设计何种RAID(甚至新的等级或类型)或采用何种模式的RAID,需要在深入理解系统需求的前提下进行合理选择,综合评估可靠性、性能和成本来进行折中的选择。

总体说来,RAID主要优势有:大容量、高性能、可靠性、可管理性。

3.RAID等级

JBOD(JustaBunchOfDisks)不是标准的RAID等级,它通常用来表示一个没有控制软件提供协调控制的磁盘集合。JBOD将多个物理磁盘串联起来,提供一个巨大的逻辑磁盘。存储性能完全等同于单块磁盘,而且也不提供数据安全保护。可用存储容量等于所有成员磁盘的存储空间之和。

RAID0称为条带,是一种简单的、无数据校验的数据条带化技术。性能在所有RAID等级中是最高的。不提供任何形式的冗余策略。100%利用存储空间。

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

RAID2称为海明码磁盘阵列,其设计思想是利用海明码实现数据校验冗余。数据宽度越大,存储空间利用率越高,但同时需要的磁盘数量也越多。自身具备纠错能力,但是,海明码的数据冗余开销太大,数据重建非常耗时,因此RAID2在实际中很少应用。

RAID3称为专用奇偶校验条带,它采用一个专用的磁盘作为校验盘,其余磁盘作为数据盘,数据按位可字节的方式交叉存储到各个数据盘中。RAID3至少需要三块磁盘。

RAID4与RAID3的原理大致相同。提供了非常好的读性能,但写性能比较差。而且随着成员磁盘数量的增加,校验盘的系统瓶颈将更加突出。在实际应用中很少见,主流存储产品也很少使用RAID4保护。

RAID5称为分布奇偶校验条带,应该是目前最常见的RAID等级,原理与RAID4相似,但不存在RAID4中的并发写操作时的校验盘性能瓶颈问题。

RAID6称为双重奇偶校验条带,引入双重校验的概念解决其他RAID等级无法解决的两个磁盘同时发生故障数据完整性问题。但是,它的成本要高于RAID5许多,写性能也较差,且设计和实施非常复杂。因此RAID6很少得到实际应用,一般是替代RAID10方案的经济性选择。

标准RAID等级各有优势和不足。把多个RAID等级组合起来,实现优势互补,弥补相互的不足,从而达到在性能、数据安全性等指标上更高的RAID系统。当然,组合等级的实现成本一般都非常昂贵,只是在少数特定场合应用。实际得到较为广泛应用的只有RAID01和RAID10两个等级。

RAID01是先做条带化再作镜像,本质是对物理磁盘实现镜像;而RAID10是先做镜像再作条带化,是对虚拟磁盘实现镜像。相同的配置下,通常RAID01比RAID10具有更好的容错能力。RAID01兼备了RAID0和RAID1的优点,整体磁盘利用率均仅为50%。

4.主流RAID等级对比

RAID 等级 RAID0 RAID1 RAID3 RAID5 RAID6 RAID10
别名 条带 镜像 专用奇偶校验条带 分布奇偶校验条带 双重奇偶校验条带 镜像加条带
容错性
冗余类型
热备份选择
读性能
随机写性能 一般 一般
连续写性能 一般
需要磁盘数 n≥1 2n (n≥1) n≥3 n≥3 n≥4 2n(n≥2)≥4
可用容量 ​ 全部 50% (n-1)/n (n-1)/n (n-2)/n 50%

5.RAID应用选择

RAID等级的选择主要有三个因素:数据可用性、I/O性能、成本。如果不要求可用性,选择RAID0以获得高性能。如果可用性和性能是重要的,而成本不是一个主要因素,则根据磁盘数量选择RAID1。如果可用性,成本和性能都同样重要,则根据一般的数据传输和磁盘数量选择RAID3或RAID5。在实际应用中,应当根据用户的数据应用特点和具体情况,综合考虑可用性、性能和成本来选择合适的RAID等级。

转载请注明:零五宝典 » RAID技术讲解-RAID0、RAID1、RAID3、RAID5、RAID6、RAID10对比