RAID介绍

RAID:

Redundant Arrays of Inexpensive(Independent)Disks 独立磁盘冗余阵列,将多个单独的物理磁盘以不同的方式组合成一个逻辑硬盘,从而提高了硬盘的读写性能和数据安全性,根据不同的组合方式可以分为不同的RAID级别。

RAID特点:

1、提高IO能力
  磁盘并行读写
2、提高耐用性
  实现磁盘冗余

RAID的实现方式:

1、外接式磁盘阵列:通过扩展卡提供适配能力
2、内接式RAID:主板集成RAID控制器,安装OS前在BIOS里配置
3、软件RAID:通过OS实现
注:目前RAID是服务器标配,因此现在一般为主板集成RAID卡

RAID作用:

1.把所有磁盘整合成一个大磁盘,在这个大磁盘上再分区放数据
2.多块盘放在一起可以有冗余(备份)

RAID的优点:

1、提高传输速率。RAID通过在多个磁盘上同时存储和读取数据来大幅提高存储系统的数据吞吐量(Throughput)。在RAID中,可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用RAID可以达到单个磁盘驱动器几倍、几十倍甚至上百倍的速率。这也是RAID最初想要解决的问题。因为当时CPU的速度增长很快,而磁盘驱动器的数据传输速率无法大幅提高,所以需要有一种方案解决二者之间的矛盾。RAID最后成功了。
2、通过数据校验提供容错功能。普通磁盘驱动器无法提供容错功能,如果不包括写在磁盘上的CRC(循环冗余校验)码的话。RAID容错是建立在每个磁盘驱动器的硬件容错功能之上的,所以它提供更高的安全性。在很多RAID模式中都有较为完备的相互校验/恢复的措施,甚至是直接相互的镜像备份,从而大大提高了RAID系统的容错度,提高了系统的稳定冗余性。

RAID有多种整合方式:RAID 0 1 3 5 6 10

RAID 0:

img

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

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

RAID 1:

img

只能两块盘(可以大小不一,容量为小的磁盘大小),一个磁盘使用,一个磁盘备份,有100%的冗余,成本高;
RAID 1称为镜像,它将数据完全一致地分别写到工作磁盘和镜像 磁盘,它的磁盘空间利用率为 50% 。 RAID 1在数据写入时,响应时间会有所影响,但是读数据的时候没有影响。 RAID 1提供了最佳的数据保护,一旦工作磁盘发生故障,系统自动从镜像磁盘读取数据,不会影响用户工作。

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

RAID 3:

img

特点:在字节层面进行奇偶校验和分条,具有独立的专用磁盘驱动器,根据所需的驱动器数量,利用n+1的方式存储校验信息。
应用:为视频图像、地球物理学、生命科学和其它顺序处理的应用程序提供良好性能。但是,RAID 3不能很好地适用于那些对多用户或I/O流进行并发操作的应用程序

RAID 5:

img

最少三块盘,容量为单块容量 X (块数-1),有奇偶校验数据,读写性能一般,读好一点,介于0与1之间;

RAID 5可以理解为是RAID 0和RAID 1的折衷方案,它兼顾了储存性能、数据安全和存储成本。RAID 5需要至少3块硬盘,它不是对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID 5的一个磁盘数据发生损坏后,可以利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。

RAID 5可以为系统提供数据安全保障,但保障程度要比镜像低而磁盘空间利用率要比镜像高。RAID 5具有和RAID 0相近似的数据读取速度,只是因为多了一个奇偶校验信息,写入数据的速度相对单独写入一块硬盘的速度略慢,若使用“回写高速缓存”可以让性能改善不少。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较便宜

RAID 6:

特点:利用双奇偶校验模式,对磁盘进行分条和旋转校验,旨在降低磁盘重建过程对数据可靠性的影响,尤其是使用大容量光纤通道和SATA磁盘驱动器时更是如此。RAID 6和其它多驱动器校验模式的问题在于,在写入数据或重建出现故障的磁盘驱动器时,需要校验奇偶,这时性能会受到影响。

应用:总体来说,如果你想实现高性能的读写操作,就要利用小型磁盘驱动器,避免使用RAID6。另一方面,如果你想存储大量数据,而存储点有可能需要重建,正确配置RAID 5和RAID 6,就能满足应用程序的需求

RAID 10:

最少四块盘,容量为全部容量的一半,读写性能较好,成本高;
优点:raid10能提供数据最好的安全性能,因为只要是处于不同组中的硬盘故障,其理论允许故障盘个数可以达到磁盘总数一半。数据仍然可以得到 保护。同时其条带化写入后镜像能提供很好的读写性能,其拥有raid0的高读取性能,同时其也拥有比较好的写性能。
缺点:磁盘空间利用率50%。
应用范围:多应用于要求高可用性和高数据安全性的数据库应用环境中

类型比较:

冗余:1>10>5>0
性能:0>10>5>1
成本:10>1>5>0

常用方式:

数据库服务器主库用RAID 10,从库用RAID 5/0
web服务器无太多数据时可用RAID 5、RAID 0(单盘)

常用级别比较图:

img

RAID组合等级

标准 RAID 等级各有优势和不足。自然地,我们想到把多个 RAID 等级组合起来,实现优势互补,弥补相互的不足,从而达到在性能、数据安全性等指标上更高的 RAID 系统。目前在业界和学术研究中提到的 RAID 组合等级主要有 RAID00 、 RAID01 、 RAID10 、 RAID100 、 RAID30 、 RAID50 、 RAID53 、 RAID60 ,但实际得到较为广泛应用的只有 RAID01 和 RAID10 两个等级。当然,组合等级的实现成本一般都非常昂贵,只是在少数特定场合应用。

1、RAID00

简单地说, RAID00 是由多个成员 RAID0 组成的高级 RAID0 。它与 RAID0 的区别在于, RAID0 阵列替换了原先的成员磁盘。可以把 RAID00 理解为两层条带化结构的磁盘阵列,即对条带再进行条带化。这种阵列可以提供更大的存储容量、更高的 I/O 性能和更好的 I/O 负均衡。

2、RAID01 和 RAID10

一些文献把这两种 RAID 等级看作是等同的,本文认为是不同的。 RAID01 是先做条带化再作镜像,本质是对物理磁盘实现镜像;而 RAID10 是先做镜像再作条带化,是对虚拟磁盘实现镜像。相同的配置下,通常 RAID01 比 RAID10 具有更好的容错能力

RAID01 兼备了 RAID0 和 RAID1 的优点,它先用两块磁盘建立镜像,然后再在镜像内部做条带化。 RAID01 的数据将同时写入到两个磁盘阵列中,如果其中一个阵列损坏,仍可继续工作,保证数据安全性的同时又提高了性能。 RAID01 和 RAID10 内部都含有 RAID1 模式,因此整体磁盘利用率均仅为 50% 。

img
img

典型的 RAID01 (上)和 RAID10 (下)模型

3、RAID100

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

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

img

典型的 RAID100 模型

4、RAID30 ( RAID53 )、 RAID50 和 RAID60

这三种 RAID 等级与 RAID00 原理基本相同,区别在于成员 “ 磁盘 ” 换成了 RAID3 、 RAID5 和 RAID6 ,分别如图 11 、 12 、 13 所示。其中, RAID30 通常又被称为 RAID53[13] 。其实,可把这些等级 RAID 统称为 RAID X0 等级, X 可为标准 RAID 等级,甚至组合等级(如 RAID100 )。利用多层 RAID 配置,充分利用 RAID X 与 RAID0 的优点,从而获得在存储容量、数据安全性和 I/O 负载均衡等方面的大幅性能提升。

img

典型的 RAID30 模型

img

典型的 RAID50 模型

img

典型的 RAID60 模型