最近遇到了很多存储BBU电池方面的问题,比较典型的是 EMC VNX2代的BBU,EMC PowerStore存储的BBU电池,还有NetApp的FAS8300/8700/A400的BBU电池各种奇怪的问题。这里对BBU电池的一些基本知识做个简单介绍,基于这些电池的基本概念才可以去批判和诊断有关电池方面的问题。
在企业级存储系统(如 Dell EMC、NetApp、HPE 等)中,电池模块(Battery Backup Unit, BBU 或 NV Battery)起着至关重要的作用,负责在断电时保障缓存数据不丢失。为了确保这些电池始终处于最佳工作状态,厂商通常要求定期执行 Learning Cycle(学习循环)。
本文将详细介绍什么是智能电池也就是存储电池BBU的 Learning Cycle、为什么必须进行该过程,以及执行过程中应重点关注哪些关键参数。 欢迎关注,转发,交流沟通,共同进步。可以添加vx:StorageExpert。
一、什么是 Learning Cycle?
学习周期是电池管理系统中的一种校准过程,旨在确保对电池容量、充电状态(SoC)和健康状态(SoH)的精确监控。随着时间推移,电池的实际容量可能因老化、温度或使用模式等因素偏离其额定容量。学习周期通过重新校准,反映电池的真实性能,防止过充、欠充或运行时间预测不准确等问题。
Learning Cycle,也称为 Battery Recalibration Cycle,是指对电池进行一次 完全充放电过程,以便:
- 重新校准电池的容量计量系统(Fuel Gauge)
- 提高电量估算的准确性
- 检测电池衰退状态(如容量下降、内阻增加)
Learning Cycle 通常包括以下几个阶段:
- 完全放电:在受控条件下将电池放电至预设的低电压阈值。
- 完全充电:将电池充满至最大容量。
- 数据收集:系统记录放电和充电过程中传输的能量等关键指标,计算电池的实际容量。
- 校准:更新其内部算法,使之与测量的容量保持一致,从而提高SoC和SoH估算的准确性。
二、为什么要进行 Learning Cycle?
随着电池的使用时间增加,容量计数系统会出现估算误差。
定期进行 Learning Cycle 的目的包括:
目的 | 说明 |
校准电池容量 | 实际容量与估算值之间出现偏差,需强制校正 |
检测电池健康状况(SOH) | 包括 FullChargeCapacity 是否大幅下降 |
确保写缓存保护可靠性 | 电池若无法支持掉电保护,将影响系统安全 |
触发电池更换机制 | 如果 Learning Cycle 后仍表现不佳,系统会标记为需更换 |
三、Learning Cycle 过程中重点关注哪些参数?
以下是执行 Learning Cycle 前后,需要重点监控的关键电池指标:
参数名 | 说明 | 关注点 |
FullChargeCapacity(简称FCC) | 满电时可用容量(单位 mAh 或 Wh) | 是否显著下降 |
RemainingCapacity | 当前剩余容量 | 是否正常响应放电 |
CycleCount | 累计循环次数 | 判断电池寿命周期 |
Temperature | 放电过程中的电池温度 | 是否过热(> 50°C 需警惕) |
Voltage | 实时电压变化 | 是否稳定下降 |
RelativeStateOfCharge | 相对电量百分比 | 校准后是否更准确 |
TimeToEmpty / TimeToFull | 放电或充电预测时间 | 与实际时间差距是否明显减小 |
Battery Status | 通常为 Charging / Discharging / Fully Charged | 是否正确识别各阶段状态 |
在 EMC PowerStore、Unity 等系统中,完成 Learning Cycle 后还会出现以下日志:
Battery test has completed
Battery Test Error Code: 0
Battery test passed
若有异常,例如容量偏低、测试失败,日志会报告 Battery Test Error Mask != 0,系统管理界面可能提示 “Battery Needs Replacement”。
四、学习循环的执行方式
不同平台触发 Learning Cycle 的方式不同,但大体说来,就下面的几种方式:
- 自动调度:如 Isilon 的 isi_hwmon 会定期触发(默认每 10 天一次)。NetApp的FAS8300/8700 是默认70天做一次。
- 手动触发:如通过 IPMItool、navicli、storage CLI 执行测试,不同的存储平台有各自的命令体系。
- 系统维护模式:有些电池更换后会自动进行一次,系统会判断电池的SN是否发出了变化,如果发生变化,就开始做learning cycle,典型的就是isilon存储。
执行过程中需避免以下操作:
- 系统重启或断电
- 关闭电池电源管理服务(如 EMC isilon中的isi_hwmon job)
这里介绍了下电池的一个最重要的概念,learning cycle,下一篇文章我们将专门针对NetApp FAS存储的电池参数做个详细说明,如何阅读电池参数,如何判断电池的好坏等。