首页/系统/服务器硬件与 RAID 速查/整条带写与读改写(RMW)
RAID 级别与计算68 条

整条带写与读改写(RMW)

写满一整条带时控制器直接计算新校验写入,无需读取旧数据;跨条带或部分条带写则要先读旧数据与旧校验再合并,这是 RAID 5/6 写性能差异的根源。

两种写路径

场景过程代价
整条带写新数据直接到达所有盘,校验一次算出无额外读,接近全速
部分条带写读旧数据 + 读旧校验 + 写新数据 + 写新校验4 次物理 IO(RAID 5)

用 dd 验证顺序写收益(注意仅在测试环境)

用 dd 验证顺序写收益(注意仅在测试环境)
dd if=/dev/zero of=/mnt/raidtest/test.bin bs=1M count=4096 oflag=direct
日志、数据库等小写场景把条带与文件系统块调小反而更有利;批量顺序写场景倾向大条带。

易错点

  • 在 RAID 5 上跑 4KB 小块随机写并对齐错误:每个写都触发 RMW,性能与 RAID 0 差距巨大
  • 测试时忘记 oflag=direct,页缓存吸收了写操作,测不出真实阵列行为

数据来源与参考

  • 《The RAID Book》(read-modify-write)
  • Broadcom MegaRAID 用户指南
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌