Linux监控软件RAID同步进度主要通过/proc/mdstat查看实时状态(如resync=XX.X%、speed、finish)和mdadm --detail获取详细信息(如Rebuild Status、State、Bitmap),并可用watch或循环日志持续跟踪。

Linux 中监控软件 RAID 的数据同步进度,主要依赖内核维护的实时状态接口和 mdadm 提供的结构化信息。同步通常发生在阵列创建、扩容、更换故障盘或添加新成员后,过程可能持续数小时甚至更久,及时掌握进度对运维决策很关键。
查看 /proc/mdstat 获取实时同步状态
这是最直接、开销最低的方式,适合快速确认是否正在同步及当前百分比:
- 执行
cat /proc/mdstat,观察输出中对应mdX设备行末尾是否有resync = XX.X%、recovery = XX.X%或check = XX.X%等字样 - 括号内状态如
[UUU]表示三块盘均正常,[_UU]表示一块已失效;同步中常伴随active sync或spare rebuilding描述 - 若看到
speed=12345K/sec,说明当前同步速率;finish=45.2min是预估剩余时间(该值会动态变化)
用 mdadm --detail 查看详细同步信息
该命令补充了 /proc/mdstat 缺失的上下文,比如同步起始时间、已完成扇区数、是否启用位图加速等:
- 运行
sudo mdadm --detail /dev/md0(将/dev/md0替换为你的阵列设备) - 关注
Rebuild Status :行(如有),明确显示 “12% complete” 或 “finished” - 检查
State :是否含clean, checking, recovering, resyncing等关键词;Active Devices :数值应等于预期盘数,否则说明有盘未参与同步 - 若启用写意图位图(write-intent bitmap),同步会显著加快,输出中会显示
Bitmap : internal
持续跟踪同步过程(可选进阶)
对于长时间同步任务,建议用简单循环或日志记录方式避免反复手动敲命令:
- 每 10 秒刷新一次状态:
watch -n 10 'cat /proc/mdstat' - 将同步日志重定向到文件便于回溯:
while true; do echo "$(date): $(cat /proc/mdstat | grep -E 'resync|recovery|check')"; sleep 60; done >> /var/log/raid-sync.log - 注意:不要在同步过程中执行
mdadm --stop或强制卸载阵列,可能导致元数据损坏
同步完成时,/proc/mdstat 中不再出现进度提示,mdadm --detail 的 State 会回归 clean 或 active,且所有成员盘状态均为 active sync。不复杂但容易忽略。


















