RAID 磁盘阵列详解

raid

硬盘组

硬盘组(Drive Group) - 也被称为"Drive Group"(简称"DG")、“Array"或"RAID组”,具体名称根据实际应用和厂商的术语而异。

硬盘组是将多个物理硬盘以某种特定的方式组合起来,形成一个整体对外提供数据存储的解决方案。可以提供更大的存储容量、提高数据读写性能、增强数据冗余和安全性。

虚拟磁盘(Virtual Drive)- 也被称为"Virtual Drive"、“Virtual Disk”(简称"VD")、“Volume"或"Logical Device”(简称"LD")等,术语因厂商而异。

硬盘组为虚拟磁盘提供基础支持,是虚拟磁盘的构建基石。虚拟磁盘则通过对硬盘组的灵活划分和配置,满足不同业务场景的存储需求。虚拟磁盘依赖于硬盘组的存在,硬盘组提供了底层的物理存储资源。虚拟磁盘通过对硬盘组的不同划分方式,可以实现对数据存储的高度灵活性和可配置性。在数据中心中,硬盘组和虚拟磁盘的有效管理是确保数据安全性和性能的关键。

RAID 级别

RAID 0

条带化存储性能的巅峰

RAID 0,又被称为条带化(Stripe)或分条(Striping),代表了在所有RAID级别中获得最高存储性能的一种配置。其基本原理是将连续的数据分散存储到多个硬盘上,从而实现并行存取,提高整体存储性能。

00-0000

RAID 0提高存储性能的核心思想是通过将数据分散存储在多个硬盘上,实现并行化的读写操作。具体处理流程如下:

  • 数据分散: 系统向由多块硬盘组成的逻辑硬盘(RAID 0硬盘组)发出I/O数据请求,这些请求被转化为对各个硬盘的操作。
  • 并行操作: 数据请求被分割为多个部分,每个部分对应于硬盘组中的一块物理硬盘。这样,每个硬盘都可以并行执行自己负责的数据请求。
  • 提高速度: 由于并行操作的存在,同一时间内,硬盘组的读写速度得到显著提升。理论上,三块硬盘的并行操作可以使硬盘整体读写速度提高3倍。

处理流程

+---------------------------------------------+
|               RAID 0 硬盘组                   |
|                                             |
|  +---------+  +---------+  +---------+       |
|  | 硬盘 1  |  | 硬盘 2  |  | 硬盘 3  |       |
|  +---------+  +---------+  +---------+       |
|                                             |
+---------------------------------------------+
                      |
                      v
   +---------------------------------------+
   |          并行操作的数据请求            |
   |                                       |
   |  +---------+  +---------+  +---------+ |
   |  | 操作 1  |  | 操作 2  |  | 操作 3  | |
   |  +---------+  +---------+  +---------+ |
   +---------------------------------------+
                      |
                      v
   +---------------------------------------+
   |            实际执行的数据请求          |
   |                                       |
   |  +---------+  +---------+  +---------+ |
   |  | 数据 1  |  | 数据 2  |  | 数据 3  | |
   |  +---------+  +---------+  +---------+ |
   +---------------------------------------+

优势:
性能提升: 并行读写操作显著提高了整体存储性能。
简单高效: 实现简单,无需额外的计算和校验操作。

局限性:
无冗余: 没有数据冗余,一块硬盘损坏会导致全部数据丢失。
不适用于安全要求高的场合: 适用于对I/O速率要求高、但数据安全性要求较低的场景。

RAID 1

镜像存储的可靠之选

RAID 1,又被称为镜像(Mirror)或镜像存储(Mirroring),是一种数据冗余的RAID级别。在RAID 1中,每个工作盘都有一个镜像盘,数据在写入时同时写入两个盘,读取时则同时从工作盘和镜像盘读取。RAID 1以其高可靠性而闻名,常被应用于对容错要求较高的领域,如财政和金融。

00-0001

RAID 1的核心原理是数据的完全镜像,主要处理流程如下:

写入数据: 当系统向RAID 1硬盘组中的一块硬盘(例如,Drive 0)写入数据时,系统会同时将用户写入Drive 0的数据自动复制到另一块硬盘(例如,Drive 1)上,实现数据的完全镜像。

读取数据: 在读取数据时,系统同时从两块硬盘(Drive 0和Drive 1)中读取,提高读取性能。

故障处理: 当发生硬盘故障时,系统可以通过复制的镜像数据重新构建工作盘,从而恢复数据的完整性。

处理流程图

+---------------------------------------------+
|               RAID 1 硬盘组                   |
|                                             |
|  +---------+               +---------+      |
|  | 硬盘 0  |               | 硬盘 1  |      |
|  +---------+               +---------+      |
|                                             |
+---------------------------------------------+
                      |
                      v
   +---------------------------------------+
   |          数据写入与读取处理           |
   |                                       |
   |  +---------+           +---------+   |
   |  |  数据   |           |  数据   |   |
   |  |  写入   |           |  读取   |   |
   |  +---------+           +---------+   |
   +---------------------------------------+

优势:
高可靠性: 数据的完全镜像确保了硬盘故障时数据的可靠性,不会导致数据丢失。
快速恢复: 当发生故障时,系统能够迅速从镜像数据中恢复工作盘。
局限性:
有效容量减小: 有效容量减半,因为每个数据都需要在两个硬盘上进行存储。
成本高: 镜像盘的存在增加了存储成本。

RAID 1E

强化的镜像技术

RAID 1E是RAID 1的增强版本,其工作原理类似于RAID 1,但提供了更多的硬盘容纳选项。数据的条带化和备份贯穿在逻辑盘中的所有硬盘,类似于RAID 1,它提供了数据冗余功能以及较高的性能。然而,RAID 1E允许使用至少三个硬盘,为用户提供了更大的灵活性。

RAID 1E的核心原理是将数据条带和备份分布在逻辑盘中的所有硬盘上。以下为RAID 1E的主要特征:

数据条带和备份: 类似于RAID 1,RAID 1E中的数据是镜像的,但是与RAID 1不同的是,这些镜像数据在逻辑盘中的所有硬盘上均匀分布。
逻辑盘容量: 逻辑盘的容量是硬盘总容量的一半,与RAID 1相似。
硬盘数量: RAID 1E至少需要三个硬盘组成。
处理流程图

+-------------------------------------------------------------------+
|                        RAID 1E 硬盘组                               |
|                                                                   |
|  +---------+  +---------+  +---------+                             |
|  | 硬盘 1  |  | 硬盘 2  |  | 硬盘 3  |                             |
|  +---------+  +---------+  +---------+                             |
|          |         |          |                                   |
|      +---|---------|----------|---+                               |
|      |       RAID 1E 硬盘组       |                               |
|      |                           |                               |
|  +---+---+   +---+---+   +---+---+                               |
|  | 数据  |   | 数据  |   | 数据  |                               |
|  |  D0   |   |  D1   |   |  D2   |                               |
|  +---+---+   +---+---+   +---+---+                               |
+-------------------------------------------------------------------+

优势:
数据冗余性: 与RAID 1相似,RAID 1E提供了数据冗余,可以容忍单个硬盘的故障。
性能: RAID 1E在性能方面较RAID 1略有提升,因为它允许在逻辑盘中使用更多的物理硬盘。
局限性:
硬盘数量: RAID 1E至少需要三个硬盘,相对于RAID 1来说,硬盘的利用率较低。
成本: 相对于其他RAID级别,需要更多硬盘,成本可能较高。

RAID 5

性能、数据安全和成本的平衡

RAID 5是一种存储性能、数据安全和存储成本三者平衡的存储解决方案。通过循环冗余校验(Parity)的方式,实现数据的可靠性,并将校验数据分散存储在RAID的各成员盘上。这种配置使得RAID 5既适用于大数据量的操作,又适用于小数据的事务处理,成为一种综合性能与安全性的磁盘阵列。

00-0002

RAID 5的核心原理在于采用循环冗余校验,将校验数据分散存储在RAID的各成员盘上。当其中一块硬盘发生故障时,可以通过其他成员盘上的数据重新构建故障硬盘上的数据。以下为RAID 5的基本处理流程:

奇偶校验信息: 设PA为A0、A1和A2的奇偶校验信息,PB为B0、B1和B2的奇偶校验信息,以此类推。
数据存储: RAID 5将数据和相对应的奇偶校验信息存储到各成员盘上,确保奇偶校验信息和相对应的数据分别存储在不同的硬盘上。
数据恢复: 当RAID 5的一个硬盘数据发生损坏时,利用剩下的数据和相应的奇偶校验信息可以恢复被损坏的数据。
RAID 5可以被理解为是RAID 0和RAID 1的折衷方案:

数据安全保障: RAID 5提供一定程度的数据安全保障,但保障程度相对于RAID 1较低。
硬盘空间利用率: RAID 5在硬盘空间利用率上相对于RAID 1更高,存储成本较低。
读写速度: RAID 5具有较RAID 0略低的数据读写速度,但写性能比写入单个硬盘时要高。
处理流程图

+------------------------------------------------+
|               RAID 5 硬盘组                      |
|                                                |
|  +---------+  +---------+  +---------+  +------+ |
|  | 硬盘 1  |  | 硬盘 2  |  | 硬盘 3  |  | 校验盘 | |
|  +---------+  +---------+  +---------+  +------+ |
|                                                |
+------------------------------------------------+
                       |
                       v
  +---------------------------------------------------+
  |             数据与奇偶校验信息存储                   |
  |                                                   |
  |  +---------+  +---------+  +---------+  +------+  |
  |  | 数据 1  |  | 数据 2  |  | 数据 3  |  | 校验  |  |
  |  +---------+  +---------+  +---------+  +------+  |
  +---------------------------------------------------+
                       |
                       v
  +---------------------------------------------------+
  |              数据恢复与校验                       |
  |                                                   |
  |  +---------+  +---------+  +---------+  +------+  |
  |  | 数据 1  |  | 数据 2  |  | 数据 3  |  | 校验  |  |
  |  +---------+  +---------+  +---------+  +------+  |
  +---------------------------------------------------+

优势:
性能平衡: 综合了性能、数据安全性和存储成本,适用于多种应用场景。
适用范围广: 既适用于大数据量的操作,也适用于小数据的事务处理。
局限性:
不适用于高度安全要求: 相对于RAID 1,数据安全性较低。
稍低的数据读写速度: 相对于RAID 0,数据读写速度略低。

RAID 6

高可靠性与容错性的升级

RAID 6是在RAID 5的基础上进行改进的一种存储方案。与RAID 5相比,RAID 6引入了第二个独立的奇偶校验信息块,极大地提高了数据的可靠性和容错性。尽管写性能较差,但RAID 6能够在两块硬盘同时失效的情况下仍然保持数据的完整性。

00-0003

RAID 6在RAID 5的基础上引入了第二个独立的奇偶校验信息块。两个独立的奇偶系统采用不同的算法,从而使得数据的可靠性非常高。以下为RAID 6的核心原理:

奇偶校验信息: 设PA为数据块A0、A1、A2的第一个校验信息块,QA为第二个校验信息块;PB为数据块B0、B1、B2的第一个校验信息块,QB为第二个校验信息块,以此类推。
数据存储: 数据块和两个独立的校验块分散存储到RAID 6的各个成员盘上。
容错性: 当任意一个或两个成员硬盘出现故障时,RAID 6可以从其他处于正常状态的硬盘上重新恢复或生成丢失的数据,保持数据的可用性。
处理流程图

+-----------------------------------------------------------------+
|                     RAID 6 硬盘组                               |
|                                                                 |
|  +---------+  +---------+  +---------+  +------+  +------+      |
|  | 硬盘 1  |  | 硬盘 2  |  | 硬盘 3  |  | 校验  |  | 校验  |      |
|  +---------+  +---------+  +---------+  +------+  +------+      |
|                                                                 |
+-----------------------------------------------------------------+
                       |
                       v
  +----------------------------------------------------------------+
  |              数据与两个独立的奇偶校验信息存储                   |
  |                                                                |
  |  +---------+  +---------+  +---------+  +------+  +------+     |
  |  | 数据 1  |  | 数据 2  |  | 数据 3  |  | 校验1 |  | 校验2 |     |
  |  +---------+  +---------+  +---------+  +------+  +------+     |
  +----------------------------------------------------------------+
                       |
                       v
  +----------------------------------------------------------------+
  |                 数据恢复与校验                                 |
  |                                                                |
  |  +---------+  +---------+  +---------+  +------+  +------+     |
  |  | 数据 1  |  | 数据 2  |  | 数据 3  |  | 校验1 |  | 校验2 |     |
  |  +---------+  +---------+  +---------+  +------+  +------+     |
  +----------------------------------------------------------------+

优势:
高可靠性: 可以容忍两块硬盘的同时故障,提供极高的数据可靠性。
数据完整性: 在硬盘失效的情况下,RAID 6能够保持数据的完整性。
容错性强: 相对于RAID 5,容错性更强,适用于对数据完整性要求极高的环境。
局限性:
写性能较差: 相对于RAID 5,RAID 6的写性能较差,因为需要计算并写入两个独立的奇偶校验信息块。
硬盘空间利用率: 相对于RAID 5,需要更大的硬盘空间用于存储两个独立的奇偶校验信息块。

RAID 10

性能与数据安全的完美结合

RAID 10是一种将镜像(RAID 1)和条带化(RAID 0)进行两级组合的RAID级别。在RAID 10中,第一级采用RAID 1,即镜像,第二级采用RAID 0,即条带化。这种组合形式使得RAID 10在存储性能和数据安全性方面兼顾,提供了接近RAID 0的性能同时具备与RAID 1相似的数据安全保障。

00-0004

RAID 10通过将镜像和条带化结合,实现了对性能和数据安全的双重考虑。以下为RAID 10的核心原理:

组合形式: RAID 10采用RAID 1和RAID 0的两级组合形式,首先实现硬盘的镜像,然后在镜像的基础上进行条带化。
子组: Drive 0和Drive 1组成一个子组0,Drive 2和Drive 3组成一个子组1。每个子组内的两个硬盘互为镜像。
数据存储: 系统向硬盘发出I/O数据请求时,数据请求按照RAID 0的方式,被分散到两个子组中并行执行。同时,通过RAID 1的方式,系统在向硬盘Drive 0写入数据的同时将数据自动复制到硬盘Drive 1上,以此类推。
处理流程图

+------------------------------------------------------------------+
|                      RAID 10 硬盘组                               |
|                                                                  |
|  +---------+  +---------+  +---------+  +---------+              |
|  | 硬盘 0  |  | 硬盘 1  |  | 硬盘 2  |  | 硬盘 3  |              |
|  +---------+  +---------+  +---------+  +---------+              |
|          |         |          |         |         |              |
|      +---|---------|----------|---------|---+     |              |
|      |  子组 0    |          |   子组 1   |     |              |
|      |           |          |           |     |              |
|  +---+---+   +---+---+  +---+---+   +---+---+  +---+---+      |
|  | 镜像  |   | 镜像  |  | 镜像  |   | 镜像  |  | 镜像  |      |
|  |       |   |       |  |       |   |       |  |       |      |
|  |  D0   |   |  D1   |  |  D2   |   |  D3   |  |  D4   |      |
|  +---+---+   +---+---+  +---+---+   +---+---+  +---+---+      |
+------------------------------------------------------------------+

优势:
高性能: 接近RAID 0的性能水平,适用于对性能要求较高的应用。
高数据安全性: 提供了RAID 1级别的数据安全保障,即使在硬盘故障时也能继续提供服务。
容错性强: 具备RAID 1的容错性,可以容忍多块硬盘的同时故障。
局限性:
成本较高: 相对于其他RAID级别,需要更多硬盘用于镜像,成本相对较高。

RAID 50

镜像阵列条带

RAID 50被称为镜像阵列条带,是RAID 5和RAID 0的组合形式。它将两种技术相结合,兼具RAID 5的数据冗余和RAID 0的条带化性能。在RAID 50中,一个RAID 50由多个RAID 5子组组成,数据的存储访问以RAID 0的形式分布在各个RAID 5子组上。

00-0005

RAID 50的核心原理如下:

数据条带和校验: 类似于RAID 5,RAID 50将数据分区成条带,并使用校验位来保证数据的安全性,同时校验条带均匀分布在各个硬盘上。
子组结构: RAID 50由多个RAID 5子组组成,每个子组内部使用RAID 5的数据分布和校验方式。
数据访问: 数据的存储访问以RAID 0的形式分布在各个RAID 5子组上,提供了更优秀的读写性能。
处理流程图

+------------------------------------------------------------------+
|                        RAID 50 硬盘组                             |
|                                                                  |
|  +---------+  +---------+  +---------+  +---------+              |
|  | 硬盘 1  |  | 硬盘 2  |  | 硬盘 3  |  | 硬盘 4  |              |
|  +---------+  +---------+  +---------+  +---------+              |
|          |         |          |          |         |             |
|      +---|---------|----------|----------|---+     |             |
|      | RAID 5 子组 0         | RAID 5 子组 1 |     |             |
|      |                      |              |     |             |
|  +---+---+   +---+---+   +---+---+   +---+---+  +---+---+     |
|  | 数据  |   | 数据  |   | 数据  |   | 数据  |  | 数据  |     |
|  |  D0   |   |  D1   |   |  D2   |   |  D3   |  |  D4   |     |
|  +---+---+   +---+---+   +---+---+   +---+---+  +---+---+     |
+------------------------------------------------------------------+

优势:
数据冗余性: 具备RAID 5的数据冗余性,可容忍单个硬盘的故障。
性能: 在提供冗余性的同时,具有比单纯的RAID 5更优秀的读写性能,类似于RAID 0。
容错性: 能够容忍多个子组同时单盘故障,提供更高的容错性。
局限性:
成本: 相对于单纯的RAID 5,需要更多硬盘,成本可能较高。

RAID 60

镜像阵列条带的进阶形式

RAID 60与RAID 50相似,采用了镜像阵列条带的分布方式,即RAID 6与RAID 0的组合形式。类似于RAID 50,RAID 60由多个RAID 6子组组成,数据的存储访问以RAID 0的形式分布在各个RAID 6子组上。RAID 60在提供更高性能的同时,保持了RAID 6的双重校验模块来确保数据的安全性。

00-0006

RAID 60的核心原理如下:

数据条带和校验: 采用镜像阵列条带的分布方式,数据被分区成条带,并使用两个数据校验模块来保证数据的安全性,同时校验条带均匀分布在各个硬盘上。
子组结构: RAID 60由多个RAID 6子组组成,每个子组内部使用RAID 6的数据分布和校验方式。
数据访问: 数据的存储访问以RAID 0的形式分布在各个RAID 6子组上,提供了更高的读写性能。
处理流程图

+------------------------------------------------------------------+
|                        RAID 60 硬盘组                             |
|                                                                  |
|  +---------+  +---------+  +---------+  +---------+              |
|  | 硬盘 1  |  | 硬盘 2  |  | 硬盘 3  |  | 硬盘 4  |              |
|  +---------+  +---------+  +---------+  +---------+              |
|          |         |          |          |         |             |
|      +---|---------|----------|----------|---+     |             |
|      | RAID 6 子组 0         | RAID 6 子组 1 |     |             |
|      |                      |              |     |             |
|  +---+---+   +---+---+   +---+---+   +---+---+  +---+---+     |
|  | 数据  |   | 数据  |   | 数据  |   | 数据  |  | 数据  |     |
|  |  D0   |   |  D1   |   |  D2   |   |  D3   |  |  D4   |     |
|  +---+---+   +---+---+   +---+---+   +---+---+  +---+---+     |
+------------------------------------------------------------------+

优势:
数据冗余性: 具备RAID 6的数据冗余性,可容忍两个硬盘的故障。
性能: 在提供冗余性的同时,具有比单纯的RAID 6更优秀的读写性能,类似于RAID 0。
容错性: 能够容忍多个子组同时两个硬盘的故障,提供更高的容错性。
局限性:
成本: 相对于单纯的RAID 6,需要更多硬盘,成本可能较高。

linux

RAID10磁盘阵列尽管会造成50%磁盘的浪费,但是实现了硬盘读写速度的提升,同时也实现了数据安全性的效果,在生产中应用最为广泛。

部署磁盘阵列的核心命令为mdadm。

# mdadm
# -a 检测设备名称
# -n 指定设备数量
# -l 指定raid级别
# -C 创建
# -v 显示过程
# -f 模拟设备损坏
# -r 移除设备
# -Q 查看摘要信息
# -D 查看详细信息
# -S 停止raid磁盘阵列

# 无法使用已挂载的硬盘
# 创建raid
mdadm -Cv /dev/md0 -a yes -n 5 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf

# 格式化
mkfs.ext4 /dev/md0

# 挂载

参考文献

苏ICP备19018690号-1