current cache policy 显示 writeback 表示实际启用回写策略,writethrough 表示直写;若含“no write cache if bad bbu”,需立即检查bbu状态,因bbu异常会强制降级为writethrough。

用 MegaCli 查 Current Cache Policy 行最准
RAID卡实际生效的写策略,不看默认值、不看 BIOS 设置界面,只认 Current Cache Policy 这一行输出。它反映的是当前硬件真实执行的策略,受 BBU 状态、固件逻辑、甚至上次异常断电影响,可能和 Default Cache Policy 完全不同。
执行命令:MegaCli -LDInfo -Lall -aALL | grep "Current Cache Policy"
- 输出含
WriteBack:说明当前启用回写,写操作先落缓存即返回,性能高但依赖 BBU 正常 - 输出含
WriteThrough:说明当前为直写,数据绕过缓存直接写盘,性能低但安全 - 若同时看到
No Write Cache if Bad BBU,要立刻检查 BBU 状态——哪怕你设了 WriteBack,BBU 一异常就自动降级成 WriteThrough
BBU 异常会导致 WriteBack 自动失效
这是最常被忽略的“策略失灵”原因。很多运维看到 Default Cache Policy 是 WriteBack 就以为万事大吉,结果 IO 性能上不去,查半天才发现 BBU 已掉电或老化。
必须补查 BBU 状态:MegaCli -AdpBbuCmd -GetBbuStatus -aALL | grep -E "(Relative State|Is Battery Pack Missing|Charger Status)"
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
Relative State of Charge: 0%或Charger Status: Not Charging:BBU 失效,WriteBack 被强制禁用 -
Is Battery Pack Missing: Yes:物理电池缺失,控制器按安全策略降级 - 即使 BBU 状态正常,也要注意
Next Learn Cycle时间是否过期(长期未校准会影响判断)
storcli 用户请改用 show 子命令
新版本 LSI/Avago 卡(特别是 3.0+ 固件)推荐用 storcli 替代已停止维护的 MegaCli。语法更清晰,且对 BBU 状态提示更明确。
查当前策略:storcli /c0/vall show
- 找
Cache Policy字段下的Current值,不是Default - 同时检查
BBU Status行,值为Optimal才代表可安全启用 WriteBack - 如果看到
CacheCade或Drive Cache相关字段,它们和 RAID 卡缓存策略无关,别混淆
别把 hdparm -W 和 RAID 卡策略搞混
hdparm -W /dev/sdX 查的是单块硬盘自身的写缓存开关(Write Cache),和 RAID 控制器的 WriteBack/WriteThrough 是两层东西。前者在 HBA 直通或 JBOD 模式下才起作用;后者是 RAID 卡固件控制的数据流向逻辑。
- RAID 卡启用
WriteThrough时,即使硬盘-W是 1,数据仍不进 RAID 缓存 - RAID 卡启用
WriteBack时,硬盘自身的写缓存通常会被控制器屏蔽或忽略 - 两者叠加配置(比如 RAID WriteBack + 硬盘 Write Cache)反而可能引发元数据不一致,官方不推荐
Current Cache Policy 为准,而它背后真正的开关,往往不是配置命令,而是那块快没电的 BBU。










