Linux查看RAID卡BBU状态必须用MegaCli64或storcli,因BBU由控制器固件独立管理,不接入ACPI或power_supply内核子系统;upower和acpi对其无效。

Linux 系统本身不直接暴露存储控制器电池(BBU 或超级电容)的状态,这类硬件级告警由底层存储设备(如华为 OceanStor、Dell PERC、HPE Smart Array、LSI/Avago RAID 卡等)的固件和管理工具负责检测与上报。当控制器电池故障时,系统最典型的外在表现是:写缓存被强制禁用,性能骤降,且文件系统可能频繁进入只读状态。排查需从“现象定位 → 日志溯源 → 硬件验证 → 配置确认”四步展开。
看性能与缓存策略是否异常
这是最快速的初步判断依据:
- 执行 lshw -class storage -short 或 lspci | grep -i raid\|storage 确认所用控制器型号(如 LSI MegaRAID、Avago SAS3508、Huawei RAID 控制器等);
- 对 RAID 卡,使用厂商工具检查当前写缓存策略:
– MegaRAID:运行 storcli /c0 show,关注 Write Cache 和 Cache Policy 字段,若显示 Disabled 或 WT(Write-Through)而非 WB(Write-Back),即为缓存关闭;
– Huawei OceanStor:通过 DeviceManager 查看“系统 > 硬件”,故障控制器缓存状态显示“写策略:透写”; - 观察 I/O 性能:用 iostat -x 1 持续监控,若 %util 接近 100% 但 r/s、w/s 极低,且 await 显著升高,符合透写模式特征。
查内核与 RAID 管理日志中的关键线索
电池异常会触发控制器主动降级,并向主机上报事件:
- 运行 dmesg -T | grep -i -E "bbu|battery|cache|raid|megaraid|hpda|avago|0xf00c90015",重点查找:
– “BBU not present”、“BBU failed”、“Cache disabled due to BBU fault”;
– 华为存储的 0xF00C90015 告警(控制器写Cache被关闭);
– LSI 卡常见提示如 “Write cache disabled: BBU not present or failed”; - 检查系统日志:journalctl -b | grep -i -E "battery|cache|raid";
- 若部署了 RAID 监控服务(如 megacli、storcli 定时采集),查看其历史告警记录或邮件通知。
用专用工具直读控制器与 BBU 状态
必须依赖对应硬件厂商提供的 CLI 工具,通用 smartctl 对控制器电池无效:
-
LSI/Avago/Broadcom 卡:
– 安装 storcli:yum install storcli 或下载最新版;
– 执行:storcli /c0 /bbu show,输出中关注 State(应为 Optimal)、Relative State of Charge(≥ 85% 为健康)、Design Capacity vs Current Capacity;
– 若显示 Failed 或 Unknown,基本确认 BBU 故障; -
Huawei 存储:
– 登录 DeviceManager Web 界面,导航至“系统 > 硬件”,点击控制器查看详细信息;
– 或使用命令行工具 smiscli(需安装配套包)查询 BBU 状态; -
Dell PERC 卡:
– 使用 megacli -AdpBbuCmd -GetBbuStatus -aALL;
– 注意输出中 Relative State of Charge 和 Charger Status 是否正常。
排除其他诱因并确认修复效果
BBU 故障常与其他问题并发,需交叉验证:
- 检查电源模块:storcli /c0 /eall /sall show 确认所有电源(PSU)状态为 OK;
- 检查温度与风扇:过热会导致 BBU 保护性关断,运行 ipmitool sdr type temperature 和 ipmitool sdr type fan;
- 更换 BBU 后,需重启控制器或执行命令启用缓存(如 storcli /c0 set wrcache=on),再用 storcli /c0 show 确认策略已恢复为 WB;
- 切勿跳过验证:启用回写缓存后,务必用 fio 或 dd 测试随机写性能是否回归正常水平。


















