RAID 级别与计算68 条

RAID 5 读性能特性

RAID 5 的读请求由所有数据盘并发完成(校验盘不参与读),顺序读接近全盘带宽;随机读受条带分布影响,在机械盘上提升有限,SSD 上更明显。

RAID 5 读性能是什么

RAID 5 的读请求由数据盘并发完成,校验盘不参与读,因此顺序读接近全盘带宽聚合;随机读的可并行度取决于请求能否散列到多个成员盘,机械盘上受寻道限制提升有限,SSD 上提升更明显。降级状态下读请求需要用其余数据盘重建缺失数据,性能会下降且延迟波动更大。

基本信息

顺序读接近全盘带宽聚合,受控制器与链路限制
随机读约等于参与读的成员盘数量乘以单盘能力
降级读缺盘时由其余盘重建数据,性能下降但通常仍可访问
影响因素条带大小、读策略、缓存命中率与业务访问模式

实测读带宽(顺序,绕过缓存)

实测读带宽(顺序,绕过缓存)
fio --name=seqread --rw=read --bs=1M --direct=1 --size=8G --filename=/mnt/raid/test.bin --runtime=60
fio --name=randread --rw=randread --bs=4k --direct=1 --iodepth=32 --size=4G --filename=/mnt/raid/test.bin --runtime=60
cat /proc/mdstat                                  # 软阵列核对是否处于降级状态
storcli /c0/vall show | grep -i -E "Optl|Dgrd"     # 硬件卡核对阵列状态

读性能影响因素

因素影响说明
条带大小影响随机读的并行度条带过小会使单次请求跨盘过多
读策略决定是否预读顺序场景开启预读收益明显
缓存命中率决定实际落到盘的 IO测试口径不统一会导致结论偏差
阵列状态降级时读性能下降重建期间波动更明显

典型使用场景

  • 验收测试:按顺序与随机两类口径分别测量并留档
  • 容量与性能规划:评估加盘对读带宽的实际收益
  • 降级演练:确认降级状态下业务是否仍可接受
  • 调优验证:调整读策略或条带后回归对比
  • 故障复盘:用历史测试数据判断性能变化是否与硬件变更相关
读缓存命中会显著抬高测试结果;做容量与性能对比时统一使用直接 IO 口径,避免把缓存效果当成盘的能力。

常见疑问

  • 为什么随机读提升不明显:机械盘的寻道时间成为瓶颈,并行度无法弥补
  • 降级时读还安全吗:数据可访问但无冗余,应尽快恢复,不要在此时做高负载测试
  • 重建期间能否做性能测试:不建议,测试结果不具代表性且会拖慢重建

易错点

  • 用缓存命中结果评估阵列读能力:真实业务多为非命中路径
  • 忽略降级状态的读性能变化:重建期间的读延迟波动需要业务侧预案
  • 在重建期间做性能验收:后台任务占用带宽,测得数值不具参考价值

数据来源与参考

  • fio 官方文档(--direct 说明)
  • Broadcom MegaRAID 用户指南(性能)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌