软 RAID 状态看哪里
Linux 软件 RAID 由 md 驱动实现,状态集中在两处:/proc/mdstat 给出阵列概况与重建进度,mdadm --detail 给出每个成员盘的槽位、状态与阵列参数。日常巡检关注三件事——有没有盘掉线(degraded)、正在重建的进度、以及各盘是否还有 spare。发现状态异常时,动手前先备份数据是硬性规矩。
基本信息
| 总览 | cat /proc/mdstat |
|---|---|
| 明细 | mdadm --detail /dev/md0 |
| 单盘检查 | mdadm --examine /dev/sdc1 |
| 状态标记 | U 表示正常,_ 表示缺盘;[U_] 即降级 |
| 重建速度 | /proc/sys/dev/raid/speed_limit_min 与 speed_limit_max |
| 权限要求 | 普通用户可读 /proc/mdstat;mdadm 详细操作需 root |
典型使用场景
- 巡检确认 RAID 是否处于健康状态
- 告警提示阵列降级后定位具体是哪块盘异常
- 更换坏盘后跟踪重建进度与剩余时间
- 排查 I/O 性能下降时确认是否有阵列在重建
- 交付前核对阵列成员数量与规划文档一致
查看命令
查看命令
cat /proc/mdstat # 阵列名称、成员、状态与重建进度
mdadm --detail /dev/md0 # 每块盘的槽位编号、状态、设备名
df -h /mnt/data # 顺带确认阵列上的文件系统仍可读写
mdadm --examine /dev/sdc1 | grep -E 'State|Array UUID' # 单盘级状态与所属阵列
iostat -x 1 3 2>/dev/null | tail -5 # 重建期间磁盘压力观察
cat /proc/sys/dev/raid/speed_limit_min # 查看重建最低速率设置降级与重建处置
降级与重建处置
watch -n 5 cat /proc/mdstat # 跟踪重建进度,避免反复手工刷新
mdadm --detail /dev/md0 | grep -E 'State|Active Devices|Failed|Spare'
# 换盘前按槽位核对物理位置,确认目标盘无误再动手
echo 50000 > /proc/sys/dev/raid/speed_limit_min # 提高重建速度下限(会增加 I/O 压力)
journalctl -k | grep -i -E 'md|raid' | tail -20 # 内核日志里常能看到掉盘原因输出逐列读法
| 字段 | 含义 | 正常与异常 |
|---|---|---|
| md0 : active raid1 | 阵列名称与级别 | 出现 inactive 说明阵列未启用 |
| [2/2] [UU] | 成员数/在线数 与状态 | [1/2] [U_] 表示有一块盘缺失 |
| blocks | 阵列容量 | 与成员盘数量级别对不上需核查 |
| State | 阵列或盘的状态 | degraded、faulty、removed 都是异常值 |
| Active Devices | 当前生效成员数 | 少于预期即为降级运行 |
| sync / recovery 进度 | 重建百分比与速度 | 长期停在 0% 需查盘与控制器 |
| Spare Devices | 热备盘数量 | 为 0 时掉盘后无自动顶替 |
发现 [U_] 或 degraded 时:先备份数据,再按 mdadm --detail 给出的槽位与物理位置逐一核对目标盘,拔错盘会让阵列彻底不可用。
重建期间避免重启与高负载:重建本身就在满负荷读盘,此时重启可能中断重建,高 I/O 业务也会被明显拖慢。