Как оценить состояние BBU на СХД Dell SC5020
Чем старше становятся мои системы хранения данных, тем больше за ними нужно присматривать и своевременно производить сервисное обслуживания, как со стороны софта, так и со стороны замены вышедших или выходящих из строя деталей. В данной публикации я хочу прежде всего для себя структурировать знания и опыт по диагностике батарей кэширующих карт. Думаю, что не я один сталкивался с подобной задачей, так что уверен, что вы в комментариях поделитесь и своим опытом и полезными командами.
Ошибка "Write cache operation fauled"
На этой неделе я производил плановую замену планку оперативной памяти на Dell SC5020, а заодно и одну из BBU батарей, сам процесс я так же уже описывал ранее.
После замены батарея стала заряжаться, но потом СХД стала меня заваливать письмами с предупреждениями:
2025-08-07 18:35:31+0000] Alert created on controller 'DELL[375388]' for object [internal ref: 'Cache Software'] - [CacheDeviceSoftware]: Write cache operation faulted
[2025-08-07 18:35:31+0000] Alert created on controller 'DELL[375388]' for object [internal ref: 'Cache Software'] - [CacheDeviceSoftware]: Write cache operation faulted
[2025-08-07 18:35:36+0000] Alert created on controller 'DELL[375388]' for object [internal ref: 'Battery Low Charge'] - [BatteryLowCharge]: Cache device battery has a low charge.
[2025-08-07 18:35:36+0000] Alert created on controller 'DELL[375388]' for object [internal ref: 'Battery Low Charge'] - [BatteryLowCharge]: Cache device battery has a low charge.
И так каждую минуту, что стало хорошо и что опять слабый заряд.
В Dell Storage Manager Client данные ошибки так же присутствовали и имели статус "Degraded".
Далее мне стало интересно посмотреть статусы BBU на BMC интерфейсе у контроллера. Тут я видел, что были проблемы, но потом работа BBU нормализовалась.
Я подумал, что батареи просто нужно время на зарядку. Dell Storage Manager Client показывал статус "Normal", но выше 83% заряд не поднимался, и так же в статусе описания была надпись:
Write cache operation fauled serviceTaf: Ack 0
Через какое-то время вольтаж стал отображаться как 0%, в описании был статус "Safely charged".
Косвенно можно сделать вывод, что недостаточно напряжения. Обязательно в BMC подключитесь к консоли и посмотрите там статусы, то же может быть полезная информация.
При подключении к Console вы сто процентов столкнетесь с двумя ошибками: Application Bloked by Java Security и так же Java Failed to validate certificate
В окне консоли красовалось много предупреждений и все они были связаны с вольтажом BBU:
low battery charge: voltage (0), capacity (378)
battery disarm(202)
arm battery: voltage(9029)
Полезные команды для диагностики BBU
Для начала включите ssh на ваших контроллерах, как это делать смотрите по ссылке. Далее подключаемся с помощью Putty и вперед. Для начала посмотрим информацию по нашим контроллерам, для этого выполните
Controller Show
Тут будет полезно посмотреть ID контроллера, их System SN и имена. Далее выведем информацию по BBU. Для этого выполните команду:
cha status
Тут я особо хочу чтобы вы обратили на столбец battVoltage, который показывает текущее напряжение батареи (в вольтах), которая обеспечивает аварийное питание кэш-памяти контроллера при отключении основного питания. По результатам я вижу, что напряжение на новой BBU 9 ват, а должно быть 12, поэтому и выскакивают ошибки.
Выше мы с вами находили номера контроллеров, в следующей команде мне потребуется посмотреть подробные данные по BBU именно на нужном. Для этого есть такая команда.
cha get 375388 3
Где 375388 - это номер конкретного контроллера.
ID / Name / Len / Value
==== ========================================
3 firmwareVersion 1 0x00000000
4 firmwareBuildTime 1 0
5 boardUptime 1 0
6 boardCacheSize 4 4294966784
7 boardFailures 1 0
8 boardTemperature 1 0
9 battVoltage 1 0
10 battCurrent 1 0
11 battAveCurrent 1 0
12 battRemCapacity 2 3720
13 battStatus 1 0x0000
14 battCycleCount 1 0
15 battDesignCapacity 2 3780
16 designVoltage 2 10800
17 battManufactureDate 2 19637
18 battSerialNumber 2 1039
19 chargerState 1 0
20 ramSbeCount 1 0
21 ramMbeCount 1 0
22 ramScrubs 1 0
23 battMfgDate 11 05/21/2018
24 battFullChargeCapacity 2 3867
25 chaType 1 0x00000013
26 battGaugeType 1 0
27 battGaugeName 0
28 battASOC 1 0
29 battAtRate 1 0
30 battAtRateOK 1 0
31 battAtRateTTE 1 0
32 battAtRateTTF 1 0
33 battAvgTTE 1 0
34 battAvgTTF 1 0
35 battMode 1 0x0017
36 battChgCurrent 1 0
37 battChgVoltage 1 0
38 battDevChem 0
39 battDevName 0
40 battMfgAccess 1 0x0000
42 battMfgName 12 CN2171785L0
43 battMaxError 1 0
44 battPackStatus 1 0x0001
45 battRSOC 1 0
46 battRemCapAlarm 2 3439
47 battRemTimeAlarm 1 0
48 battRTTE 1 0
49 battSpecInfo 1 0
50 battTemperature 1 0
51 battVCell1 1 0
52 battVCell2 1 0
53 battVCell3 1 0
54 battVCell4 1 0
55 chgTaperState 1 0
56 magic 0
57 ramLog1Addr 1 0x00000000
58 ramLog1Type 1 0
59 ramLog1Time 1 0x00000000
60 ramLog1Bit 1 0
61 ramLog2Addr 1 0x00000000
62 ramLog2Type 1 0
63 ramLog2Time 1 0x00000000
64 ramLog2Bit 1 0
65 ramLog3Addr 1 0x00000000
66 ramLog3Type 1 0
67 ramLog3Time 1 0x00000000
68 ramLog3Bit 1 0
69 ramLog4Addr 1 0x00000000
70 ramLog4Type 1 0
71 ramLog4Time 1 0x00000000
72 ramLog4Bit 1 0
73 ramLog5Addr 1 0x00000000
74 ramLog5Type 1 0
75 ramLog5Time 1 0x00000000
76 ramLog5Bit 1 0
77 ramLog6Addr 1 0x00000000
78 ramLog6Type 1 0
79 ramLog6Time 1 0x00000000
80 ramLog6Bit 1 0
81 ramLog7Addr 1 0x00000000
82 ramLog7Type 1 0
83 ramLog7Time 1 0x00000000
84 ramLog7Bit 1 0
85 ramLog8Addr 1 0x00000000
86 ramLog8Type 1 0
87 ramLog8Time 1 0x00000000
88 ramLog8Bit 1 0
89 ramLogIndex 1 0
90 ramOverflowCount 1 0
91 ramScrubAdr 1 0x00000000
92 tempStatus 1 0x00
93 tempThreshHi 1 0
94 tempThreshLo 1 0
95 battInstallDate 2 19637
96 battExpirationDate 2 22709
97 boardSerialNumber 2 1039
98 safeCapacityLevel 2 3068
99 safeVoltageLevel 2 7560
100 nvdimmCommand 1 0x00000000
101 nvdimmControl 1 0x00000000
102 nvdimmStatus 1 0x00000000
103 nvdimmError 1 0x00000000
104 nvdimmControllerState 1 0x00000000
105 nvdimmControllerVersion 1 0x00000000
106 nvdimmSignalState 1 0x00000000
107 nvdimmFlashStatus 1 0x00000000
108 nvdimmBadBlockCountTotal 1 0
109 nvdimmBadBlockCountErase 1 0
110 nvdimmBadBlockCountRestore 1 0
111 nvdimmBadBlockCountBackup 1 0
112 nvdimmEccCountRestore 1 0
113 nvdimmBackupCount 1 0
114 fwAbortCount 1 0
115 nvdimmBadBlockCountThreshold 1 0
116 boardRevision 1 0x00000000
117 sbeThreshold 1 2
118 memcpyCount 1 0
119 batteryState 1 202
120 nvdimmState 2 311
121 bbuxVersion 1 0x00000003
122 bbuxHardFault 1 0x00000000
123 bbuxSoftFault 1 0x00000000
124 bbuxAlertMask 2 0x00000800
125 bbuxFaultMask 1 0x00000000
126 fruDateTime 25 Mon May 21 03:00:00 2018
127 fruManufacturer 5 DELL
128 fruProductName 31 SC7020 BBU
129 fruSerialNumber 15 CN2171785L040F
130 fruPartNumber 10 0JVR23A00
9000 CreateTime 4 08/07/2025 09:35:10 PM
9002 ModifyTime 4 08/07/2025 09:35:10 PM
9004 XMLData 0
9005 ActiveController 4 375388
9006 AbnormalDesc 0
9007 OperatingNormal 1 (1) Normal
9008 SlaveObject 0
9009 MasterObject 0
9010 ActivateStart 8 03:34.863_401_074
9011 ActivateEnd 8 03:34.872_982_365
9020 StatusChangeTime 4 08/08/2025 05:59:20 PM
9024 CreateStatus 1 (2) Created
9025 DeleteStatus 1 (1) NotStarted
Что тут интересно:
Дата производства (battMfgDate): 05/21/2018 (май 2018 года)
- Дата истечения срока (battExpirationDate): 22709 (≈ август 2022 года)
Текущая ёмкость (battRemCapacity): 3765 mAh.
- Паспортная ёмкость (battDesignCapacity): 3780 mAh
Износ: (3780 - 3765) / 3780 ≈ 0.4% – минимальный, но это может быть неточным из-за возраста батареи.
- Напряжение (battVoltage): 9029 mV
- Статус (battPackStatus): 0x0001 (обычно означает "OK", но требует проверки)
Удивительно, что на батарее указана дата 2501, а оказалось внутри 2018. Как будто она была после восстановления и реставрации.
Еще из полезных команд показывающих информацию по батарее это:
cha battery show
Команда выше показывает информацию по активному контроллеру, тут я бы выделил из интересного:
- voltage
- RemCapAlarm
- battStatus
- serialNumber
- mfgName
- devName
- fruDateTime
- fruManufacturer
- fruProductName
- fruSerialNumber
- fruPartNumber
Посмотреть информацию по BBU На обоих контроллерах. можно вот такой командой. Из интересных полей тут будут:
- fruManufacturer
- fruProductName
- fruSerialNumber
- fruPartNumber
- Active Controller
- battInstallDate
- battExpirationDate
cha show
Еще проверить ошибки и состояние BBU на лидирующем контроллере можно командой:
cha state
Тут посматривайте на столбцы:
- Failures
- BootStatus
- FwState
- BattVoltage
- ErrorInfo
- ErrorCode
- ErrorCode2
Установили новую BBU. У нее почти разу стал "Battery Voltage" 100%, статус первое время был "Down" и в описании было видно, что батарея стала заряжаться.
9% (Cahce will be enabled when saferly charged)
Естественно я сразу запросил командой подробную информацию по BBU и с радостью увидел, хоть она и была произведена в 2019 году, то уже лучше, у нее было хорошее значение battVoltage 11700 и battStatus имел код 0x0006.
В документации вендора говорится, что на СХД кэш может не включиться при истечении от даты производства 5 лет. Однако на практике мы видим, что кэш работает и на более старых исправных батареях. Так, что хоть и BBU 2019 года, оно продолжит работать. Единственное, пока вы не обновите прошивку, в которой может поменяться что-то.
Минут через 20 батарея полностью зарядилась, у нее статус стал "UP", в описании так же был нормальный статус "Safery charged".
Вольтаж стал 12 000, это то что нужно.
Далее я проверил, что на BMC интерфейсе пропали ошибки "Cache to flash interrupt occured". В логи последними остались зеленые события "The BBU_FRU BBU battery is operating normally".
Что еще предложили в техподдержке
Если у вас нет возможности, заменить батарею, то мне инженеры из технической поддержки предложили вот такой алгоритм действий. Необходимо выполнить команду сброса данных о состоянии батареи на контроллере, где есть проблемы с данной BBU. Для чего это нужно?
- После замены батареи – если установлен новый аккумулятор, контроллер может требовать сброса старых данных.
- При ложных ошибках – если система ошибочно сообщает о неисправности батареи, сброс может помочь.
- Калибровка батареи – в некоторых случаях требуется обновить данные о состоянии заряда.
cha battery reset
После отработки данной команды контроллер перезапустит мониторинг батареи. Через минут 5 необходимо выполнить команду:
platform bmc reset
Данная команда перезагрузит BMC модуль (мягкую перезагрузку BMC), так как он отвечает за мониторинг аппаратного состояния (температура, вентиляторы, питание). Перезагрузка может помочь с некорректными показаниями датчиков (температуры, напряжения). Процесс занимает 1-2 минуты, на это время может пропасть удалённый доступ iDRAC.
Далее нужно проверить информацию, по состоянию кэша.
cache alertcache statuscache showcache get 1
Надеюсь, что вам хоть как-то помогла данная информация и мой опыт в этом вопросе. С вами был Иван Сёмин, автор и создатель IT портала Pyatilstnik.org.