机器没坏,只是变慢了:RAID 缓存电池

一台跑了多年的机器,某天起写入速度掉到原来的零头。

硬盘全绿,阵列不报错,系统日志干净。换网线、查交换机、重装驱动、重启——都不是。最后查到 RAID 卡上那块缓存电池没电了。

这是数据中心里最典型的一类「没坏但不能用」的故障。它不触发任何告警,因为从控制器的角度看,一切都在按设计工作。

为什么电池没电,写入就慢十倍

RAID 控制器上有一块缓存。开启回写(write-back)模式时,数据写进缓存控制器就返回「完成」,后台再慢慢落盘——这是写性能的主要来源。

风险在于:缓存是易失的。如果这时候断电,缓存里还没落盘的数据就没了。

所以回写模式依赖一块电池(或超级电容)兜底:断电时靠它维持供电,等待恢复或者把缓存转存到闪存。

电池一失效,控制器不敢再用回写,自动降级成直写(write-through)——每一次写入都要等硬盘真正落盘才返回。机械盘的落盘延迟是毫秒级,缓存是微秒级,差一个数量级,性能表现就是掉十倍。

控制器这么做是对的。它在保护你的数据。但它不会大声告诉你。

怎么确认是这个问题

在控制器管理工具里看两项:

  1. 当前缓存策略:是 Write Back 还是 Write Through
  2. 电池 / 电容状态:容量、健康度、上次学习周期时间

如果策略显示 Write Through 且备注里有 BBU failedBattery not presentLearn cycle in progress 之类的字样,就对上了。

不同厂商的叫法不一样:BBU(Battery Backup Unit)、FBWC(Flash-Backed Write Cache)、CacheVault、超级电容包——指的都是同一类东西。

电池在做学习周期,不是坏了

现象:某段时间性能明显变差,过几小时又自己恢复,而且是周期性出现的。

原因:RAID 电池会定期做一次完整的充放电循环,用来校准实际容量。这段时间里缓存策略会临时降级成直写,跑完自动恢复。

怎么判断:看控制器日志里有没有 Learn Cycle 记录,时间点能对上就不是故障。

怎么处理:学习周期的时间可以设定,把它挪到业务低峰时段就行。多数平台默认是每 30 天或 90 天一次。

什么时候才是真坏:学习周期跑完之后容量仍然不达标,或者反复报 BBU 故障——那才该换。

把正常行为当故障换件,也是一种浪费。这一条值得在换件之前确认一遍。

换了新电池,缓存还是不开

现象:新电池装上去了,控制器仍然维持直写模式。

这不一定是备件的问题。三个常见原因:

  1. 新电池需要一次完整的充电和学习周期之后才会启用回写,不是插上就好。 视型号不同,这个过程从几小时到十几小时不等。
  2. 部分平台需要在控制器里手动把缓存策略改回回写。 有些管理工具在电池失效时会把策略锁定,修好之后不会自动解锁。
  3. 电池型号不匹配,控制器识别不了。

做法:换完等一个完整充电周期,再确认策略设置。不要在充电完成之前就下结论说备件有问题——这种误判会把一次成功的更换变成一次退货流程。

这块电池真正的意义,是断电那一刻

平时看不出它有什么用,直到机房跳闸。

回写缓存里那部分还没落盘的数据,全靠它撑着等待恢复供电或转存。电池失效的情况下断电,缓存里的数据就没了。

对文件系统来说,这可能意味着元数据不一致;对数据库来说,这可能意味着一批已经返回「提交成功」的事务实际上没有落盘。后者比丢一块盘严重得多,因为它是静默的——系统起来了,数据少了一截,你不知道少在哪。

所以这是一个耗材,有寿命,必须按周期检查和更换。锂电池型的一般 2–3 年,超级电容型的寿命长一些但也不是永久。

过保之后的麻烦

这类耗材在过保之后,原厂通常不单独供应——它不是一个「维修件」,是捆绑在整机服务合同里的东西。

结果是:一个成本很低的电容包找不到,一台功能完好的机器长期在直写模式下跑,性能只有设计值的零头,最后被当成「机器老了」整机换掉。

一块电池的钱,和一台整机的钱,差着两个数量级。

七小服的料号库收录各主流平台的 BBU / FBWC / 超级电容包,包括 IBM、HP、Dell、华为等,可以在备件料号速查里按料号搜。入库做 48 小时以上加压测试,出库逐件复测。

一份检查清单

给还在跑的过保设备做一次排查,按这个顺序:

  1. 列出所有带 RAID 卡的机器
  2. 逐台看当前缓存策略——不是看有没有告警,是看策略本身
  3. 处于直写的,看电池状态和日志里的学习周期记录
  4. 区分「学习周期中」和「已失效」
  5. 已失效的,确认料号,备件到位后更换
  6. 换完等一个完整充电周期,再确认策略回到回写
  7. 把学习周期的时间窗口统一挪到业务低峰

这套检查不需要停机,一台机器几分钟。在过保设备比较多的机房里,这通常是投入产出比最高的一次巡检。


本文描述的是这类设备的常见故障模式,不是某一台机器的具体案例。

Discover more from 七小服 Seven Small Services

Subscribe now to keep reading and get access to the full archive.

Continue reading