ILO Self-Test Error: Диагностика и реанимация встроенной NAND-памяти в серверах HPE ProLiant Gen8/Gen9

от автора

Всех приветствую! это будет самый первый пост и его я решил посвятить следующий теме ILO Self-Test Error, как диагностировать, в чем проблема и как реанимировать на серверах HPE. Почему именно данная тема сказать не могу, но моя любовь к оборудованию HPE безгранична и с первым постом не хотелось закрутить что то больно сложное, отсюда и выбор данной темы.

С данной проблемой я уверен чаще всего встречаются специалисты эксплуатации ЦОД и оборудования, те кто постоянно мониторит это оборудование и ходит на ILO. Сейчас на территории РФ такая ситуация что вендора ушли, а в частности нас интересует HPE и ни деталей ни поддержки мы не получаем и следственно приходится выкручиваться полностью самостоятельно. В этой статье разберем из-за чего появляется такая ошибка, на сколько она критична и как ее вылечить чтобы не переживать за работу оборудования и чтобы глаза не мазолили никакие ошибки при подключение на ILO сервера.

Ну что же, перейдем от вступления и приступим к разговору по делу, а начнем с самой архитектуры ILO, что такое NAND, какие такие контроллеры и почему это влияет на ILO, AHS логи, Intelligent Provisioning и профили OneView. В серверах HPE есть чип NAND Flash который используется как независимый от основной операционной системы накопитель, где и хранятся все критические службы, которые мы описали выше.

Технология чипа: Чипы есть разные такие как e-NAND или eMMC, к примеру в ILO 4 используется SK Hynix H26M31003GMR. Они представляют собой энергонезависимую память типа NAND, которая работает аналогично SD-картам, но распаяна непосредственно на материнской плате для обеспечения высокой надежности при out-of-band управлении.

Разделы (партиции): Внутренний объем чипа разбит на системные разделы. Один из них (Embedded User Partition) выделен для пользовательских логов и образов, доступных через утилиты администрирования.

Контроллер: Чипы имеют собственный встроенный контроллер для выравнивания износа (Wear Leveling) и управления поврежденными блоками памяти. Память NAND имеет физический предел. В связи с тем, что AHS постоянно записывает метрики и логи состояния, со временем ресурс чипа вырабатывается. При аппаратном износе чипа iLO переходит в режим ограничения записи, а в POST выдается ошибка Embedded Flash/SD-CARD (о которой у нас сегодня и пойдет речь) в следствии чего iLO теряет возможность писать логи, начинает тормозить, а в худшем случае — сервер начинает «завывать» вентиляторами на 100%, так как контроллер не может считать профили охлаждения

Чтобы диагностировать проблему мы можем залогиниться на ILO нужного сервера и по пути Information —> Health Summary —> iLO Self-Test

  • Если компонент исправен, напротив него будет стоять статус OK или PASS.

  • Если есть предупреждение или ошибка, вы увидите статус Degraded или FAIL. Нажав на конкретный пункт с ошибкой, можно получить дополнительные детали для диагностики.

Я бы рекомендовал первым делом проверять какой версии у вас стоит прошивка, так как на версиях ниже 2.61 чаще всего связана с ограничением файловой системы (FAT32/exFAT), защитой от записи или сбоем в структуре разделов накопителя так как NAND имеет ограниченный ресурс записи. Лучше всего шить ILO на версию 2.61 и выше так как там более исправный алгоритм записи и данные переносятся в RAM а не изнашивают и забивают предел NAND.

Далее будут приведены примеры XML-скриптом которые могут нам помочь отформатировать битые разделы и пересоздать их тем самым оживить чип, который по мнению самого сервера дошел до своего физического предела. Рассмотрим несколько возможных вариантов, такие как: запуск скрипта локально из под ОС, удаленного запуска скрипта (по сети). Вариант локального запуска скрипта на самом сервере самый удобный по моему мнению так как драйвер HPE обходит авторизацию (credentials) iLO, если у вас есть права root/Administrator в самой ОС, сам скрипт который требуется запускать через утилиту hponcfg,

Внимание: Все действия вы производите на свой страх и риск. Автор не несет ответственности за сломанные сервера, хотя описанные ниже методы являются официальными стандартными процедурами восстановления HPE.

На Linux (RHEL / Ubuntu / Debian):

  1. У вас должна быть установлена официальная утилита hponcfg (она входит в пакет HPE Scripting Toolkit или ставится из репозитория HPE).

  2. Загрузи файл format_nand.xml на сервер (например, в /tmp).

  3. Запусти терминал под root и выполни команду:

    hponcfg -f /tmp/format_nand.xml
  4. Утилита свяжется с iLO через системную шину (драйвер hpilo) и применит команду. В выводе ты должен увидеть: Script succeeded.

На Windows Server:

  1. Установите драйвер HPE ProLiant Channel Interface Driver и утилиту HPONCFG.

  2. Открой командную строку (cmd) от имени Администратора.

  3. Перейди в папку со скриптом и выполни:

    hponcfg.exe /f format_nand.xml

Сам скрипт который требуется запустить на ОС по инструкции выше:

<RIBCL VERSION="2.0">   <RIB_INFO MODE="write">           <FORCE_FORMAT_E_FLASH VALUE="Yes"/>     </RIB_INFO> </RIBCL>

Для удаленного запуска по сети скрипт будет немного отличаться так как тут нам уже обязательно потребуется логин и пароль:

<RIBCL VERSION="2.0">     <LOGIN USER_LOGIN="Administrator" PASSWORD="Твой_Пароль_iLO">            <RIB_INFO MODE="write">      <FORCE_FORMAT_E_FLASH VALUE="Yes"/>         </RIB_INFO>     </LOGIN> </RIBCL>

Если операционная система на сервере «лежит» или зависла, но iLO доступен по сети:

  1. Скачайте утилиту HPE Lights-Out XML Utility (HPQLOCFG) на свой рабочий компьютер (есть версии под Windows и Linux).

  2. Запусти команду в терминале своего ПК:

    hpqlocf.exe -s <IP_адрес_iLO> -l log.txt -f format_nand.xml
  3. Утилита отправит XML-запрос по сети, iLO выполнит форматирование, а отчет запишется в файл log.txt.

Помимо XML, форматирование можно запустить еще более быстрым способом — через обычный SSH-клиент, без всяких XML-файлов.

  1. Подключись к IP-адресу iLO через Putty или терминал: ssh Administrator@<IP_iLO>.

  2. Перейди в нужную директорию одной командой:

    cd /map1/oemhp_generic1
  3. Запусти принудительное форматирование:

    set oemhp_formatFlash=yes 
  4. iLO выдаст предупреждение и начнет процесс. Через 5 минут отправь iLO в перезагрузку командой reset /map1.

После того как команда (XML или SSH) выполнена, iLO обязательно нужно перезагрузить по питанию (Cold Boot).

Внимание! Просто мягкая перезагрузка iLO из веб-интерфейса не всегда помогает. Физически обесточьте сервер на 60 секунд (выдерните шнуры питания). Это очистит кэш контроллера iLO и заставит его пересоздать разметку на чипе памяти с нуля

ссылка на оригинал статьи https://habr.com/ru/articles/1042404/