软 RAID 是什么
软 RAID 由内核的 md 驱动实现,用 mdadm 管理,把多块物理盘组合成一个逻辑设备以获得冗余或性能:RAID1 两盘镜像、RAID5 条带加单校验、RAID6 双校验、RAID10 先镜像再条带。安装器里可以直接创建,也可以装完系统用 mdadm 手工建。注意云主机上的云盘已经做了底层冗余,再叠加软 RAID 通常没有收益;单盘机器也谈不上冗余。
基本信息
| 适用平台 | 全部 Linux 发行版,内核 md 驱动 |
|---|---|
| 管理工具 | mdadm |
| 常用级别 | RAID1 镜像、RAID5 容量加冗余、RAID6 双校验、RAID10 镜像加条带 |
| 监控 | cat /proc/mdstat、mdadm --detail /dev/md0 |
| 配置持久化 | mdadm --detail --scan 写入 /etc/mdadm.conf |
典型使用场景
- 数据盘冗余:两块盘做 RAID1,单盘故障不影响业务读取
- 容量与冗余兼顾:多盘做 RAID5 或 RAID6,牺牲部分容量换容错
- 性能提升:RAID10 兼顾读写性能与镜像冗余,数据库常选
- 容量整合:把多块小盘合成一个大逻辑卷便于统一管理
- 故障演练:模拟拔盘验证重建流程与告警是否有效
创建 RAID1 并持久化
创建 RAID1 并持久化
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT # 先确认成员盘与用途
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
cat /proc/mdstat # 看阵列状态与同步进度(resync)
mdadm --detail /dev/md0 | head -20 # 看阵列级别、成员与状态
mdadm --detail --scan >> /etc/mdadm.conf # 写入配置,供开机自动组装
mkfs.xfs /dev/md0 # 在阵列设备上建文件系统
echo '/dev/md0 /data xfs defaults 0 0' >> /etc/fstab
mkdir -p /data && mount -a && df -h /data # 挂载并验证监控与故障处理
监控与故障处理
cat /proc/mdstat # 看 [2/2] [UU]:U 表示成员正常
mdadm --detail /dev/md0 | grep -E 'State|Active|Failed'
mdadm /dev/md0 --fail /dev/sdc --remove /dev/sdc # 标记故障盘并移出
mdadm /dev/md0 --add /dev/sdd # 加入新盘开始重建
cat /proc/mdstat # 重建期间看进度与速度
dnf install -y mdadm && systemctl enable --now mdmonitor 2>/dev/null状态读法
| 显示 | 含义 | 处理 |
|---|---|---|
| [UU] | 两块成员盘均正常 | 无需处理 |
| [U_] | 有一块盘缺失或故障 | 排查该盘,准备替换并重建 |
| [2/2] | 可用成员数/总数均为 2 | 正常状态 |
| resync / recovery | 正在同步或重建 | 期间性能下降,避免高峰期操作 |
| State : clean | 阵列状态正常 | 重建完成后期望值 |
| State : degraded | 降级运行 | 尽快恢复冗余,别再叠加大批量写入 |
RAID 不是备份:误删、误覆盖与勒索加密同样会写穿所有成员盘,重要数据仍须独立备份。
RAID5 在重建期间只有单层校验,且大容量盘重建耗时长,重建窗口内再坏一块盘就整体失效;容量越大越要谨慎评估。