详细图解RAID技术

详细图解RAID技术

RAID,全称为独立磁盘冗余阵列(Redundant Array of Independent Disks),简单来说,RAID就是把多个磁盘(无论是机械硬盘还是固态硬盘)组合成一个大的逻辑磁盘分区,其核心思想是在多块硬盘上分散存储数据,某些模式还会进行冗余备份,从而在提升读写速度的同时,确保硬件故障情况下的数据安全。操作系统将整个磁盘阵列视为一个大型存储设备,简化了管理并支持动态扩展容量。

RAID 工作原理

在进行工作原理阐述之前先解释以下几个底层概念:

  • 条带化(Striping)

    数据被切成固定大小的块(Chunk/Stripe Unit,如 64KB、256KB),按顺序分布到不同磁盘上,实现并行读写。

  • 镜像(Mirroring)

    把同一份数据同时写入多块磁盘(RAID1/10),提供完全冗余机制

  • 校验(Parity)

    用数学方法为一组数据计算冗余信息(RAID5/6)。当坏了一到两块盘时,可通过校验重建缺失数据。

RAID的工作原理是将数据存放在多个磁盘上,并允许输入/输出(I/O)操作以均衡的方式叠加,从而提升读写性能。使用多个磁盘的同时也可以提高容错能力

RAID采用镜像技术或者条带化技术。镜像技术将相同的数据复制到多个磁盘中。条带化有助于将数据分散到多个磁盘上。每个磁盘的存储容量被划分为多个单元,大小从512字节的扇区到几兆字节不等。所以磁盘的条带交错排列,并按顺序寻址。某些RAID技术会将镜像技术条带化技术组合起来。

RAID级别

RAID技术最开始只有几个标准的级别0-5,随之后面技术的发展演变出了其他的RAID等级,分为三个类别:标准RAID级别、嵌套RAID级别、非标准RAID级别。本文详细介绍几种常用的RAID级别

标准RAID级别:

1、RAID 0

RAID 0 此级别具有条带化功能。它将两个以上的磁盘并联起来,成为一个大容量的磁盘。在写入数据时,RAID 0 会将数据分段后分散存储在RAID的每个磁盘中,因为所有读写操作都可以并行处理,所以在所有的RAID级别中,RAID 0 性能是最佳的,磁盘利用率也是最大的,利用率达到100%。但是RAID虽然提供了最佳性能,但是其损失了冗余功能,没有任何容错能力,如果在组成RAID 0 的所有磁盘中有一块磁盘损坏了,则所有数据将会瞬间蒸发。

RAID 0RAID 0

2、RAID 1

RAID 1可以称之为磁盘镜像,由至少两个磁盘组成。系统从RAID 1中读取数据时,可以同时读取任意一块磁盘的数据,因此读取性能会得到提升,写入能行基本与但磁盘存储相同。

RAID 1 的原理是在其中一块硬盘上存放数据的同时也在另外一块镜像的磁盘写上一样的数据。当其中一块磁盘损坏时,另外一块镜像复制的磁盘将会替代损坏的磁盘进行读写工作。

RAID 1 的数据安全性在所有RAID级别上是最好的,但是在一个RAID中无论用多少块磁盘做RAID 1 ,仅算一个磁盘的容量,所以RAID 1 在所有级别中磁盘容量利用率是最低的(最高也只有50%)。

如果使用了两个不同存储容量的磁盘组成一个RAID 1,最终可用的空间只认容量较小的磁盘,较大的磁盘减去较小的磁盘的容量剩余的部分还是可以单独划出一个分区来使用的,不会造成容量浪费。

RAID 1RAID 1

3、RAID 5

RAID 5 是一种存储性能、数据安全和存储成本兼顾的解决方案。它并不是简单地把数据备份到其他磁盘上,而是使用奇偶校验块级条带化技术,将数据和相应的奇偶校验信息(简单异或计算)分散存储在RAID 5的每个组成磁盘上。奇偶校验信息和数据存储在不同的磁盘上。当RAID 5的一个磁盘数据损坏后,可以利用剩余正常数据和相应的奇偶校验信息来恢复损坏的数据。RAID 5至少需要三块硬盘,可以容忍一个磁盘故障。它具有与RAID 0相近的读取速度,但写入速度会略慢。RAID 5的磁盘空间利用率高于RAID 1,存储成本相对低。但是,对于写入密集型系统而言,RAID 5通常被认为是较差的选择,因为写入奇偶校验数据会影响性能。当驱动器发生故障时,重建RAID 5阵列可能需要很长时间。它常用于个人或企业备份,追求最大容量和最小预算。

RAID 5RAID 5

4、RAID 6

与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块,并且使用不同的算法(一种称为p,可以是RAID 5中的简单的异或奇偶校验算法,另外一种我们称为q,可以是其他更复杂的校验算法)。这使得RAID 6具有非常高的数据可靠性,可允许任意两块磁盘同时失效而不会影响数据完整性。RAID 6至少需要四个以上的磁盘才能生效。然而,额外的保护也伴随着更高的成本,通常写入性能比RAID 5慢,因为要多分一个校验区块。RAID 6通常不会通过软件方式实现,而更可能通过硬件方式实现,因为其IO操作量和计算量更大。在硬件RAID阵列卡中,RAID 6是最常见的磁盘阵列等级。它适用于与RAID 5相似的应用,但提供更高的安全性。

RAID 6RAID 6

嵌套RAID级别:

1、RAID 10(RAID1+0)

RAID10是RAID 1和RAID 0的组合,先进行镜像再进行条带化,先做RAID 1,然后把整个RAID1当初一个整体磁盘,再做一次RAID0。RAID 10结合了RAID 0和RAID 1的优点,提供更好的性能和通过冗余实现的数据保护,但是其带来了更高的成本。即使有一个硬盘受损,其余硬盘仍会继续运行,安全性高。它常用于大型数据库和服务器。

RAID 10RAID 10

2、RAID 01(RAID 0+1)

RAID 01与RAID 10相似,但数据存放方式略有不同,它是先创建条带,然后对条带进行镜像操作。RAID 01的可靠性低于RAID 10,因为只要一组RAID 0中的一个硬盘受损,该组RAID 0的所有硬盘都会停止运行。

RAID 01RAID 01

3、RAID 50(RAID 5+0)

RAID 50是RAID 5与RAID 0的组合,先进行RAID 5,再进行RAID 0。这意味着对多组RAID 5彼此构成条带存储。RAID 50至少需要6块磁盘,因为RAID 5至少需要3块磁盘。它可以在底层任一组或多组RAID 5中出现1块磁盘损坏时仍保持业务正常运作,但如果任一组RAID 5中出现2块或以上磁盘损坏,整组RAID 50就会失效。RAID 50的性能高于纯RAID 5(因外层嵌套了RAID 0),但容量利用率较低。

RAID 50RAID 50

4、RAID 60(RAID6+0)

这是RAID 6与RAID 0的组合,先进行RAID 6,再进行RAID 0。RAID 60最小需求是8块磁盘。它能够容许底层任一组RAID 6中最多2块磁盘损坏而系统仍能运作。RAID 60的性能较纯RAID 6高(因外层嵌套了RAID 0),但使用门槛高且容量利用率低。

RAID 60RAID 60

非标准RAID级别:

非标准RAID级别具有与标准RAID级别不同的特性,通常由公司或组织主要为专有用途开发。

1、自适应RAID

这种RAID使 RAID 控制器能够决定如何在磁盘上存储奇偶校验。它可以在 RAID 3 和 RAID 5 之间选择。具体选择取决于哪种 RAID 类型在写入磁盘的数据类型下性能更好。

2、Linux MD RAID 10

此级别由Linux内核提供,支持创建嵌套和非标准 RAID 阵列。Linux 软件 RAID 还可以支持创建标准 RAID 0、RAID 1、RAID 4、RAID 5 和 RAID 6 配置。

常见 RAID 级别速览

级别 机制 最少磁盘 可用容量(设每盘容量=S) 容错能力 典型特点
RAID 0 纯条带 2 N × S 0 块 性能最好,但无冗余,风险极高
RAID 1 镜像 2 (N/2) × S(通常两两镜像) 每组可坏 1 块 安全可靠,但容量利用率低
RAID 5 条带 + 1 校验 3 (N-1) × S 任意 1 块 容量效率高,但重建期风险大
RAID 6 条带 + 2 校验 4 (N-2) × S 任意 2 块 适合大容量 HDD,重建期更安全
RAID 10 (1+0) 镜像再条带 4 (N/2) × S 每组镜像可坏 1 块 随机写性能强,可靠性高,成本高
RAID 01 (0+1) 条带再镜像 4 (N/2) × S 整组条带坏掉即失效 容量与 RAID10 相同,但容错性较差(条带组风险)
RAID 50 (5+0) 多组 RAID5 再条带 6(2组×3盘) (N - #组) × S 每组可坏 1 块 性能与容量折中,容错能力比 RAID5 强
RAID 60 (6+0) 多组 RAID6 再条带 8(2组×4盘) (N - 2×#组) × S 每组可坏 2 块 大规模阵列首选,高容错但成本更高

最后推荐一个西数官网的RAID容量计算器:

https://www.westerndigital.com/zh-cn/tools/raid-capacity-calculator

图片

https://mp.weixin.qq.com/s/DvEJhlIwSTEAvXqBCnKksQ