架构师_程序员_码农网

查看: 71|回复: 0

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

[复制链接]
发表于 2021-10-3 20:57:56 | 显示全部楼层
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等级对比

QQ截图20211003205341.jpg

RAID 配置

级别/说明
容错能力
优点
缺点
RAID 0

跨驱动器映射数据,以创建大型虚拟磁盘。由于每个物理磁盘只处理请求的一部分,因此可以提供更高的性能。但是,一个驱动器出现故障将导致虚拟磁盘 (VD) 无法访问,并且数据会永久丢失。
更卓越的性能
附加存储
不得用于关键数据
RAID 1

镜像数据,将数据冗余存储在两个驱动器上。如果一个磁盘出现故障,另一个磁盘将接替它作为主驱动器工作。
磁盘错误
单个磁盘故障
高读取性能
在发生驱动器故障后快速恢复
数据冗余
磁盘开销大
容量有限
RAID 5

跨驱动器映射数据,并将每个数据条带的奇偶校验位存储在 VD 中的不同驱动器上。奇偶校验位包含的信息,可在单个磁盘出现故障时,用于从其他磁盘重建故障磁盘的数据。
磁盘错误
单个磁盘故障
有效利用驱动器容量
高读取性能
中高写入性能
中等磁盘故障影响
由于重新计算奇偶校验,因而导致重建时间变长
RAID 6

跨驱动器映射数据,并将每个数据条带的奇偶校验位存储在 VD 中的不同驱动器上。与 RAID 5 不同,RAID 6 进行两次奇偶校验计算(P 和 Q),使其能够承受双磁盘故障。
数据冗余
高读取性能
磁盘错误
双磁盘故障
由于进行两次奇偶校验计算,因而导致写入性能降低
由于相当于将 2 个磁盘用于奇偶校验,因此会产生额外的成本
RAID 10

镜像集上的条带。磁盘开销大,但却是符合高性能、冗余以及发生驱动器故障时的快速恢复等需求的出色解决方案。
磁盘错误
每个镜像集一个磁盘故障
高读取性能
最大可支持具有 192 个驱动器的 RAID 组
成本最高
RAID 50

RAID 5 集上的条带。由于减少了每次奇偶校验计算的磁盘读取,因而可以通过 RAID 5 提升性能,提升幅度取决于配置。
磁盘错误
每个跨度一个磁盘故障
高读取性能
中高写入性能
最大可支持具有 192 个驱动器的 RAID 组
中等磁盘故障影响
由于重新计算奇偶校验,因而导致重建时间变长
RAID 60

RAID 6 集上的条带。由于减少了每次奇偶校验计算的磁盘读取,因而可以通过 RAID 6 提升性能,提升幅度取决于配置。
磁盘错误
每个跨度两个磁盘故障
高读取性能
最大可支持具有 192 个驱动器的 RAID 组
由于进行两次奇偶校验计算,因而导致写入性能降低
由于相当于将 2 个磁盘用于奇偶校验,因此会产生额外的成本


5.RAID 软硬件区别

软 RAID

软 RAID 没有专用的控制芯片和 I/O 芯片,完全由操作系统和 CPU 来实现所的 RAID 的功能。现代操作系统基本上都提供软 RAID 支持,通过在磁盘设备驱动程序上添加一个软件层,提供一个物理驱动器与逻辑驱动器之间的抽象层。目前,操作系统支持的最常见的 RAID 等级有 RAID0 、 RAID1 、 RAID10 、 RAID01 和 RAID5 等。比如, Windows Server 支持 RAID0 、 RAID1 和 RAID5 三种等级, Linux 支持 RAID0 、 RAID1 、 RAID4 、 RAID5 、 RAID6 等, Mac OS X Server 、 FreeBSD 、 NetBSD 、 OpenBSD 、 Solaris 等操作系统也都支持相应的 RAID 等级。

软 RAID 的配置管理和数据恢复都比较简单,但是 RAID 所有任务的处理完全由 CPU 来完成,如计算校验值,所以执行效率比较低下,这种方式需要消耗大量的运算资源,支持 RAID 模式 较少,很难广泛应用。

软 RAID 由操作系统来实现,因此系统所在分区不能作为 RAID 的逻辑成员磁盘,软 RAID 不能保护系统盘 D 。对于部分操作系统而言, RAID 的配置信息保存在系统信息中,而不是单独以文件形式保存在磁盘上。这样当系统意外崩溃而需要重新安装时, RAID 信息就会丢失。另外,磁盘的容错技术并不等于完全支持在线更换、热插拔或热交换,能否支持错误磁盘的热交换与操作系统实现相关,有的操作系统热交换。

硬 RAID

硬 RAID 拥有自己的 RAID 控制处理与 I/O 处理芯片,甚至还有阵列缓冲,对 CPU 的占用率和整体性能是三类实现中最优的,但实现成本也最高的。硬 RAID 通常都支持热交换技术,在系统运行下更换故障磁盘。

硬 RAID 包含 RAID 卡和主板上集成的 RAID 芯片, 服务器平台多采用 RAID 卡。 RAID 卡由 RAID 核心处理芯片( RAID 卡上的 CPU )、端口、缓存和电池 4 部分组成。其中,端口是指 RAID 卡支持的磁盘接口类型,如 IDE/ATA 、 SCSI 、 SATA 、 SAS 、 FC 等接口。

软硬混合 RAID

软 RAID 性能欠佳,而且不能保护系统分区,因此很难应用于桌面系统。而硬 RAID 成本非常昂贵,不同 RAID 相互独立,不具互操作性。因此,人们采取软件与硬件结合的方式来实现 RAID ,从而获得在性能和成本上的一个折中,即较高的性价比。

这种 RAID 虽然采用了处理控制芯片,但是为了节省成本,芯片往往比较廉价且处理能力较弱, RAID 的任务处理大部分还是通过固件驱动程序由 CPU 来完成。


6.RAID应用选择

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




上一篇:【实战】Linux 环境下定时备份远程 MySQL 数据库
下一篇:Docker MySQL 解决 Too many connections 问题
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2021-10-18 15:42

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表