缓存与掉电保护
阵列卡上的缓存从 256MB 到数 GB 不等,是随机写性能的关键:写请求先在缓存里合并、排序,再以更优的顺序落盘。但缓存也带来风险——掉电时里面的数据会丢。BBU(电池)与 CacheVault(超级电容加闪存)就是为此存在的保护单元,它们的状态直接决定 Write-Back 策略能不能启用,也决定同一块阵列在故障前后的性能表现。
基本信息
| 缓存的作用 | 合并随机写、预读、缓存命中,提升 IOPS 并降低延迟 |
|---|---|
| BBU 电池 | 需定期充放电自检(Learn Cycle),电池老化后容量下降直至失效 |
| 超级电容 | 无记忆效应、寿命更长,掉电时把缓存内容写入闪存模块 |
| 状态查看 | storcli /c0/bbu show all 或 storcli /c0/cv show all |
| 与写策略的关系 | 保护模块健康时才适合长期启用 Write-Back |
查看保护模块状态
查看保护模块状态
storcli /c0/bbu show all # 电池状态、容量、学习周期
storcli /c0/cv show all # 超级电容模块
storcli /c0/v0 show all | grep -i "write" # 当前写策略
storcli /c0 show all | grep -i -E "Cache|Memory" # 缓存容量与配置
# megaCli 环境等效命令:MegaCli -AdpBbuCmd -GetBbuStatus -a0BBU 与超级电容对照
| 维度 | BBU 电池 | 超级电容(CacheVault) |
|---|---|---|
| 原理 | 电池供电维持缓存内容 | 电容供电把缓存刷入闪存 |
| 寿命 | 数年,需定期充放电自检 | 寿命更长,无记忆效应 |
| 维护动作 | 关注 Learn Cycle 与容量衰减 | 关注电容健康与模块连接 |
| 故障表现 | 策略降级为 Write-Through,性能下降 | 电容失效时同样降级为直写 |
日常运维动作
- 把保护模块状态纳入周度巡检,Learn Cycle 与 Failed 都要可见
- 电池容量或健康度下降时提前采购备件,别等告警才动手
- 更换模块后按文档做校准并复核写策略,避免策略被重置
- 定期记录缓存命中与写策略,性能突变时先查这两项
BBU 进入 Learn Cycle 或故障时,缓存策略可能临时降级为 Write-Through,性能波动属正常现象;巡检脚本要把该状态纳入监控,避免误判为业务异常。