写策略怎么选
写策略决定控制器在什么时点向操作系统确认写完成。Write-Back(WB)先把数据写进卡上缓存就返回,性能高,但必须有掉电保护兜底;Write-Through(WT)等数据真正落到盘再返回,更安全但慢。部分卡还提供 Always Write Back,即忽略电池状态强行使用缓存加速,性能最好但掉电丢数据的风险完全由业务承担,生产环境不建议开启。
策略对照
| 策略 | 行为 | 性能 | 掉电风险 |
|---|---|---|---|
| Write-Back | 先写缓存后落盘 | 高 | 有电池或电容保护时可控,无保护则丢数据 |
| Write-Through | 直写磁盘后返回 | 低 | 无缓存数据丢失 |
| Always Write Back | 忽略电池状态使用缓存 | 最高 | 完全依赖运气,不建议生产使用 |
查看与修改(storcli 示例)
查看与修改(storcli 示例)
storcli /c0/v0 show all | grep -i "write" # 查看当前写策略
storcli /c0/v0 set wrcache=WB # 改为 Write-Back
storcli /c0/v0 set wrcache=WT # 改为 Write-Through
storcli /c0/bbu show all | grep -iE "state|Failed" # 确认保护模块状态
storcli /c0/cv show all # 电容(CacheVault)状态相关概念
| 保护模块 | BBU 电池或超级电容 + 闪存模块,负责掉电时把缓存内容保存下来 |
|---|---|
| Learn Cycle | 电池定期自检,期间策略可能临时降级为 Write-Through |
| Read 策略 | Direct 与 Cached,影响顺序读的预读行为 |
| 策略漂移 | 更换电池或固件升级后策略可能被重置,交付验收要复核 |
怎么选
- 有健康的电池或电容:Write-Back,兼顾性能与安全
- 保护模块故障或未安装:Write-Through,宁可慢也不要丢
- 性能压测阶段:可临时启用 Write-Back 观察上限,压测结束回到与保护状态匹配的策略
- 任何情况下都不建议 Always Write Back:性能数字好看,代价是数据
电池或电容故障时部分卡会自动切到 Write-Through;发现性能突变时先查缓存策略是否被降级,再怀疑别的地方。