缓存策略怎么改
虚拟盘的缓存策略直接决定写性能与掉电风险。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 与预读的组合
- 写性能突然下降时核对策略是否被自动降级为直写
- 交付时记录并统一各虚拟盘的策略取值
- 更换电池或电容后确认写策略是否已恢复
- 追求高分场景关闭成员盘自带缓存,避免掉电丢数据
常用参数
| 参数 | 取值 | 说明 |
|---|---|---|
| wrcache | WB / WT | 写回与直写 |
| ra | RA / NoRA | 预读开关 |
| pdcache | on / off | 物理盘自带缓存,RAID 成员盘建议 off |
| iopolicy | direct / cached | IO 路径策略,依卡型支持情况而定 |
读取与设置
读取与设置
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 场景由卡缓存承担加速职责。
两层策略要分清:卡级设置决定整体默认与保护逻辑,虚拟盘级设置覆盖单个盘。排查「设了不生效」时先看卡级策略与保护单元状态,再逐个虚拟盘回读实际值,最后才考虑固件差异。
变更缓存策略不需要重启,但对在线业务有即时影响:写回切直接写会立刻抬高写延迟,建议在维护窗口或业务低峰执行并记录变更。