Linux

磁盘阵列 RAID

·10 分钟阅读·3631 字

梳理 RAID 的核心目标、常见级别、容量计算、故障风险、软硬 RAID 差异与生产选型建议

📋 目录

磁盘阵列 RAID

1. RAID 核心概念

RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)通过把多块物理磁盘组合成一个逻辑存储单元,在性能、容量、可靠性和成本之间做权衡。

RAID 主要解决两类问题:

  • 性能:通过条带化让多块磁盘并行读写。
  • 可靠性:通过镜像或校验信息在磁盘故障时维持数据可用。

需要注意:RAID 不等于备份。RAID 可以降低单盘故障造成的业务中断风险,但无法防止误删除、误覆盖、勒索软件、文件系统损坏和机房级灾难。

2. 常见 RAID 级别

2.1. RAID 0

RAID 0 使用条带化(striping)将数据分散写入多块磁盘,目标是提升读写性能和可用容量。

维度说明
最少磁盘数2 块
可用容量N × 单盘容量
容错能力无容错,任意一块磁盘故障都会导致阵列数据不可用。
性能特点读写性能较高。
典型场景临时缓存、临时计算数据、可重新生成的数据。

RAID 0 不适合保存关键数据。

2.2. RAID 1

RAID 1 使用镜像(mirroring)保存多份相同数据,目标是提升可靠性。

维度说明
最少磁盘数2 块
可用容量通常为单盘容量,利用率约 50%。
容错能力通常可承受一块磁盘故障。
性能特点读性能可提升,写性能接近单盘。
典型场景系统盘、关键配置盘、小型数据库。

2.3. RAID 5

RAID 5 使用条带化和分布式奇偶校验,可在一块磁盘故障时继续工作。

维度说明
最少磁盘数3 块
可用容量(N - 1) × 单盘容量
容错能力可承受一块磁盘故障。
性能特点读性能较好,写入存在校验计算和写放大开销。
典型场景普通文件服务、读多写少场景、成本敏感型存储。

随着单盘容量增大,RAID 5 在重建期间的风险会显著上升。重建过程耗时越长,另一块磁盘再次故障的概率越高,因此关键业务应谨慎使用 RAID 5。

2.4. RAID 6

RAID 6 在 RAID 5 的基础上增加第二份校验信息,可容忍两块磁盘故障。

维度说明
最少磁盘数4 块
可用容量(N - 2) × 单盘容量
容错能力可承受两块磁盘故障。
性能特点读性能较好,写入开销大于 RAID 5。
典型场景大容量文件存储、备份存储、对容量和可靠性都有要求的场景。

2.5. RAID 10

RAID 10 是 RAID 1 与 RAID 0 的组合,通常先做镜像再做条带化,兼顾性能和可靠性。

维度说明
最少磁盘数4 块
可用容量(N / 2) × 单盘容量
容错能力每个镜像组可坏一块,整体容错取决于故障分布。
性能特点读写性能都较好,重建速度通常优于 RAID 5/6。
典型场景数据库、虚拟化平台、高并发业务。

3. RAID 级别对比

RAID 级别核心机制最少磁盘容量利用率容错能力性能特点适用场景
RAID 0条带化2100%无读写性能高临时数据、缓存
RAID 1镜像2约 50%通常 1 块读性能较好,写接近单盘系统盘、关键小容量数据
RAID 5条带化 + 单校验3(N - 1) / N1 块读好,写有校验开销普通文件服务
RAID 6条带化 + 双校验4(N - 2) / N2 块读好,写开销更大大容量可靠存储
RAID 10镜像 + 条带化4约 50%取决于故障分布读写性能好数据库、虚拟化、高并发业务

4. 软 RAID 与硬 RAID

4.1. 硬件 RAID

硬件 RAID 通过独立 RAID 控制器或主板集成控制器实现,阵列逻辑通常对操作系统呈现为单个逻辑磁盘。

优点说明
性能稳定独立控制器负责阵列管理,减少主机 CPU 参与。
功能丰富常支持缓存、电池保护、热插拔、在线重建等能力。
运维友好在企业服务器中常配合管理卡和告警系统使用。
风险说明
成本较高需要 RAID 卡、缓存和电池等硬件。
控制器依赖RAID 卡故障时可能需要同型号或兼容控制器恢复。
可观测性差异操作系统看到的是逻辑盘,底层磁盘状态依赖厂商工具。

4.2. 软件 RAID

软件 RAID 由操作系统实现,Linux 中常见工具是 mdadm。

优点说明
成本低不依赖专用 RAID 卡。
可迁移性较好只要系统支持对应软件 RAID 元数据,通常可在其他机器上识别。
管理透明操作系统能直接看到物理盘和阵列状态。
风险说明
占用系统资源校验计算和重建会占用 CPU 与 IO。
依赖系统配置启动、阵列自动组装和监控需要正确配置。
运维要求较高需要理解 mdadm、阵列状态和故障恢复流程。

4.3. 软硬 RAID 对比

对比维度硬件 RAID软件 RAID
实现位置RAID 控制器操作系统
成本较高较低
性能通常更稳定取决于 CPU、磁盘和系统负载
管理工具厂商工具、管理卡mdadm、系统日志
故障恢复依赖控制器兼容性依赖系统识别 RAID 元数据
适用场景企业服务器、传统存储方案普通服务器、实验环境、成本敏感场景

5. Linux 软件 RAID 常用命令

5.1. 创建 RAID 1 示例

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
mkfs.xfs /dev/md0
mkdir -p /data
mount /dev/md0 /data

5.2. 查看阵列状态

cat /proc/mdstat
mdadm --detail /dev/md0
lsblk

5.3. 保存阵列配置

不同发行版配置文件路径可能不同,常见写法如下:

mdadm --detail --scan >> /etc/mdadm.conf

Debian/Ubuntu 系常见路径可能是 /etc/mdadm/mdadm.conf。

5.4. 模拟故障与移除磁盘

mdadm /dev/md0 --fail /dev/sdb
mdadm /dev/md0 --remove /dev/sdb

实际生产操作前应先确认阵列状态、备份状态、磁盘槽位和告警信息。

6. RAID 故障与重建风险

6.1. 常见风险

风险说明
重建时间长大容量磁盘重建可能持续数小时到数天。
重建期间性能下降重建会占用磁盘 IO,影响业务读写。
二次故障RAID 5 重建期间再次坏盘会导致阵列不可用。
静默数据损坏磁盘未报错但返回错误数据,可能影响校验和重建。
人为误操作删除阵列、误拔盘、误格式化都不是 RAID 能解决的问题。

6.2. 运维建议

  • 关键业务不要把 RAID 当成唯一保护手段。
  • 大容量磁盘场景优先考虑 RAID 6、RAID 10 或分布式存储方案。
  • 配置磁盘、RAID 卡、系统和业务多层监控告警。
  • 定期检查阵列状态和坏块信息。
  • 重建前确认备份可用,重建中持续观察 IO、温度和错误日志。
  • 记录磁盘槽位、序列号和阵列成员关系,避免更换错盘。

7. 生产选型建议

场景推荐方案原因
临时高速缓存RAID 0追求性能,可接受数据丢失。
系统盘RAID 1简单可靠,恢复成本较低。
普通文件服务RAID 5 或 RAID 6在容量、成本和可靠性之间折中。
大容量归档RAID 6相比 RAID 5 更能降低重建期间的二次故障风险。
数据库与虚拟化RAID 10读写性能和重建速度更适合高 IO 业务。
高可靠核心业务RAID 10 + 备份 + 异地容灾RAID 只解决部分硬件故障,仍需备份和容灾。

选型时应同时考虑磁盘容量、磁盘数量、IO 模型、恢复时间目标、备份策略和预算。

8. 关键结论

  • RAID 的本质是在性能、容量、可靠性和成本之间做取舍。
  • RAID 0 性能好但无冗余,不适合关键数据。
  • RAID 1 简单可靠,适合系统盘和小容量关键数据。
  • RAID 5 容量利用率高,但大容量磁盘重建风险较高。
  • RAID 6 容错更强,适合大容量可靠存储。
  • RAID 10 性能与可靠性较均衡,适合数据库和虚拟化。
  • RAID 不是备份,重要数据必须有独立备份和恢复演练。

关联文档

Yanche Blog

记录云原生、Linux、数据库等技术领域的学习心得,以及日常生活的思考与感悟。

© 2026 Yanche Blog. All rights reserved.

Powered by Astro