近期遇到了很多客户来询问EMC isilon Gen6设备的BBU电池问题,由于客户对存储不太了解,但还有一点存储的基本知识,所以就是各种问题和质疑,很多善意的提醒客户认为是忽悠。今天休假,有点时间,把近期遇到的问题整理写出来,希望对大家有些帮助。
开始之前先简单介绍一下isilon的Gen6设备,就是第六代的意思,包括A200,A2000,H400,H500,H600,F800等,用一个图来说明下,会更清楚些。
Gen6就是这一代的设备使用了同样的物理架构,一个笼子(chassis)中有四个节点(node),每个node可以有15-20个3.5寸的磁盘或者30个2.5寸的磁盘。整体外观上个图,来个感性认识,下面是后视图,就是4个节点。
前面是放硬盘的,这里就不展示了。
回到主题,谈谈Gen6的BBU电池问题,BBU顾名思义就是存储中给内存中的数据提供掉电保护的,基本上所有的存储都有bbu电池。还是先上个图,这样有个直观感受,Gen6的bbu长下面这个样子:
存储正常运行几年时间,这个BBU电池就会出现故障,电池是个消耗品,出现故障或者随着时间推移老化了,就要进行更换了。
其中,BBU(Battery Backup Unit,备用电池单元)是Gen6设备中的关键组件之一。BBU的主要作用是为节点的非易失性存储器(NVRAM)提供临时电源支持,以确保在突然断电的情况下,数据能够安全地写入持久存储介质,从而避免数据丢失。BBU的健康状态直接影响到设备的稳定性和数据完整性,因此对其进行定期检查和维护至关重要。
由于第一批购买Gen6设备的年限基本上到了8年左右,客户一般一套集群系统基本少至少有3个node,所以电池寿命到了,基本上上一套cluster上的node的BBU几乎差不多的时间都会出现故障提示。
下面我们从如何检查bbu的状态以及对于出现故障后更换需要注意的事项两个方面和大家讨论下这个问题。没有覆盖到的,可以添加我的vx: StorageExpert进行进一步的详细讨论。
如何查看BBU状态
在EMC Isilon Gen6设备中,查看BBU状态需要通过命令行界面(CLI)操作,具体方法因OneFS操作系统的版本而有所不同。以下是常用步骤和命令:
- 登录集群 通过SSH工具或者串口登录到Isilon集群的任意节点的命令行。
- 检查BBU状态命令 根据OneFS版本的不同,使用以下命令查看BBU状态:
- OneFS 8.x.x及更早版本:
# isi_hwmon -b
- OneFS 8.x.x及更早版本:
该命令会返回BBU的状态信息,例如“OK”表示正常,“FAILED”表示故障。
- OneFS 9.x.x及更新版本:
# isi_hwmon -b BatteryMonitoring
此命令提供更详细的BBU监控信息,包括电池健康状态和可能的错误日志。
A200-1# isi_hwmon -b BatteryMonitoring
NOTICE: Battery 1 Status: Ready, enabled, and charging
NOTICE: Status: 02 90
NOTICE: BIST result: 00 00
NOTICE: Self test results: 00 00
NOTICE: Fault state: 11
NOTICE: watchdog reset count: 01
NOTICE: Battery faults: 00
NOTICE: State of charge: 89.00 %
NOTICE: Discharge cycle Count: 39.00 cycles
NOTICE: Service life: 1916.00 days
NOTICE: Unpowered storage life: 0.00 days
NOTICE: Input faults: 00
NOTICE: Battery output faults: 00
NOTICE: Battery output voltage: 10.34 V
NOTICE: Battery output current: 2.15 A
NOTICE: Temperature 0 Faults: 00
NOTICE: Temperature 0: 32.05 C
NOTICE: Temperature 1 Faults: 00
NOTICE: Temperature 1: 38.05 C
NOTICE: Cell faults/warnings: 00 00
NOTICE: Cell 0 voltage: 3.45 V
NOTICE: Cell 1 voltage: 3.43 V
NOTICE: Cell 2 voltage: 3.44 V
NOTICE: State of health: 100.00 %
NOTICE: Storage capacity: 9.62 WHr
NOTICE: Time to full of charge: 0.00 hours
NOTICE: Time to empty: N/A
- 检查电池磨损程度 若需要了解BBU的寿命或磨损情况,可以运行以下命令:
# isi healthcheck run battery_test_status -v
该命令会显示电池的退化百分比(例如40%或50%),当退化达到一定程度(如50%),节点可能会进入只读模式。
这个命令不一定所有的9版本都有,高版本的才有。但这个磨损度非常重要,如果低于40%,肯定会报错,甚至节点进入read only模式。
放大招了,既然有些版本没有这个检查磨损度的命令,那么怎么查磨损度呢?
下面的命令可以查询cluster集群中所有node的bbu电池磨损度
A2000-2-1# isi_for_array -Q 'isi_nodes -L "%{name},%{serialno},$(/usr/bin/isi_hwtools/isi_bbu_util | grep -oE "Cap deg.*") " ' | awk -F: ' { print $1 $2/1050000*100."%" } '
类似下面的输出
A2000-2-1,JWXNM202700258,Cap deg uAh3.60286%
前面是节点命令,节点序列号,最后面的3.60286%就是电池磨损度。
- 检查固件版本 BBU的固件版本也会影响其性能和寿命,可通过以下命令查看:
# isi upgrade cluster firmware devices | egrep "mongoose|bcc"
确保固件版本为最新(推荐1.20或2.20以上),以减少误报或性能问题。 - 日志检查 如果怀疑BBU存在问题,可以查看日志是否存在“Persistent fault”(持久性故障)信息。这个Persistent fault就是说电池彻底坏了,还不是电量的问题了。
- 日志文件路径因版本不同而异:
- OneFS 8.1.x及更早:/var/log/nvram.xml
- OneFS 8.2.x及更新:/etc/ifs/nvram.xml
- 若发现持久性故障,立马更换,不要任何考虑什么固件版本之类的伪命题了。
- 日志文件路径因版本不同而异:
更换BBU过程中可能的问题和注意事项
更换BBU是一个需要谨慎操作的过程,以下是可能遇到的问题及注意事项:
1. 更换前的准备
- 固件升级:在更换BBU之前,确保OneFS版本升级至8.1.0.4或更高,节点固件升级至10.1.6或更高(DEbcc/EPbcc版本至少为00.71)。若固件版本过旧,可能导致更换后BBU无法正常工作。
- 确认故障:通过上述命令确认BBU确实存在故障(如“Persistent fault”或退化超50%),避免不必要的更换。
- 备件检查:更换BBU时,需要更换整个HBA riser卡和BBU电池。敲黑板,注意不是就更换一个电池,是riser card和电池一起更换。上个图给大家看看什么是riser card和BBU
注意,在BBU电池的下面还有一个SSD卡,这个卡不是什么启动卡,这个卡是vault 卡,里面没有任何boot的信息。不要被误导了。
写到这里,给各个公司的采购一个建议,如何查看BBU备件的健康度,其实就是看这个磨损度,磨损度越低越好,全新的基本上是个位数。如果你拿到的电池也有上机测报,但是磨损度可能是 30%多接近40%,这意味着用不了多久就有坏了。
更换步骤
- 关机与断电:
注意,不要直接把node拔出来呀,要用命令或者图形界面去shutdown这个node。关闭目标节点电源,拔掉所有电缆,从机架中取出节点。
- 拆卸与更换:
- 打开节点外壳,找到HBA riser卡。
- 小心移除旧的riser卡,将其上的NIC和M2 vault卡转移到新的riser卡上。再敲黑板,不要把电池和riser card给拆开,坚决不要。拆开以后,riser card中的固件就变为 00了,系统无法启动。由于不能拆开电池和riser card的连线,所以要更换下面的vault ssd有些困难,观察下,不要上蛮力。
- 安装新的riser卡并固定。
- 重新启动:将节点装回机架,连接电缆并启动,观察BBU状态是否恢复正常。
可能遇到的问题
- 固件不匹配:若更换后BBU固件显示为00.00,需升级节点固件至10.3.3版本,否则可能触发误报或功能异常。
- 持久性故障未清除:更换后若仍显示“Persistent fault”,需手动清除测试结果:
# isi services isi_hwmon disable
# mv /var/log/nvram.xml /var/log/nvram.xml.old # 对于8.1.x及更早版本
# mv /etc/ifs/nvram.xml /etc/ifs/nvram.xml.old # 对于8.2.x及更新版本
# isi services isi_hwmon enable - 节点只读模式:若电池退化严重且未及时更换,节点可能进入只读模式。此时需尽快更换并联系我们。