RAID 级别与计算68 条

重建优先级与限速

重建速率可在「尽快恢复冗余」与「少影响业务」之间调节:LSI 卡用 Rebuild Rate 百分比,md 用 speed_limit 两条内核参数;巡检脚本要核对限速设置是否被临时调整。

重建优先级是什么

重建速率可在两个目标之间调节:尽快恢复冗余以缩短风险窗口,或者压低后台负载以减少对业务的影响。硬件卡通常用百分比形式的重建速率参数,Linux 软阵列则用内核的限速参数以字节每秒为单位控制。调参本身不是问题,问题在于临时调低后没人把它调回来,导致阵列长期以低速重建。

基本信息

软阵列限速/proc/sys/dev/raid/speed_limit_min 与 speed_limit_max,单位字节每秒
硬件卡限速storcli /c0 set rebuildrate=<百分比>,按卡支持范围取值
查看方式storcli /c0 show 中的重建速率字段,或读取内核参数文件
临时调整记录在变更记录里写明原值、调整人、恢复时间

md 限速(字节每秒)

md 限速(字节每秒)
cat /proc/sys/dev/raid/speed_limit_min     # 查看下限
echo 200000 > /proc/sys/dev/raid/speed_limit_max   # 临时压低上限
echo 200000 > /proc/sys/dev/raid/speed_limit_min   # 下限同样需要压低才生效
cat /proc/mdstat                            # 观察重建速率变化

LSI 卡重建速率(示例值 30%)

LSI 卡重建速率(示例值 30%)
storcli /c0 show | grep -i rebuild         # 查看当前速率
storcli /c0 set rebuildrate=30             # 设置为 30%
storcli /c0 show | grep -i rebuild         # 读回确认

调优取向

目标做法代价
尽快恢复冗余提高重建速率业务延迟与吞吐受影响
保护业务体验压低重建速率风险窗口变长,再次故障后果更重
夜间加速按时间段切换速率需要自动化与恢复机制,否则容易忘记

典型使用场景

  • 业务高峰期:临时压低重建速率,避免延迟抖动影响用户体验
  • 低峰窗口:调高速率,尽快回到冗余完整状态
  • 大容量盘重建:按预计耗时评估是否需要跨天完成
  • 性能问题排查:确认重建任务是否与业务性能下降同时发生
  • 巡检核对:定期检查限速参数是否仍为非默认值,避免长期偏离
业务高峰期把重建速率压低、夜间调高是常见做法,但要在变更记录里标注恢复原值的责任人与时间。
在阵列处于降级状态时,重建是唯一恢复冗余的途径;把速率压得过低会显著延长无保护窗口,遇到第二块盘故障时后果直接体现为数据丢失。

易错点

  • 限速调低后忘记恢复:阵列长期以低速重建,风险窗口被拉长
  • 只改上限不改下限:软阵列实际速率由两个参数共同约束,改一个可能看不到效果
  • 无记录地临时调参:交接班后没人知道参数被改过,排查性能问题时误判原因

数据来源与参考

  • man 4 md(speed_limit)
  • storcli 命令参考(rebuildrate)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌