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和软Raid区别

硬raid主要是通过厂商的硬件raid卡控制器来实现,而软raid主要是操作系统的raid命令来实现(例如 mdadm 命令)。

以下是2者的区别:

分类 硬raid 软raid
实现方式 硬件 RAID 使用专用的 RAID 控制器卡,这是一块独立的硬件,通常插入到服务器或工作站的 PCIe 插槽中。该控制器处理所有 RAID 计算和磁盘管理任务,减轻了主机 CPU 的负担。 软件 RAID 通过操作系统提供的 RAID 功能来实现(如 Linux 的 mdadm 或 Windows 的 Storage Spaces)。RAID 操作由主机的 CPU 处理。
性能 硬件 RAID 控制器有专用的处理器和缓存,用于处理 RAID 操作,因此通常提供更高的性能,特别是在高负载或复杂 RAID 配置(如 RAID 5 或 RAID 6)下。 由于 RAID 操作由主机 CPU 处理,软件 RAID 在高负载或复杂 RAID 配置下的性能可能不如硬件 RAID。
系统依赖性 RAID 配置存储在控制器上,因此更换主机系统或操作系统不会影响 RAID 阵列的数据完整性。 RAID 配置依赖于操作系统,因此更换操作系统或重新安装系统可能需要重新配置 RAID 阵列。
成本 硬件 RAID 控制器通常价格较高,增加了系统的总体成本。 不需要额外的硬件,降低了成本。对于预算有限的小型企业或个人用户来说,这是一个经济的选择。
数据安全与可靠性 硬件 RAID 提供更高的可靠性和数据保护功能,如热备用盘和电池备份缓存。 软件 RAID 在数据安全和可靠性上依赖于操作系统的实现和配置。
灵活性 依赖不同厂商不同的raid卡命令,配置比较复杂 软件 RAID 配置和管理更灵活,可以通过操作系统的命令行工具或图形界面轻松实现。
高级功能 硬件 RAID 控制器通常提供高级功能,如热插拔、在线扩展、热备用盘、硬件级别的加密和电池备份缓存。 软件 RAID 通常缺乏一些高级功能,如硬件 RAID 提供的电池备份缓存和专用处理器。

6. 如何配置硬Raid

配置硬件raid可以通过raid配置界面操作,也可以通过厂商提供的cli工具配置硬Raid。具体可参考创建硬件Raid

参考:


最后修改 September 30, 2024: create hardware raid (6cb17fd)