啥是BBU

BBU到底是个啥?

因为我们不是搞硬件的,我们可以粗略地把BBU当成一块电池,这块电池用来保护RAID卡上的Cache。一般来讲,RAID卡都会有1G的Cache,这一层Cache对于RAID的写入至关重要,使用RAID卡的Cache可以显著地提升RAID的写入性能。

HW Configuration

================

SAS Address : 500605b009e97840

BBU : Present

Alarm : Present

NVRAM : Present

Serial Debugger : Present

Memory : Present

Flash : Present

Memory Size : 1024MB <--------1024MB 即RAID Cache的大小

但是这里面有个问题,就是掉电保护。我们都知道文件系统fsync或者sync相关的系统调用,会将页高速缓存(Page Cache)中的dirty flush到底层块设备,对于RAID管理的块设备,如果使用了RAID Cache,那么sync也只保证写入RAID Cache,并不保证一定落在底层持久化的磁盘上。这就带来了致命的风险,即异常掉电的时候,RAID Cache中的数据可能会丢失。

这里面有一个dirty冲刷周期的参数:

Cache Flush Interval : 4s

因此,掉电的时候,可能会有过去4秒的dirty内容还未刷入持久化的设备,

那怎么办?BBU就粉墨登场了。

注意,如果你的RAID卡没有BBU,却非要使用WriteBack 的Write Policy,那么掉电之后,丢数据几乎是肯定的。所以要享受RAID 卡上Cache带来的性能提升,就必须配置BBU。

掉电之后,BBU能保护RAID Cache中的数据多久

BBU是能保护RAID Cache中尚未来得及写入底层持久化设备的数据,但是BBU不是核反应堆,它的保护能力是有限度的。一般来讲BBU可以保护RAID Cache中的数据2天左右。

Design Mode : 48+ Hrs retention with a non-transparent learn cycle and moderate service life.

上述内容的含义是说,BBU承诺48小时的保护。

我们曾经有过案例,关机是强制关机,开机之后发现有data loss,后来才知道,强制关机7天之后,才开机,BBU守护了RAID Cache中dirty 内容一段时间之后,终于油尽灯枯。

如果设置Write Policy为NO Write Cache if Bad BBU,即BBU剩余电量不足与保护Cache中的内容1天以上,那么会自动讲Write Policy从WB调整成WT。

注意,机器上电之后,RAID cache中的数据会写入底层的磁盘。

如何检查是否存在BBU

MegaCli AdpAllInfo -A0中会在HW Configuration部分显示是否存在BBU:

HW Configuration

================

SAS Address : 500605b009e97840

BBU : Present <-------------- present表示存在BBU

Alarm : Present

NVRAM : Present

Serial Debugger : Present

Memory : Present

Flash : Present

Memory Size : 1024MB

RAID的WritePolicy 何时会变成WT

我们都知道WB的效能比WT的效能要高,有以下情况会变成WT

用户设置WritePolicy 为WT

MegaCli LDSetProp WT -L2 -A0

设置了Write Policy 为WB并且设置了NoCachedBadBBU,但是电池坏了或者有故障了battery处在“low-charge state”阶段

简单来说,就是说电池的电量不足以保持24小时的数据时,就会讲策略从WB改成WT

seqNum: 0x00016bef

Time: Fri Apr 28 05:08:02 2017

Code: 0x000000c3

Class: 1

Locale: 0x08

Event Description: BBU disabled; changing WB virtual disks to WT, Forced WB VDs are not affected

Event Data:

===========

None

这种行为一般发生在Learn Cycle的 Discharging Cycle步骤,因为会主动放点,会导致电池处于low-charge state。在这个情况下,我们通过MegaCli命令是无法将Write Policy改成WB的:

root@EBS-005-PUB01-JD-Xian:/var/log# /opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp WB -immediate -L2 -A0

Battery capacity is below the threshold value

Adapter 0: Set Property Failed on Vd object

Exit Code: 0x01

注意,并不是说电池电量满足可以保证24小时数据时就会恢复成WB,而是更迟一些,电池电量充满到85%之后,才会从WT改成WB。

seqNum: 0x00016bf6

Time: Fri Apr 28 05:09:04 2017

Code: 0x00000093

Class: 0

Locale: 0x08

Event Description: Battery started charging

Event Data:

===========

None

seqNum: 0x00016bf7

Time: Fri Apr 28 06:59:34 2017

Code: 0x000000c2

Class: 0

Locale: 0x08

Event Description: BBU enabled; changing WT virtual disks to WB

Event Data:

===========

None

理解BBU的的Capacity信息

root@node01:~# /opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -A0

BBU status for Adapter: 0

BatteryType: iBBU-09

Voltage: 3986 mV

Current: 0 mA

Temperature: 35 C

Battery State: Optimal

Design Mode : 48+ Hrs retention with a non-transparent learn cycle and moderate service life.

BBU Firmware Status:

Charging Status : None

Voltage : OK

Temperature : OK

Learn Cycle Requested : Yes

Learn Cycle Active : No

Learn Cycle Status : OK

Learn Cycle Timeout : No

I2c Errors Detected : No

Battery Pack Missing : No

Battery Replacement required : No

Remaining Capacity Low : No

Periodic Learn Required : No

Transparent Learn : No

No space to cache offload : No

Pack is about to fail & should be replaced : No

Cache Offload premium feature required : No

Module microcode update required : No

BBU GasGauge Status: 0x0180

Relative State of Charge: 89 %

Charger System State: 1

Charger System Ctrl: 0

Charging current: 0 mA

Absolute state of charge: 70 %

Max Error: 0 %

Battery backup charge time : 48 hours +

BBU Capacity Info for Adapter: 0

Relative State of Charge: 89 %

Absolute State of charge: 70 %

Remaining Capacity: 1055 mAh

Full Charge Capacity: 1198 mAh

Run time to empty: Battery is not being charged.

Average time to empty: 2 Hour, 7 Min.

Estimated Time to full recharge: Battery is not being charged.

Cycle Count: 12

BBU Design Info for Adapter: 0

Date of Manufacture: 03/19, 2012

Design Capacity: 1500 mAh

Design Voltage: 4100 mV

Specification Info: 0

Serial Number: 562

Pack Stat Configuration: 0x0000

Manufacture Name: LS36691

Firmware Version :

Device Name: iBBU-09

Device Chemistry: LION

Battery FRU: N/A

Transparent Learn = 0

App Data = 0

BBU Properties for Adapter: 0

Auto Learn Period: 28 Days

Next Learn time: Thu Jun 1 14:17:44 2017

Learn Delay Interval:0 Hours

Auto-Learn Mode: Enabled

BBU Mode = 5

Exit Code: 0x00

首先要关注的信息是:

BatteryType: iBBU-09

这个显示的是BBU的型号信息。

BBU由锂离子电池和电子控制电路组成。 锂离子电池的寿命取决于其老化程度,从出厂之后,无论它是否被充电及它的充放电次数多与少,锂离子电池的容量将慢慢的减少。这意味着一个老电池无法像新电池那么持久。 也就决定了BBU的相对充电状态(Relative State of Charge)不会等于绝对充电状态(Absolute State of Charge)。

这个方面并不难理解,就想笔记本的电池一样,新买来的笔记本电池充满电之后,能够支撑笔记本使用5小时,但是随着时间流逝,使用很久之后,笔记本电池充饱电,也不能支撑笔记本使用5小时,可能只能支撑3小时,这是由于电池老化引起的。BBU也是同样的道理:

Relative State of Charge: 89 %

Absolute State of charge: 70 %

Remaining Capacity: 1055 mAh

Full Charge Capacity: 1198 mAh

BBU Design Info for Adapter: 0

Design Capacity: 1500 mAh

这一段的含义是说,刚出厂的BBU,设计容量是1500 mAh,但是随着长时间的使用,电池开始老化,目前充饱电,最多只能充到1198 mAh, 另外当前的电量是1055 mAh。

Relative State of Charge = 1055 / 1198 ~ 89%

Absolute State of charge = 1055 / 1500 ~ 70%

另外一个和BBU Capacity相关的参数为:

Remaining Capacity Low : No

注意,一般来讲,BBU要保持住能够保护RAID Cache48小时的电量,如果保持不了,那么这个值会是Yes。 对于BBU 07这个值一般是600mAh,而BBU 08,这个值需要是674 mAh,BBU 09我暂时没有查到。

一般来讲,这个参数可以用来确定BBU是否需要替换。正常情况下,Remain Capacity Low应该是No,始终是No,因为会BBU会及时充放电,所以这个值不应该是Yes,如果这个值为Yes,这说明BBU需要更换了。

这种情况下会有以下现象发生:

一般来讲,会从eventlog中发现这样的输出:

Current capacity of the battery is below threshold

如果Write Policy为WB,并且 No Write Cache if Bad BBU,那么BBU的状态被强制改成WT无法将WT改成WB,会报如下错误:

root@EBS-005-PUB01-JD-Xian:/var/log# /opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp WB -immediate -L2 -A0

Battery capacity is below the threshold value

Adapter 0: Set Property Failed on Vd object

Exit Code: 0x01

我们在现场,确实曾经发现有BBU出现问题

root@EBS-005-PUB01-JD-Xian:/var/log# /opt/MegaRAID/MegaCli/MegaCli64 -AdpBBUCMD -Aall

BBU status for Adapter: 0

BatteryType: iBBU-09

Voltage: 3893 mV

Current: 536 mA

Temperature: 46 C

Battery State: Degraded(Need Attention)

A manual learn is required.

Design Mode : 48+ Hrs retention with a non-transparent learn cycle and moderate service life.

BBU Firmware Status:

Charging Status : Charging

Voltage : OK

Temperature : OK

Learn Cycle Requested : Yes

Learn Cycle Active : No

Learn Cycle Status : OK

Learn Cycle Timeout : No

I2c Errors Detected : No

Battery Pack Missing : No

Battery Replacement required : No

Remaining Capacity x : Yes

Periodic Learn Required : No

Transparent Learn : No

No space to cache offload : No

Pack is about to fail & should be replaced : No

Cache Offload premium feature required : No

Module microcode update required : No

BBU GasGauge Status: 0x0100

Relative State of Charge: 34 %

Charger System State: 1

Charger System Ctrl: 0

Charging current: 536 mA

Absolute state of charge: 29 %

Max Error: 0 %

Battery backup charge time : 19 hours

BBU Capacity Info for Adapter: 0

Relative State of Charge: 35 %

Absolute State of charge: 30 %

Remaining Capacity: 452 mAh

Full Charge Capacity: 1320 mAh

Run time to empty: Battery is not being charged.

Average time to empty: 54 Min.

Estimated Time to full recharge: 2 Hour, 32 Min.

Cycle Count: 0

BBU Design Info for Adapter: 0

Date of Manufacture: 07/08, 2015

Design Capacity: 1500 mAh

Design Voltage: 4100 mV

Specification Info: 0

Serial Number: 475

Pack Stat Configuration: 0x0000

Manufacture Name: LS36691

Firmware Version :

Device Name: iBBU-09

Device Chemistry: LION

Battery FRU: N/A

Transparent Learn = 0

App Data = 0

BBU Properties for Adapter: 0

Auto Learn Period: 28 Days

Next Learn time: Wed May 3 10:49:00 2017

Learn Delay Interval:0 Hours

Auto-Learn Mode: Enabled

BBU Mode = 5

Exit Code: 0x00

root@EBS-005-PUB01-JD-Xian:/var/log# /opt/MegaRAID/MegaCli/MegaCli64 -AdpBBUCMD GetBbuCapacityInfo -A0

BBU Capacity Info for Adapter: 0

Relative State of Charge: 37 %

Absolute State of charge: 32 %

Remaining Capacity: 485 mAh

Full Charge Capacity: 1320 mAh

Run time to empty: Battery is not being charged.

Average time to empty: 58 Min.

Estimated Time to full recharge: 2 Hour, 28 Min.

Cycle Count: 0

Exit Code: 0x00

注意上图,BBU 的Remain Capacity为 452 mAh,而出厂标称值为1500 mAh, Absolute State of charge: 30 %,这时候,其实已经出现问题了,注意如下输出:

Battery State: Degraded(Need Attention)

A manual learn is required.

检查BBU的健康情况

如何检查BBU是否需要更换呢?

RAID batteries - time to replace?这篇文章给出了一个思路:

root@EBS-005-PUB01-JD-Xian:/var/log# /opt/MegaRAID/MegaCli/MegaCli64 -AdpBBUCMD GetBbuCapacityInfo -A0

BBU Capacity Info for Adapter: 0

Relative State of Charge: 37 %

Absolute State of charge: 32 % ---->查看Absolute State of charge的值

Remaining Capacity: 485 mAh

Full Charge Capacity: 1320 mAh

Run time to empty: Battery is not being charged.

Average time to empty: 58 Min.

Estimated Time to full recharge: 2 Hour, 28 Min.

Cycle Count: 0

Exit Code: 0x00

文章给出了如下shell脚本

bbugood() { [ $(megacli adpbbucmd GetBbuCapacityInfo ${1:-a0} | sed -ne '/^[aA]bsolute/{s/^[^[:digit:]]*\([[:digit:]]\+\).*$/\1/p}') -gt 54 ] ;}

这个shell语句有些问题,因为很明显Absolute并不出现在行首,行首还有额外的空格,因此可以使用如下方法获取Absolute State of charge的值:

/opt/MegaRAID/MegaCli/MegaCli64 adpbbucmd GetBbuCapacityInfo -a0 | sed -ne '/[aA]bsolute/{s/^[^[:digit:]]*\([[:digit:]]\+\).*$/\1/p}'

70

作者给出了经验数值,54%,低于54%则判定BBU not good。

注意,Learn Cycle的时候会先放电,然后充电,这个过程中可能会低于经验值,但是要进一步分析Battery State和Learn Cycle Status来判断是否BBU已经老化。

另外一个有价值的参数是:

Battery Replacement required : No

当这个值为Yes的时候当然需要更换电池,但是这个参数一般比较滞后,很难通过它预判BBU需要更换。

BBU的Auto Relearn

为了记录电池的放电曲线,以便控制器了解电池的状态,例如最大和最小电压等,同时为了延长电池的寿命,默认会启用自动校准模式(AutoLearn Mode).

我们首先通过EventLog对 Auto Learn全过程做一个直观了解:

(注意BBU的时间和shell命令输出的时间比较,相差8个小时,不要被时间迷惑)

预告阶段,在relearn start之前4天,2天,1天,5小时,分别预告,要开始relearn了

seqNum: 0x00012827

Time: Mon Apr 24 20:49:28 2017

Code: 0x0000009d

Class: 0

Locale: 0x08

Event Description: Battery relearn will start in 4 days

Event Data:

===========

None

seqNum: 0x00012828

Time: Wed Apr 26 20:48:58 2017

Code: 0x0000009e

Class: 0

Locale: 0x08

Event Description: Battery relearn will start in 2 day

Event Data:

===========

None

seqNum: 0x00012829

Time: Thu Apr 27 20:48:43 2017

Code: 0x0000009f

Class: 0

Locale: 0x08

Event Description: Battery relearn will start in 1 day

Event Data:

===========

None

seqNum: 0x0001282a

Time: Fri Apr 28 15:49:28 2017

Code: 0x000000a0

Class: 0

Locale: 0x08

Event Description: Battery relearn will start in 5 hours

Event Data:

===========

None

第一阶段:控制器把BBU电池充满电(该步骤可能是放电后充电或直接充电,如果电池刚好满电,则直接进入第二阶段)

seqNum: 0x0001282b

Time: Fri Apr 28 20:50:38 2017

Code: 0x0000009b

Class: 0

Locale: 0x08

Event Description: Battery relearn pending: Battery is under charge

Event Data:

===========

None

第一阶段的典型时间是1分钟左右。

第二阶段 开始校准, 对BBU电池执行放电。 注意,随着放电的进行,当电量低到一定程度的时候,会讲Write Policy从WB改成WT(Force WB的除外)。

注意,当relearn开始的时候,Learn Cycle Active开始从No变成Yes。

这个阶段进一步细分,其实可以细化成两个阶段

当放电量较少,剩余电量仍然超过安全门限,2A阶段:

Battery State: Optimal

随着时间流逝,放电量越来也多,剩余的电量越来越少,当剩余电量低于安全门限的时候,会将WT改成WB,此时

Battery State: Learning

我看了我的一台机器,当剩余电量为 888 mAh的时候,尚为2A阶段,当剩余电量为883 mAh的时候,已经为2B阶段了。

整个第二阶段,相关的event log如下:

seqNum: 0x0001282c

Time: Fri Apr 28 20:51:43 2017

Code: 0x00000097

Class: 0

Locale: 0x08

Event Description: Battery relearn started

Event Data:

===========

None

seqNum: 0x0001282d

Time: Fri Apr 28 20:52:48 2017

Code: 0x00000094

Class: 0

Locale: 0x08

Event Description: Battery is discharging

Event Data:

===========

None

seqNum: 0x0001282e

Time: Fri Apr 28 20:52:48 2017

Code: 0x00000098

Class: 0

Locale: 0x08

Event Description: Battery relearn in progress

Event Data:

===========

None

seqNum: 0x0001282f

Time: Fri Apr 28 21:17:45 2017

Code: 0x000000c3

Class: 1

Locale: 0x08

Event Description: BBU disabled; changing WB virtual disks to WT, Forced WB VDs are not affected

Event Data:

===========

None

从开始校准到校准结束,这个时间的典型值是1个半小时。

放电完成后,完成校准,并重新开始充电, 直接达到最大电量, 整个Learn Cycle才算完成 注意: 如果第二或第三阶段被中断,重新校准的任务会停止,而不会重新执行

seqNum: 0x00012835

Time: Fri Apr 28 22:22:43 2017

Code: 0x00000099

Class: 0

Locale: 0x08

Event Description: Battery relearn completed

Event Data:

===========

None

seqNum: 0x00012836

Time: Fri Apr 28 22:23:48 2017

Code: 0x00000093

Class: 0

Locale: 0x08

Event Description: Battery started charging

Event Data:

===========

None

seqNum: 0x00012837

Time: Fri Apr 28 22:42:13 2017

Code: 0x000000c2

Class: 0

Locale: 0x08

Event Description: BBU enabled; changing WT virtual disks to WB

Event Data:

===========

None

seqNum: 0x0001283b

Time: Fri Apr 28 23:11:28 2017

Code: 0x000000f2

Class: 0

Locale: 0x08

Event Description: Battery charge complete

Event Data:

===========

None

一般充电20分钟之后,就可以讲Write Policy从WT改成WB。充电过程会继续,知道充电完成,一般充电过程过程会在1小时之内。

其实我们更关心的是,从WB改成WT,到WT改回WB,这段时间是多久,因为这段时间内,写入性能会显著下降,典型值是一个半小时左右。

seqNum: 0x0000fac8

Time: Fri Feb 3 21:18:10 2017

Code: 0x000000c3

Class: 1

Locale: 0x08

Event Description: BBU disabled; changing WB virtual disks to WT, Forced WB VDs are not affected

Event Data:

===========

None

seqNum: 0x0000fad0

Time: Fri Feb 3 22:44:48 2017

Code: 0x000000c2

Class: 0

Locale: 0x08

Event Description: BBU enabled; changing WT virtual disks to WB

Event Data:

===========

None

一般来讲,为了延长寿命,都会打开AutoLearn的模式,如果不打开,会降低BBU的寿命。

root@EBS-005-PUB01-JD-Xian:/var/log# /opt/MegaRAID/MegaCli/MegaCli64 -AdpBBUCMD GetBbuProperties -A0

BBU Properties for Adapter: 0

Auto Learn Period: 28 Days

Next Learn time: Wed May 3 10:49:00 2017

Learn Delay Interval:0 Hours

Auto-Learn Mode: Enabled

BBU Mode = 5

Exit Code: 0x00

另一个需要关心的问题是,多久之行一次Auto Learn,这取决于硬件,比如我们这个是28天一次。

手动发起Relearn

注意,我们可以通过如下命令,手动发起Relearn

/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -BbuLearn -aALL

这个命令一旦执行,以下事情就会发生:

Remaining Capacity会不断升高,慢慢逼近Full Charge Capacity。

可以通过如下指令观察:

/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuCapacityInfo -A0

输出如下:

Every 2.0s: /opt/MegaRAID/MegaCli/MegaCli64 -AdpBBUCMd -GetBBUCapacityInfo -A0 Mon May 29 19:26:58 2017

BBU Capacity Info for Adapter: 0

Relative State of Charge: 95 %

Absolute State of charge: 75 %

Remaining Capacity: 1127 mAh

Full Charge Capacity: 1198 mAh

Run time to empty: Battery is not being charged.

Average time to empty: 2 Hour, 15 Min.

Estimated Time to full recharge: 26 Min.

Cycle Count: 12

Exit Code: 0x00

Every 2.0s: /opt/MegaRAID/MegaCli/MegaCli64 -AdpBBUCMd -GetBBUCapacityInfo -A0 Mon May 29 19:38:59 2017

BBU Capacity Info for Adapter: 0

Relative State of Charge: 98 %

Absolute State of charge: 78 %

Remaining Capacity: 1171 mAh

Full Charge Capacity: 1198 mAh

Run time to empty: Battery is not being charged.

Average time to empty: 2 Hour, 21 Min.

Estimated Time to full recharge: 13 Min.

Cycle Count: 12

Exit Code: 0x00

等待稍许时间,Charging Status会变成 Charging

BBU status for Adapter: 0

BatteryType: iBBU-09

Voltage: 4091 mV

Current: 169 mA

Temperature: 38 C

Battery State: Optimal

Design Mode : 48+ Hrs retention with a non-transparent learn cycle and moderate service life.

BBU Firmware Status:

Charging Status : Charging <----------变成charging状态

Voltage : OK

Temperature : OK

Learn Cycle Requested : Yes

Learn Cycle Active : No

Learn Cycle Status : OK

Learn Cycle Timeout : No

I2c Errors Detected : No

Battery Pack Missing : No

Battery Replacement required : No

Remaining Capacity Low : No

Periodic Learn Required : No

Transparent Learn : No

No space to cache offload : No

Pack is about to fail & should be replaced : No

Cache Offload premium feature required : No

Module microcode update required : No

当充电完成,Charging Statue变成None。

# 11:46:00 完成充电

seqNum: 0x0000a640

Time: Mon May 29 11:46:00 2017

Code: 0x000000f2

Class: 0

Locale: 0x08

Event Description: Battery charge complete

Event Data:

===========

None

Every 2.0s: /opt/MegaRAID/MegaCli/MegaCli64 -AdpBBUCMd -GetBBUCapacityInfo -A0 Mon May 29 19:46:31 2017

BBU Capacity Info for Adapter: 0

Relative State of Charge: 100 %

Absolute State of charge: 79 %

Remaining Capacity: 1188 mAh

Full Charge Capacity: 1198 mAh

Run time to empty: Battery is not being charged.

Average time to empty: 2 Hour, 23 Min.

Estimated Time to full recharge: Battery is not being charged.

Cycle Count: 12

Exit Code: 0x00

Every 2.0s: /opt/MegaRAID/MegaCli/MegaCli64 -AdpBBUCmd -A0 Mon May 29 19:46:50 2017

BBU status for Adapter: 0

BatteryType: iBBU-09

Voltage: 4067 mV

Current: 0 mA

Temperature: 38 C

Battery State: Optimal

Design Mode : 48+ Hrs retention with a non-transparent learn cycle and moderate service life.

BBU Firmware Status:

Charging Status : None

Voltage : OK

Temperature : OK

Learn Cycle Requested : Yes

Learn Cycle Active : No

Learn Cycle Status : OK

Learn Cycle Timeout : No

I2c Errors Detected : No

Battery Pack Missing : No

Battery Replacement required : No

Remaining Capacity Low : No

Periodic Learn Required : No

Transparent Learn : No

No space to cache offload : No

Pack is about to fail & should be replaced : No

Cache Offload premium feature required : No

Module microcode update required : No

BBU GasGauge Status: 0x0200

过一段时间,Relearn 开始,开始放电,此时 Learn Cycle Active 变成Yes,Charging Status变成 Discharging

seqNum: 0x0000a641

Time: Mon May 29 12:18:30 2017

Code: 0x00000097

Class: 0

Locale: 0x08

Event Description: Battery relearn started

Event Data:

===========

None

BBU status for Adapter: 0

BatteryType: iBBU-09

Voltage: 3989 mV

Current: -313 mA

Temperature: 37 C

Battery State: Optimal

Design Mode : 48+ Hrs retention with a non-transparent learn cycle and moderate service life.

BBU Firmware Status:

Charging Status : Discharging <------------relearn的开始是discharging

Voltage : OK

Temperature : OK

Learn Cycle Requested : Yes

Learn Cycle Active : Yes <-----------relearn start ,此处从No变成Yes

Learn Cycle Status : OK

Learn Cycle Timeout : No

I2c Errors Detected : No

Battery Pack Missing : No

Battery Replacement required : No

Remaining Capacity Low : No

Periodic Learn Required : No

Transparent Learn : No

No space to cache offload : No

Pack is about to fail & should be replaced : No

Cache Offload premium feature required : No

Module microcode update required : No

在这个Discharing过程中,电量逐渐降低:

Every 2.0s: /opt/MegaRAID/MegaCli/MegaCli64 -AdpBBUCMd -GetBBUCapacityInfo -A0 Mon May 29 20:38:16 2017

BBU Capacity Info for Adapter: 0

Relative State of Charge: 91 %

Absolute State of charge: 72 %

Remaining Capacity: 1088 mAh <---------电量在逐渐减少

Full Charge Capacity: 1198 mAh

Run time to empty: 3 Hour, 32 Min.

Average time to empty: 2 Hour, 11 Min.

Estimated Time to full recharge: Battery is not being charged.

Cycle Count: 12

Exit Code: 0x00

当电量低到一定程度时,就会将Write Policy 从WB改成WT,Remaining Capacity Low 从No变成Yes

seqNum: 0x0000a671

Time: Mon May 29 14:10:22 2017

Code: 0x000000c3

Class: 1

Locale: 0x08

Event Description: BBU disabled; changing WB virtual disks to WT, Forced WB VDs are not affected

Event Data:

===========

None

Mon May 29 22:10:50 CST 2017

BBU status for Adapter: 0

BatteryType: iBBU-09

Voltage: 3793 mV

Current: -297 mA

Temperature: 40 C

Battery State: Learning

Design Mode : 48+ Hrs retention with a non-transparent learn cycle and moderate service life.

BBU Firmware Status:

Charging Status : Discharging

Voltage : OK

Temperature : OK

Learn Cycle Requested : Yes

Learn Cycle Active : Yes

Learn Cycle Status : OK

Learn Cycle Timeout : No

I2c Errors Detected : No

Battery Pack Missing : No

Battery Replacement required : No

Remaining Capacity Low : Yes <-------电量低到了一定程度,从Remaining Capacity Low 从NO变成Yes

Periodic Learn Required : No

Transparent Learn : No

No space to cache offload : No

BBU Capacity Info for Adapter: 0

Relative State of Charge: 67 %

Absolute State of charge: 58 %

Remaining Capacity: 883 mAh

Full Charge Capacity: 1319 mAh

Run time to empty: 2 Hour, 58 Min.

Average time to empty: 1 Hour, 46 Min.

Estimated Time to full recharge: Battery is not being charged.

Cycle Count: 12

最终BBU的电量会变得非常低,然后校准完成:

seqNum: 0x0000a67a

Time: Mon May 29 17:21:02 2017

Code: 0x00000099

Class: 0

Locale: 0x08

Event Description: Battery relearn completed

Event Data:

===========

None

校准完成以后,Learn Cycle Required和Learn Cycle Active 都变成No,同时,Battery State可能暂时变成Failed状态。

Tue May 30 01:21:15 CST 2017

^M

BBU status for Adapter: 0

BatteryType: iBBU-09

Voltage: 3267 mV

Current: 0 mA

Temperature: 34 C

Battery State: Failed

Design Mode : 48+ Hrs retention with a non-transparent learn cycle and moderate service life.

BBU Firmware Status:

Charging Status : Discharging

Voltage : Low

Temperature : OK

Learn Cycle Requested : No

Learn Cycle Active : No

Learn Cycle Status : OK

Learn Cycle Timeout : No

I2c Errors Detected : No

Battery Pack Missing : No

Battery Replacement required : No

Remaining Capacity Low : Yes

...

BBU Capacity Info for Adapter: 0

Relative State of Charge: 11 %

Absolute State of charge: 9 %

Remaining Capacity: 139 mAh

Full Charge Capacity: 1316 mAh

Run time to empty: Battery is not being charged.

Average time to empty: 17 Min.

Estimated Time to full recharge: 5 Hour, 41 Min.

Cycle Count: 13

注意这个状态不会停留太久。校准完成之后,就开始充电,因此,Battery State变成 Degraded(Charging),同时Charging Status变成Charging。

Tue May 30 01:22:15 CST 2017

^M

BBU status for Adapter: 0

BatteryType: iBBU-09

Voltage: 3492 mV

Current: 522 mA

Temperature: 34 C

Battery State: Degraded(Charging) <----------状态变成Degraded(Charging)

Design Mode : 48+ Hrs retention with a non-transparent learn cycle and moderate service life.

BBU Firmware Status:

Charging Status : Charging <--------从Discharing变成Charging

Voltage : Low

Temperature : OK

Learn Cycle Requested : No

Learn Cycle Active : No

Learn Cycle Status : OK

Learn Cycle Timeout : No

I2c Errors Detected : No

Battery Pack Missing : No

Battery Replacement required : No

Remaining Capacity Low : Yes

Periodic Learn Required : No

Transparent Learn : No

当充电电量涨到一定程度时,Remaining Capacity Low变成No,Battery Status从Degraded(Charing)变成Optimal,这个时候会将WT改回WB。

seqNum: 0x0000a67c

Time: Mon May 29 18:47:42 2017

Code: 0x000000c2

Class: 0

Locale: 0x08

Event Description: BBU enabled; changing WT virtual disks to WB

Event Data:

===========

None

Exit Code: 0x00

Tue May 30 02:48:26 CST 2017

^M

BBU status for Adapter: 0

BatteryType: iBBU-09

Voltage: 3981 mV

Current: 524 mA

Temperature: 38 C

Battery State: Optimal <-------------Battery State 从Degraded(Charging)变成Optimal

Design Mode : 48+ Hrs retention with a non-transparent learn cycle and moderate service life.

BBU Firmware Status:

Charging Status : Charging

Voltage : OK

Temperature : OK

Learn Cycle Requested : No

Learn Cycle Active : No

Learn Cycle Status : OK

Learn Cycle Timeout : No

I2c Errors Detected : No

Battery Pack Missing : No

Battery Replacement required : No

Remaining Capacity Low : No <-----------Remaining Capacity Low 变成No

Periodic Learn Required : No

Transparent Learn : No

No space to cache offload : No

Pack is about to fail & should be replaced : No

Cache Offload premium feature required : No

Module microcode update required : No

BBU Capacity Info for Adapter: 0

Relative State of Charge: 69 %

Absolute State of charge: 59 %

Remaining Capacity: 897 mAh <----------电量已经足够高了

Full Charge Capacity: 1316 mAh

Run time to empty: Battery is not being charged.

Average time to empty: 1 Hour, 48 Min.

Estimated Time to full recharge: 1 Hour, 36 Min.

Cycle Count: 13

继续充电,知道充电完成,此时Charging Status变成None

seqNum: 0x0000a684

Time: Mon May 29 19:06:07 2017

Code: 0x000000f2

Class: 0

Locale: 0x08

Event Description: Battery charge complete

Event Data:

===========

None

Tue May 30 03:06:28 CST 2017

^M

BBU status for Adapter: 0

BatteryType: iBBU-09

Voltage: 3955 mV

Current: 0 mA

Temperature: 38 C

Battery State: Optimal

Design Mode : 48+ Hrs retention with a non-transparent learn cycle and moderate service life.

BBU Firmware Status:

Charging Status : None ---------------Charging Status从Charging变成None

Voltage : OK

Temperature : OK

Learn Cycle Requested : No

Learn Cycle Active : No

Learn Cycle Status : OK

Learn Cycle Timeout : No

I2c Errors Detected : No

Battery Pack Missing : No

Battery Replacement required : No

Remaining Capacity Low : No

Periodic Learn Required : No

Transparent Learn : No

No space to cache offload : No

Pack is about to fail & should be replaced : No

Cache Offload premium feature required : No

Module microcode update required : No

BBU Capacity Info for Adapter: 0

Relative State of Charge: 80 %

Absolute State of charge: 69 %

Remaining Capacity: 1043 mAh

Full Charge Capacity: 1316 mAh

Run time to empty: Battery is not being charged.

Average time to empty: 2 Hour, 5 Min.

Estimated Time to full recharge: 5 Day, 16 Hour, 30 Min.