mdadm 是什么
mdadm 是 Linux 软件 RAID 的管理入口:查看阵列状态、装配与停止阵列、标记与移除故障盘、加入新盘触发重建。判断阵列是否健康主要看两处:状态摘要里的健康提示与降级标记,以及各成员盘的标记位。换盘流程的核心是「先标记故障、再移除、换新盘后加入、盯住重建进度」,重建期间阵列没有冗余保护,操作要格外小心。
基本信息
| 适用平台 | GNU/Linux(需安装 mdadm,内核支持软 RAID) |
|---|---|
| 语法 | -D 详情、-A 装配、-S 停止、--fail/--remove/--add 管理成员盘 |
| 状态来源 | 阵列概览文件与详情输出 |
| 降级特征 | 状态显示降级且成员标记出现缺失位 |
| 数据风险 | 带校验的阵列在降级状态下再坏一块即丢数据 |
| 分区要求 | 成员盘分区类型需设为 RAID 自动识别 |
典型使用场景
- 确认阵列是否健康,是否有成员盘掉线。
- 更换故障盘:标记、移除、加入新盘并观察重建。
- 机器重启后重新装配未自动启动的阵列。
- 扩容前评估阵列当前容量与冗余状态。
- 排查重建缓慢对业务 IO 的影响。
查看与换盘流程
查看与换盘流程
cat /proc/mdstat # 阵列概览与重建进度
mdadm -D /dev/md0 | head -n 30 # 详情:状态与成员盘
mdadm /dev/md0 --fail /dev/sdb1 # 1 标记故障盘
mdadm /dev/md0 --remove /dev/sdb1 # 2 移除故障盘
mdadm /dev/md0 --add /dev/sdb1 # 3 加入新盘,开始重建
watch -n 30 cat /proc/mdstat # 4 观察重建进度
mdadm -A /dev/md0 /dev/sdc1 /dev/sdd1 # 手动装配阵列状态与标记读法
| 状态或标记 | 含义 | 处理方向 |
|---|---|---|
| 状态为健康 | 阵列正常 | 例行检查成员盘即可 |
| 状态为降级 | 有成员盘掉线 | 更换故障盘并确认重建完成 |
| 成员标记带缺失位 | 该成员不可用 | 标记并移除后加入新盘 |
| 重建进度 | 百分比与剩余时间 | 重建期间避免高负载操作 |
| 分区类型 | 需为 RAID 自动识别类型 | 类型不对时加入会报错 |
| 重建期间 | 无冗余保护 | 避免同时叠加其他高 IO 任务 |
阵列重建非常占用 IO:重建期叠加备份或大批量任务会显著拖慢业务,应错峰进行并持续监控重建进度。
新盘加入前要确认已分区且分区类型正确,否则加入操作会直接报错,容易被误判为硬盘故障。
数据安全上要留意:降级状态下阵列没有冗余保护,必须确认重建完成、成员标记全部恢复正常,才算真正恢复健康。