Статья-исследование. Докопаемся до источника проблемы и исправим её.
Как обычно ночью сработал мониторинг. Хорошо, что он сработал, даже отлично. Плохо что ночью.
На сервере HP Proliant DL360 Gen9 произошёл сбой. iLO выплюнуло ошибку, zabbix сервер поймал событие, сработал триггер аппаратной проблемы. По триггеру отправилось письмо, SMS и сработал скрипт, который отправил на Asterisk call-файл. И наша телефония дозвонилась до меня, ночью, зараза. Я не разобрал что там промямлил в трубку робот, но главная задача по поднятию админа была выполнена, как говорится, смотрите подробности в SMS.
Отказал кэш RAID контроллера Smart Array P440ar:
Cache Module Status — Degraded
На первый взгляд проблема не критичная, может ждать до утра. А утром начались проблемы, — сильная деградация по дискам. Больше суток ушло на то, чтобы переместить виртуальные машины с данного гипервизора на другой сервер. Я не замерял, но скорость переноса данных увеличилась раз в пять. Некоторые сервисы пришлось остановить.
Оказалось, что кэш RAID контроллера заметно оптимизирует работу массивов.
Поиск проблемы
Сервер уже не на гарантии, справляться с проблемой придётся самому.
Есть несколько возможных точек отказа:
- Проблема программная, возможно, из-за недавней прошивки RAID контроллера. Может помочь перезагрузка, сброс настроек RAID контроллера, выключение-включение кэша.
- Проблема с RAID контроллером. Может помочь прошивка или замена.
- Проблема с модулем кэша. Поможет разборка-сборка, замена модуля кэша.
- Проблема с проводами или контактами. Поможет разборка-сборка, переподключение батарейки, замена батарейки.
- Проблема с батарейкой. Поможет замена батарейки.
Первым делом перезагрузил сервер и iLO. Не помогло.
Проверил статус батарейки. Статус OK.
Непонятно, загрузимся в HPSSA (HP Smart Storage Administrator). Перезагружаем сервер, при загрузке нажимаем F9 для входа в System Utilities.
Выбираем System Configuration.
Выбираем проблемный контроллер: Embedded RAID 1: Smart Array P440ar Controller.
Выбираем Exit and launch HP Smart Storage Administrator (HPSSA).
Выбираем (уже выбрано) Smart Storage Administrator. Сюда же можно попасть выбрав F10 (Intelligent Provisioning) при загрузке, но нужно будет успеть переключить пункт в этом окне.
Дожидаемся загрузки Smart Storage Administrator.
Видно, что на RAID контроллере Smart Array P440ar светится предупреждение.
Текст ошибки здесь более информативный:
Smart Array P440ar in Embedded Slot has one or more cache module batteries/capacitors that are recharging. Caching operations such Expansion, Extension, and Migration are temporarily suspended until the batteries/capacitors are fully charged. Caching operations will automatically resume when charging is complete.
Получается, батарейка находится в процессе зарядки. Такое случается, если воткнуть разряженную батарейку. Ошибка пропадёт после полной зарядки. Но в моём случае батарейка уже давно установлена, ошибка сама не пропадает.
Выполним диагностику.
Server → Actions → Diagnose.
View Diagnostic Report.
Начинается сбор диагностических данных.
Кэш RAID контроллера отключён, других ошибок нет. Полистал отчёт, ничего особенного не обнаружил.
Посмотрим на кэш. Tools → Cache Manager → Controller Cache → Controller Cache Details.
- Cache Status: Enabled, but not currently active.
- Cache Status Details: Cache disabled; power source charging is low.
- Battery/Capacitor Status: Recharging
Кэш отключён, т.к. батарейка заряжается, а уровень её заряда низок. Можно посмотреть больше деталей: View more details.
Более подробная информация нам особо не помогает, единственное, что интересно в нашем случае, это запись:
- Enable Write Cache When Battery/Capacitor Not Present or Not Completely Charged: Disabled
В кэше контроллера есть опция, позволяющая включить кэш при отсутствии батарейки или при низком её заряде. Если бы сервер был боевым, если бы нам срочно нужно было наладить работу сервера, то включение этой опции нам бы очень помогло. Вот только включить эту опцию мы не можем, так, как кэш в настоящий момент отключён: There are no available actions. Печаль, но есть обходной манёвр.
Временное решение проблемы
Помимо кэша контроллера у каждого физического диска есть собственный кэш, который по умолчанию в RAID массивах отключён. Включим.
Smart Array P440ar → Actions → Configure → Modify Controller Settings.
Меняем галку Physical Drive Write Cache State на Enabled. Save Settings.
Controller Settings were successfully saved. Настройки сохранены. Как вы думаете, что сейчас произойдёт? Правильно, кэш RAID контроллера отключится... и все его предупреждения сбросятся.
Посмотрим на кэш. Tools → Cache Manager → Controller Cache → Controller Cache Details.
- Cache Status: OK
- Battery/Capacitor Status: OK
Даже батарейка перестала заряжаться. Но главное не это, появилась кнопка Modify Caching Settings, нажимаем.
Нас предупреждают, что включение кэша с плохой батарейкой приведёт к потере данных при внезапном отключении питания. Но всё же мы теперь можем, если очень захотим, включить опцию "Enable Write Cache When Battery/Capacitor Not Present or Not Completely Charged". Я не буду включать, срочного у меня ничего нет. Если сейчас снова отключить кэш физических дисков, то ошибка не вернётся до следующего цикла проверки батареи.
Становится понятно, что проблема в самой батарейке или в её проводах. Убедимся в этом. Перезагружаем сервер, жмём F9, во встроенных приложениях загружаем диагностический режим. Выполняем экспресс-проверку системы.
При проверке батарей: Основная — Заменить.
Решение проблемы
Меняем батарейку в сервере:
Видео замены батарейки в HPE Proliant DL360 Gen9
После замены батарейки снова загружаем диагностический режим и выполняем экспресс-проверку системы.
Проверка батареи : Основная — ОК. Ошибок нет.