RAID 级别与计算68 条

阵列重建时间估算

重建时间 ≈ 阵列容量 ÷ 有效重建速率。重建速率受盘型、控制器与业务压力影响(常见 100~200MB/s),大容量盘的重建以小时甚至天计。

重建时间怎么估

重建时间 ≈ 需要重建的数据量 ÷ 有效重建速率。校验级别(RAID 5/6)要读遍所有存活盘并重算校验,重建量约等于单盘容量;镜像级别只需从镜像副本整盘复制。速率方面,企业级 RAID 卡在空闲状态下常见 100~200MB/s,但业务一压上来就会明显下降,所以估算时按打七折甚至对半,比按峰值算更接近现实。

重建时间粗算(按 150MB/s)

单盘容量重建数据量(RAID 5/6)估算时间
2TB≈ 2TB≈ 4 小时
4TB≈ 4TB≈ 7.5 小时
8TB≈ 8TB≈ 15 小时
16TB≈ 16TB≈ 30 小时

监控重建进度

监控重建进度
cat /proc/mdstat                                   # md 阵列:看 resync/recovery 百分比
mdadm --detail /dev/md0 | grep -i -E 'rebuild|percent'  # 软 RAID 详细进度
storcli /c0/v0 show rebuild                        # 硬件卡:逻辑盘重建进度
storcli /c0/eall/sall show | grep -i Rbld          # 硬件卡:哪些盘正在重建

压低重建速率的五个因素

  • 业务 IO 抢占:重建是后台任务,与业务共用同一批盘的带宽
  • 重建限速设置:卡上 Rebuild Rate 被设低会被主动限制速度
  • 盘型与接口:SATA 近线盘与 SAS 企业盘的持续写带宽差距明显
  • 阵列宽度与级别:RAID 6 需要两套校验运算,CPU 或卡上算力可能成为瓶颈
  • 坏道重试:遇到难读扇区时卡会反复重试,单个坏块就能拉长数小时
硬件卡可以调整重建速率(rebuild rate,百分比)在恢复速度与业务影响之间取舍:业务高峰把速率调低,夜间再调高,是常见做法。
重建期间是阵列最脆弱的阶段: RAID 5 在此时已经没有任何容错余量,任何一次读错误都可能让重建失败。重建期不要叠加备份、批量任务与固件升级。

把窗口压短的四个动作

  • 提前备好同规格新盘或热备盘,坏盘当天就能开始重建
  • 把重建速率调高并收紧业务负载,必要时暂停批处理与备份任务
  • 错峰安排:把重建落在业务低谷期,避免与月末跑批撞车
  • 坏盘原因未查清前不要反复重建:链路问题会让重建一次次失败,白耗窗口

易错点

  • 按空闲状态速率估算完成时间:真实环境有业务 IO,实际常常要按打七折甚至对半估计
  • 重建期间安排其他高负载任务(备份、批处理、系统补丁),进一步拉长风险窗口
  • 不留热备盘:坏盘后要等人上门、等采购到货,窗口从「几小时」变成「几天」
  • 只看百分比不看预计剩余时间:不同阶段的速率会变化,劣化时百分比容易误导排期
  • 把重建当成完全无感的后台任务:重建期业务延迟会上升,SLA 敏感业务要提前告知并限速

数据来源与参考

  • man 8 mdadm(重建状态)
  • Broadcom MegaRAID 用户指南(后台任务属性)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌