首页/系统/服务器硬件与 RAID 速查/storcli 设置缓存与策略
阵列卡管理68 条

storcli 设置缓存与策略

storcli /c0/vN set 可调整单个虚拟盘的写策略、读策略与磁盘缓存(pdcache);策略与固件版本相关,改后必须回读验证。

缓存策略怎么改

虚拟盘的缓存策略直接决定写性能与掉电风险。storcli /c0/v<N> set 可以调整写策略(wrcache)、预读(ra)与物理盘自带缓存(pdcache)等参数。这些设置与固件版本、以及卡上保护单元是否健康有关,改完必须回读验证:实际生效值可能被卡级策略覆盖。

基本信息

设置命令storcli /c0/v<N> set wrcache=.. ra=.. pdcache=..
读取方式storcli /c0/v<N> show all 中查看 Cache Policy 字段
写回前提缓存保护单元(电池或电容)健康
验证要求改后必须回读,以回读值为准
权限要求root

典型使用场景

  • 数据库等随机写密集场景评估 Write Back 与预读的组合
  • 写性能突然下降时核对策略是否被自动降级为直写
  • 交付时记录并统一各虚拟盘的策略取值
  • 更换电池或电容后确认写策略是否已恢复
  • 追求高分场景关闭成员盘自带缓存,避免掉电丢数据

常用参数

参数取值说明
wrcacheWB / WT写回与直写
raRA / NoRA预读开关
pdcacheon / off物理盘自带缓存,RAID 成员盘建议 off
iopolicydirect / cachedIO 路径策略,依卡型支持情况而定

读取与设置

读取与设置
storcli /c0/v0 show all | grep -Ei "Cache|Policy"      # 读取当前策略
storcli /c0/vall show all | grep -iE "VD|Cache Policy"  # 批量确认所有虚拟盘的策略
storcli /c0/v0 set wrcache=WB ra=RA pdcache=off         # 设写回、开预读、关盘缓存
storcli /c0/v0 show all | grep -i -E "cached|policy"     # 回读验证实际生效值
storcli /c0 show | grep -iE "BBU|Battery|CacheVault"     # 确认保护单元状态,这是 WB 的前提
成员盘 pdcache 建议关闭:盘上缓存掉电会丢数据,RAID 场景由卡缓存承担加速职责。
两层策略要分清:卡级设置决定整体默认与保护逻辑,虚拟盘级设置覆盖单个盘。排查「设了不生效」时先看卡级策略与保护单元状态,再逐个虚拟盘回读实际值,最后才考虑固件差异。
变更缓存策略不需要重启,但对在线业务有即时影响:写回切直接写会立刻抬高写延迟,建议在维护窗口或业务低峰执行并记录变更。

易错点

  • 批量给所有虚拟盘设 WB 却未确认保护单元健康:掉电时缓存数据无法回写,属于典型的数据安全与审计问题
  • 设置成功但不回读:部分参数会被卡级策略覆盖,命令值不等于实际生效值
  • 在虚拟化或数据库主机上开预读而未压测:顺序读场景收益明显,随机读场景可能只增加无效 IO
  • 为提升跑分打开 pdcache:单盘缓存掉电即丢数据,且部分卡不支持在成员盘上做回写保护

数据来源与参考

  • storcli 命令参考(set / set cache)
  • Broadcom MegaRAID 用户指南
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌