RAID存储技术——介绍与配置

cover

独立磁盘冗余阵列(RAID)是一种存储技术,通过将两个或多个硬盘驱动器(HDD)或固态硬盘(SSD)合并成一个协调的存储单元或阵列,从而创建数据丢失的故障安全机制。

通过将数据重复或重新创建,并将其存储在附加的驱动器上来防止磁盘驱动器数据的完全丢失,这个过程也被称为数据冗余。这意味着即使磁盘驱动器发生故障,阵列仍然可以成功运行并提供可恢复的数据。

RAID 级别(主要)

RAID 0

使用数据条带化(striping)的方式将数据分散存储在多个磁盘驱动器上,而不进行冗余备份。这种方式可以同时从多个驱动器读取或写入数据,从而提高系统的性能。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
        RAID 0(条带)

┌────────┐
┌────┤ RAID 0 ├────┐
│ └────────┘ │
│ │
│ │
┌────▼────┐ ┌────▼────┐
│ A1 │ │ A2 │
├─────────┤ ├─────────┤
│ A3 │ │ A4 │
├─────────┤ ├─────────┤
│ A5 │ │ A6 │
├─────────┤ ├─────────┤
│ A7 │ │ A8 │
├─────────┤ ├─────────┤
│ │ │ │
│ free │ │ free │
│ │ │ │
└─────────┘ └─────────┘
Disk 0 Disk 1

优点

  • 成本低:不需要额外的磁盘用于冗余备份,因此成本较低
  • 高性能数据条带化和并行读写操作,提供更快的数据传输速度

缺点

  • 缺乏冗余:如果任何一个驱动器发生故障,所有数据都可能丢失
  • 可靠性低:任何一个驱动器发生故障,整个阵列的可用性将受到影响

RAID 1

使用数据镜像(mirroring)的方式将数据完全复制到两个或多个磁盘驱动器上。当写入数据时,数据同时写入所有驱动器,从而实现数据的冗余备份。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
        RAID 1(镜像)

┌────────┐
┌────┤ RAID 1 ├────┐
│ └────────┘ │
│ │
│ │
┌────▼────┐ ┌────▼────┐
│ A1 │ │ A1 │
├─────────┤ ├─────────┤
│ A2 │ │ A2 │
├─────────┤ ├─────────┤
│ A3 │ │ A3 │
├─────────┤ ├─────────┤
│ A4 │ │ A4 │
├─────────┤ ├─────────┤
│ │ │ │
│ free │ │ free │
│ │ │ │
└─────────┘ └─────────┘
Disk 0 Disk 1

优点

  • 提供冗余备份
  • 高可用:即使一个驱动器发生故障,系统仍然可以从其他驱动器中读取数据
  • 读取性能提升:通过并行读取数据的方式,加快数据访问速度

缺点

  • 成本增加
  • 写入性能略低:由于数据需要同时写入多个驱动器,相对于单个驱动器的写入性能,其写入性能可能略低

RAID 5

使用数据条带化(striping)的方式将数据分散存储在多个磁盘驱动器上,并通过分布式奇偶校验实现数据的冗余备份。如果其中一个驱动器发生故障,系统可以通过重新计算奇偶校验信息来恢复丢失的数据。这种方式可以同时提供性能增强和数据冗余。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
               RAID 5 (Distributed Parity)

┌────────┐
┌───────────────┤ RAID 5 ├───────────────┬───────────────────┐
│ └───┬────┘ │ │
│ │ │ │
│ │ │ │
┌────▼────┐ ┌────▼────┐ ┌────▼────┐ ┌────▼────┐
│ A1 │ │ A2 │ │ A3 │ │ Ap │
├─────────┤ ├─────────┤ ├─────────┤ ├─────────┤
│ B1 │ │ B2 │ │ Bp │ │ B3 │
├─────────┤ ├─────────┤ ├─────────┤ ├─────────┤
│ C1 │ │ Cp │ │ C2 │ │ C3 │
├─────────┤ ├─────────┤ ├─────────┤ ├─────────┤
│ Dp │ │ D1 │ │ D2 │ │ D3 │
├─────────┤ ├─────────┤ ├─────────┤ ├─────────┤
│ │ │ │ │ │ │ │
│ free │ │ free │ │ free │ │ free │
│ │ │ │ │ │ │ │
└─────────┘ └─────────┘ └─────────┘ └─────────┘
Disk 0 Disk 1 Disk 2 Disk 3

p = Parity Block

优点

  • 性能增强
  • 数据冗余

缺点

  • 写入性能:写入数据时需要重新计算奇偶校验信息,相对于读取操作,RAID 5的写入性能较低。

RAID 10

使用条带化(striping)的方式将数据分散存储在多个磁盘驱动器上,并通过镜像(mirroring)实现数据的冗余备份。(RAID0 + RAID1)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
                 RAID 10 (Mirroring + Striping)

┌─────────┐
│ RAID 10 │
└────┬────┘
┌────▼────┐
┌──────────┤ RAID 0 ├──────────┐
│ └─────────┘ │
┌────▼────┐ ┌────▼────┐
┌────┤ RAID 1 ├────┐ ┌────┤ RAID 1 ├────┐
│ └─────────┘ │ │ └─────────┘ │
│ │ │ │
┌────▼────┐ ┌────▼────┐┌────▼────┐ ┌────▼────┐
│ A1 │ │ A1 ││ A2 │ │ A2 │
├─────────┤ ├─────────┤├─────────┤ ├─────────┤
│ A3 │ │ A3 ││ A4 │ │ A4 │
├─────────┤ ├─────────┤├─────────┤ ├─────────┤
│ A5 │ │ A5 ││ A6 │ │ A6 │
├─────────┤ ├─────────┤├─────────┤ ├─────────┤
│ A7 │ │ A7 ││ A8 │ │ A8 │
├─────────┤ ├─────────┤├─────────┤ ├─────────┤
│ │ │ ││ │ │ │
│ free │ │ free ││ free │ │ free │
│ │ │ ││ │ │ │
└─────────┘ └─────────┘└─────────┘ └─────────┘
Disk 0 Disk 1 Disk 2 Disk 3

优点

  • 高性能
  • 数据冗余
  • 高可靠
  • 故障恢复

缺点

  • 高成本
  • 空间利用率低:有效的存储容量只等于所有驱动器中一半的容量

如何选择RAID

  • 需要更高级别的容错能 -> RAID 10
  • 压缩成本 -> RAID 0
  • 需要高读写性能和较低的响应时间 -> RAID 0 / RAID 10

硬件 RAID

硬件RAID控制器是一种独立的设备,具有自己的处理器和缓存,用于执行RAID级别的计算和管理。它通过降低主机系统的负担,提供更高的性能和更好的数据保护。
通常安装在服务器主板上,不同硬件厂商的RAID配置方式有些许区别