mdadm --detail仅输出一次快照,用于确认RAID逻辑结构完整性、成员盘识别及角色;实时同步进度须用watch -n 2 cat /proc/mdstat,通过recovery = XX.X%或resync = XX.X%及[UU]/[U_]等状态字符判断。

mdadm --detail 本身不直接报告物理硬盘的健康状态,也不能“实时”刷新进度——它只输出一次快照。要监控同步进度和物理盘状态,需结合 /proc/mdstat 和底层工具(如 smartctl),mdadm --detail 的作用是确认逻辑结构是否完整、成员盘是否被正确识别及当前角色。
看同步进度:用 /proc/mdstat 最直接
这是唯一能动态反映重建、检查或恢复进度的内核接口:
- 执行
watch -n 2 cat /proc/mdstat,每2秒刷新一次,直观看到recovery = XX.X%或resync = XX.X% - 括号中状态字符很关键:
[UU]表示两块都在线同步,[U_]表示一块失效,表示另一块失效</li> <li>若出现 <code>spare rebuilding
,说明热备盘正在同步数据,此时阵列处于降级但可运行状态
查物理盘是否被阵列识别及角色:靠 mdadm --detail
它告诉你“谁在岗、谁在修、谁已掉线”,但不判断硬盘本身是否将坏:
- 运行
sudo mdadm --detail /dev/md0(替换为你的阵列设备) - 重点看 State 行:若含
clean, degraded,说明有盘离线;若只有clean,通常表示健康 - 滚动到底部看每个设备的 RaidDevice State 列:常见值有
active sync(主力)、spare rebuilding(热备同步中)、faulty(已被标记故障) - 注意 Failed Devices 数值,非零即需干预;Working Devices 应等于预期盘数
验物理硬盘真实健康:必须用 smartctl
mdadm 管不到 SMART 层。一块盘可能还在阵列里显示 active sync,但 SMART 已报 Reallocated_Sector_Ct 飙升或 UDMA_CRC_Error_Count 异常:
- 先查该盘设备名,例如从
mdadm --detail输出中看到/dev/sdb1是成员盘 - 执行
sudo smartctl -a /dev/sdb(注意是整盘/dev/sdb,不是分区) - 关注字段:
SMART overall-health self-assessment test result: PASSED是基础门槛;Reallocated_Sector_Ct、Current_Pending_Sector、UDMA_CRC_Error_Count若非零且持续增长,预示硬件风险
辅助验证与告警建议
单靠命令敲一遍不够,日常运维建议组合使用:
- 用
dmesg | grep -i "raid\|md\|ata"快速捕获最近内核层 RAID 相关报错(如链路断开、超时) - 配置
MAILADDR到/etc/mdadm/mdadm.conf,让 mdadm 在状态变化时自动发邮件提醒 - 定期跑
echo check > /sys/block/md0/md/sync_action触发一致性校验,结果会记入系统日志供后续分析


















