Raid介绍

1. Raid是什么

RAID英文全称Redundant Array of Independent Disk,翻译过来就是“独立磁盘冗余系统”。RAID是一种可提高性能或提供容错功能的磁盘子系统。

RAID的基本思想是将多个容量较小、速度较慢、可靠性较差的廉价磁盘,组合成一个磁盘组,从而以较低的成本获得与昂贵的大容量、高速磁盘相似的性能。

优势:

  • 高性能

  • 可靠性可用性

  • 大容量

  • 可管理性

2. Raid的基本原理

架构上,通过RAID控制器就将多块磁盘组合,在操作系统层我们看到的是一个或多个逻辑磁盘。

技术上,RAID主要采用磁盘镜像技术条带化技术奇偶校验技术实现高性能、可靠性、容错能力和扩展性。

  • 磁盘镜像技术:将数据复制到多个磁盘,一方面可以提高可靠性,另一方面可以提高读性能。因为需要写入多个磁盘会导致写性能降低。

  • 数据条带技术:将数据分片保存到多个不同的磁盘,多个数据分片共同组成完整的数据。主要用于提示磁盘IO性能,当访问数据时可以同时对多个磁盘进行读取。

  • 数据校验技术:利益冗余数据对数据进行校验和修复。冗余数据通常采用海明码、异或操作等算法来计算获得。可以提高磁盘阵列的可靠性和容错能力。不过,数据校验需要从多处读取数据并进行计算和对比,会影响系统性能。

3. Raid的级别

RAID级别命名方式如,RAID 0、RAID 1/RAID 5、RAID 10等。RAID每一个级别代表一种RAID组合实现方法和技术,级别之间并无高低之分。不同等级的 RAID 采用其中一个或多个技术,得到的是不同的容量、I/O性能、可靠性、可用性。在决定选择哪种RAID级别之前,需要深入理解系统需求,根据自身情况进行合理选择,综合评估可靠性、性能和成本来进行折中的选择。

Raid等级 Raid0 Raid1 Raid3 Raid5 Raid6 Raid10
别名 条带 镜像 专用奇偶校验条带 分布奇偶校验条带 双重奇偶校验条带 镜像+条带
容错性
冗余类型
热备份选择
读性能
随机写性能 一般 一般
连续写性能 一般
需要磁盘数 n>=1 2n(n>=1) n>=3 n>=3 n>=4 2n>=4
可用容量 全部 50% (n-1)/n (n-1)/n (n-2)/n 50%

4. Raid级别介绍

4.1. Raid0(使用较多)

Raid0是将多块物理磁盘组合成一个大的逻辑磁盘,在读写的时候会以独立的方式对N块磁盘进行读写,因此执行效率非常高。理论上读写的性能是单块磁盘的N倍。但是单块磁盘的损坏会导致数据丢失,无法恢复。因此适用于对可靠性不高,读写性能要求高的场景中。

  • 特点:RAID 0通过条带化技术,将数据分散到多个磁盘上,从而提高存储性能。它不提供数据冗余,因此没有容错能力。

  • 适用场景:适用于对性能要求极高,但对数据安全性要求不高的场景,如视频编辑、高性能计算等。

4.2. Raid1(镜像)

Raid1 是磁盘阵列中单位成本最高的一种方式。因为它的原理是在往磁盘写数据的时候,将同一份数据无差别的写两份到磁盘,分别写到工作磁盘和镜像磁盘,那么它的实际空间使用率只有50%了,两块磁盘当做一块用,这是一种比较昂贵的方案。可靠性高,但是性能低。

  • 特点:RAID 1通过镜像技术,将数据同时写入两个或多个相同的磁盘.中,提供数据冗余和容错能力。如果一个磁盘发生故障,另一个磁盘上的数据仍然可用。

  • 适用场景:适用于对数据安全性要求较高的场景,如金融机构、医疗机构等。

4.3. Raid5(使用最多)

Raid5是兼具Raid0和Raid1的优点,在性能和可靠性上兼具的一种方式,也是使用最多的一种方案。

Raid5方案是总共有N块磁盘,会将要写入的数据分成N份,并发的写入到N块磁盘中,同时还将数据的校验码信息也写入到这N块磁盘中(数据与对应的校验码信息必须得分开存储在不同的磁盘上)。一旦某一块磁盘损坏了,就可以用剩下的数据和对应的奇偶校验码信息去恢复损坏的数据。

RAID5的方式,最少需要三块磁盘来组建磁盘阵列,允许最多同时坏一块磁盘。如果有两块磁盘同时损坏了,那数据就无法恢复了。

  • 特点:RAID 5结合了条带化和数据冗余技术。它将数据分割成块并分布在多个磁盘上,同时使用一个或多个磁盘存储冗余信息(校验块)。如果一个磁盘发生故障,系统可以使用冗余信息来重建故障磁盘上的数据。

  • 适用场景:适用于对数据安全性和性能都有一定要求的场景,如企业数据库、文件服务器等。

4.4. Raid6

RAID6在RAID5的基础上再次改进,引入了双重校验的概念。RAID6除了每块磁盘上都有同级数据XOR校验区以外,还有针对每个数据块的XOR校验区,这样的话,相当于每个数据块有两个校验保护措施,因此数据的冗余性更高了。但是RAID6的这种设计也带来了很高的复杂度,虽然数据冗余性好,读取的效率也比较高,但是写数据的性能就很差。因此RAID6在实际环境中应用的比较少。

  • 特点:RAID 6与RAID 5类似,但使用了两个冗余信息来提供更高的容错能力。这意味着即使两个磁盘同时发生故障,系统仍然可以使用冗余信息来重建数据。

  • 适用场景:适用于对数据安全性要求非常高的场景,如大型数据库、关键业务系统等。

4.5. Raid10

RAID10其实就是RAID1与RAID0的一个合体。RAID10兼备了RAID1和RAID0的有优点。

首先基于RAID1模式将磁盘分为2份,当要写入数据的时候,将所有的数据在两份磁盘上同时写入,相当于写了双份数据,起到了数据保障的作用。且在每一份磁盘上又会基于RAID0技术讲数据分为N份并发的读写,这样也保障了数据的效率。RAID10模式是有一半的磁盘空间用于存储冗余数据的,浪费的很严重,因此用的也不是很多。

5. 如何查看和制作Raid

todo

参考: