RAID
| 「RAID」的各地常用名稱 | |
|---|---|
| 中国大陸 | 独立硬盘冗余阵列 |
| 港澳 | 獨立磁碟冗餘陣列 |
| 臺灣 | 容錯式磁碟陣列 |

独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),舊稱廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),簡稱磁盘阵列。它是一种存储虚拟化技术,通过将多个独立的硬盘驱动器组合成一个或多个逻辑单元,以实现数据冗余、性能提升或两者的结合。
RAID的工作方式取决于其级别(Level)。数据以多种模式分散存储在各个硬盘上,RAID级别以“RAID”加上数字的方式命名,例如RAID 0、RAID 1、RAID 5等。不同的级别在数据可靠性和读写性能这两个目标之间取得了不同的平衡。
简单来说,RAID技术将多个物理硬盘组合成一个逻辑硬盘,因此操作系统只会将其视为一个单一的存储设备。RAID常用于服务器,且通常使用规格完全相同的硬盘来组建。随着硬盘价格的下降以及RAID功能被更有效地集成到主板上,它也逐渐成为普通用户的选择,特别是在需要大容量存储空间的应用场景,如视频和音频制作。
虽然大多数RAID级别可以有效防护硬件缺陷或坏道(硬错误)导致的数据丢失,但它们无法防护因火灾、水灾等灾难性故障,或用户误操作、软件缺陷、恶意软件感染等软错误造成的数据损失。对于重要数据,RAID仅是数据丢失防护与恢复策略的一部分,不能完全替代备份计划。
标准RAID级别
[编辑]存储网络行业协会(SNIA)通过《通用RAID磁盘驱动器格式(DDF)》标准对RAID级别及其关联数据格式进行了规范。数字值仅作为标识符,不代表性能、可靠性、代际、层级或其他任何指标。
实验性及非标准级别
[编辑]除了广泛采用的标准RAID级别外,学术界和工业界也提出了一些实验性或非标准的RAID架构,旨在满足特定的性能、成本或可靠性需求。
RAID 0e(弹性条带阵列)
[编辑]RAID 0e(Resilient Striping Array)是一种实验性的磁盘阵列架构,旨在为传统的 RAID 0(条带化)增加一个低开销的容错层。该架构由 Yanzhao Jia 等人在其2025年的概念性论文中首次提出[1]。其核心设计思想是将存储阵列分为两个逻辑和物理上独立的域:一个由 N 个驱动器组成的数据域(Data Domain),配置为标准的 RAID 0 以实现高性能读取;以及一个由 M 个驱动器组成的奇偶校验域(Parity Domain),专门用于存储数据域的奇偶校验信息。
这种设计的主要目标是防护常见的、非灾难性的介质故障,例如孤立的坏块、瞬时读取错误或扇区级损坏,而不是完整的驱动器故障。通过这种方式,RAID 0e 试图在保留 RAID 0 的读取性能优势的同时,显著提高数据的可用性和操作弹性。
工作原理
[编辑]- 读取操作(健康状态):读取请求仅由数据域并行处理,理论性能与标准
RAID 0相同。此时,奇偶校验域保持空闲。 写入操作:当写入数据时,数据被条带化地写入数据域的所有
N个驱动器。同时,控制器计算该数据条带的奇偶校验块(通过对所有数据块进行按位异或运算),并将该奇偶校验块写入奇偶校验域。由于所有写入操作都需要更新奇偶校验域,因此写入性能会受到影响,特别是对于小型的随机写入,会引发“读取-修改-写入”(Read-Modify-Write)惩罚。
故障恢复(即时恢复):如果数据域中的某个数据块(例如
Dᵢ)发生读取错误,控制器会立即启动一个透明的恢复程序。它会并发地从数据域读取该条带中所有其他的健康数据块(Dⱼ其中j ≠ i),并从奇偶校验域读取对应的奇偶校验块(Pₛ)。通过对这些数据块进行异或运算,控制器可以在内存中重建出丢失的数据块Dᵢ并返回给主机。这个过程对应用程序是透明的,仅表现为该次 I/O 操作的延迟增加。
局限性
[编辑]RAID-0e 旨在提供“增强的可用性”,而非“绝对的冗余”。它主要针对单一、局部的介质错误,但无法防护并发故障、奇偶校验域故障或“写洞”(Write Hole)问题。
嵌套RAID(混合RAID)
[编辑]嵌套RAID是将两种或多种标准RAID级别组合起来,以获得各级别之长。
常见嵌套RAID级别类型包括RAID 01、RAID 03、RAID 10、RAID 50、RAID 60、RAID 100。
磁盘阵列比较
[编辑]| RAID等级 | 最少硬盘 | 最大容错(磁盘数) | 可用容量(n=硬盘数, s=单盘容量) | 读性能(倍率) | 写性能(倍率) | 安全性 | 目的 |
|---|---|---|---|---|---|---|---|
| JBOD | 1 | 0 | n × s | 1 | 1 | 无(风险同RAID 0) | 简单地增加容量 |
| 0 | 2 | 0 | n × s | n | n | 低,一个硬盘损坏,全部数据丢失 | 追求最大容量与速度 |
| 1 | 2 | n-1 | s | n | 1 | 高,只要有一个硬盘正常即可 | 追求最大安全性 |
| 5 | 3 | 1 | (n-1) × s | n-1 | n-1 | 中,允许单个硬盘故障 | 容量、性能和安全的平衡 |
| 6 | 4 | 2 | (n-2) × s | n-2 | n-2 | 中高,允许两个硬盘故障 | 比RAID 5更安全 |
| 10 (1+0) | 4 (偶数) | 每个镜像组n/2中可坏1个 | (n/2) × s | n | n/2 | 高,只要每个镜像组至少有一个正常 | 兼顾高性能与高安全性 |
| 50 (5+0) | 6 | 每个RAID 5子组可坏1个 | (n-k) × s (k=子组数) | n-k | n-k | 高,提升写入性能和安全性 | 大型阵列的性能与安全 |
| 60 (6+0) | 8 | 每个RAID 6子组可坏2个 | (n-2k) × s (k=子组数) | n-2k | n-2k | 非常高,极佳的容错能力 | 关键业务的终极数据保护 |
- 注:上表中的性能倍率仅为理论值,实际性能受RAID控制器、缓存、硬盘类型和工作负载等多种因素影响。
实现方式
[编辑]根据实现模式,分为软件和硬件两种:[2]
- 軟體磁碟陣列(Software RAID):
- 主要由CPU处理阵列存储作业,优点是成本极低(若使用操作系统内置功能则无需额外花费),缺点是会消耗CPU资源,可能影响系统性能。
- 操作系统内置功能:如Linux的mdadm、FreeBSD的ZFS、以及Windows Server和桌面版Windows(通过“存储空间”或“磁盘管理”)提供的RAID功能。
- 硬件辅助磁碟陣列(或称Fake RAID):RAID功能由主板芯片组提供,需要特定驱动程序才能工作。它仍然依赖CPU进行大部分计算,性能介于纯软件和硬件RAID之间。
- 硬體磁碟陣列(Hardware RAID)
- 通过专门的RAID控制器卡实现,该卡拥有独立的处理器(称作ROC, RAID-on-Chip)、缓存记忆体和BIOS。
- 优点:性能最佳,因为它不占用主机CPU资源。通常带有备用电池模块(BBU)或电容,能在断电时保护缓存中的数据,确保数据一致性。独立于操作系统,迁移和管理更方便。
- 缺点:成本最高,且卡的性能与价格直接相关。
应用
[编辑]RAID技术应用广泛,尤其是在对数据可靠性、可用性和性能有较高要求的环境中:
- 企业级应用:数据库服务器、企业资源计划(ERP)系统、虚拟化平台。
- 存储系统:网络附加存储(NAS)和存储区域网络(SAN)。
- 媒体与内容创作:电视台、广播电台、影视后期制作工作室,需要高速、大容量的存储来处理高清视频和音频文件。
- 数据密集型行业:金融、证券行业用于保管客户资料;安防监控领域用于存储大量的视频录像。
注释
[编辑]参考文献
[编辑]- ^ Jia, Yanzhao; Wu, Zhaobo; Cao, Zheyi; Ji, Shihao; Tianhao, Xu; Song, Zihui. RAID-0e: A Resilient Striping Array Architecture for Balanced Performance and Availability. figshare. 2025-09-20 [2025-10-26].
- ^ Hardware RAID vs. Software RAID: Which Implementation is Best for my Application? [軟體磁碟陣列與硬體磁碟陣列:哪種實作更好?] (PDF). Adaptec公司. [2019-03-17]. (原始内容存档 (PDF)于2019-03-15).