Обновление и откат микрокода контроллера CIMC на серверной платформе Cisco UCS

Updating and Rolling Back CIMC Controller Firmware on the Cisco UCS Server PlatformПри работе с микрокодом контроллера управления Cisco Integrated Management Controller (CIMC) у администраторов, не искушённых в этой области, иногда могут случаться непредвиденные ситуации. Например, мой первичный опыт попыток обновления прошивки IMC через интерфейс Web UI, встроенный в этот контроллер, в рамках версии 2.0 показал, что после очередного обновления веб-интерфейс IMC начал вести себя нештатным образом (возникли проблемы с работой флэш-содержимого). И в этой ситуации для решения проблемы может быть использован протокол SSH, с помощью которого мы можем произвести откат на предыдущую работающую версию микрокода, либо обновление на более новую версию, где проблема с доступом по HTTP уже исправлена. В этой заметке мы рассмотрим пример обновления и отката микрокода IMC с помощью протокола SSH.

Итак, в качестве наглядного примера, у нас имеется контроллер управления IMC с исходной версией микрокода 2.0(4с), на который через веб-интерфейс было установлено обновление до версии 2.0(13q). После активации новой версии и перезагрузки контроллера перед нами возникает такая картина:

1) Веб-страница входа IMC всегда показывает баннер с надписью "Session Expired":

Cicso IMC (CIMC) Web UI Session Expired

2) После ввода учёных данных и аутентификации вместо полноценного веб-интерфейса мы получаем "вечно-играющую" флэш "карамельку", которая в разных версиях Adobe Flash может сменяться на пустую веб-страницу с фоном от Web UI:

CIMC Web UI and Flash poblem

Когда я испытывал все версии микрокода IMC из ветки 2.0 для серверной платформы UCS C240 M4, то столкнулся с этой проблемой в трёх последних версиях этой ветки - 2.0.13o 08-Apr-2019 , 2.0.13p 25-Jun-2019 и 2.0.13q 13-Aug-2019. И судя по сообщениям на форуме Cisco, я был не единственный, кто столкнулся с этой проблемой.

Чтобы решить эту проблему, мы можем либо обновиться до более новой версии микрокода из ветки 3.0 (где Web UI с флеша уже переписан на  HTML5), либо выполнить откат на ранее используемую в IMC, штатно работающую версию микрокода. Откат возможен за счёт того, что в IMC хранится сразу две версии микрокода (Running Version и Backup Version), о чём мы уже говорили ранее.

 

Обновление микрокода CIMC с помощью SSH и TFTP

Для временного запуска TFTP сервера на платформе Windows можно воспользоваться, например, утилитой Tftpd64 от Philippe Jounin. В интерфейсе утилиты укажем каталог, который будет является корневым для TFTP сервера. В этот каталог поместим файл микрокода, который хотим залить на IMC.

Tftpd64 tool and root TFTP directory

В нашем случае это будет файл сimc.bin из подкаталога \cimc внутри архива \firmware.squashfs образа ucs-c240m4-huu-3.0.1c.iso. Сам файл cimc.bin при необходимости мы можем переименовать по своему усмотрению, например, в cimc3.0.1c.bin.

Если между нашим сервером TFTP и контроллером IMC не очень стабильно работающий канал связи, то, во избежание ошибок и обрывов в процессе передачи файла по сети, можно немного увеличить значения таймаутов/ретрансмитов в настройках утилиты Tftpd64:

Tftpd64 Timeout setting

Подключаемся по протоколу SSH на контроллер IMC, переходим в область управления микрокодом и смотрим текущее положение вещей:

scope cimc/firmware
show detail

CIMC CLI - get current firmware version

Выполняем команду загрузки микрокода с TFTP сервера и проверяем статус её выполнения:

update 10.10.0.10 /cimc3.0.1c.bin
show detail

CIMC CLI - update firmware from TFTP status

Наблюдать за статусом передачи файла можем также на стороне TFTP сервера:

Update firmware status in Tftpd64

По окончании процесса загрузки на стороне контроллера IMC новая прошивка будет менять свой статус в "Update Stage" в стадии START, FERIFY, INSTALL. Дожидаемся когда процент прогресса дойдёт до 100 и выполняем активацию версии, находящейся в состоянии "BACKUP  INACTIVATED":

activate

CIMC CLI - activate new firmware

После утвердительного ответа на вопрос, контроллер IMC уйдёт в перезагрузку. Дожидаемся, когда контроллер снова станет доступен, переподключаемся и проверяем активную версию микрокода:

scope cimc
show detail
scope firmware
show detail

CIMC CLI - new firmware activated

Как видим, обновление и активация новой версии микрокода прошли успешно и теперь мы можем проверять доступность и корректность работы всех интересующих нас протоколов управления CIMC.

 

Откат версии микрокода CIMC с помощью SSH

В некоторых ситуациях, таких, как описана выше, может потребоваться выполнить откат активной версии микрокода на ту версию, которая была на контроллере IMC ранее (Backup Version). Для этого достаточно выполнить всего пару команд:

scope cimc/firmware
activate

CIMC CLI over SSH - change firmware and activate from Backup Version

После утвердительного ответа на вопрос, контроллер IMC уйдёт в перезагрузку и загрузится уже с той версией, которая ранее была в состоянии "BACKUP  INACTIVATED".

 

Откат версии микрокода CIMC с помощью перемычки на материнской плате

В некоторых ситуациях может получиться так, что протокол SSH недоступен и удалённый откат версии микрокода IMC с помощью этого протокола невозможен. В таком случае может помочь использование перемычек на материнской плате.

Например, в нашем случае, на серверной платформе UCS C240 M4 можно найти недокументированную группу перемычек J4.

Cisco WSA S690 UCS C240 M4 revert to backup IMC firmware via J4 pinout

Выключаем и обесточиваем сервер, устанавливаем джампер на J4 на пины 3-4 и снова подаём питание на сервер. IMC должен будет загрузиться с той версией микрокода, которая была на контроллере ранее (Backup Version). После того, как произойдёт переключение на резервную версию микрокода, снова обесточиваем сервер и снимаем джампер с J4.

Так же есть непроверенная информация о том, что на серверной платформе UCS C220 M4 аналогичный откат на предыдущую версию микрокода IMC возможен с помощью недокументированной группы перемычек J20 с установкой джампера на пины 3-4.

 

В заключении ещё раз хочется отметить то, что перед обновлением микрокода IMC крайне желательно иметь включёнными и настроенными все прочие протоколы управления такие как SSH, XML API и даже IPMI over LAN. Это даст дополнительные варианты для манёвра в том случае, если очередное активированное обновление микрокода IMC "отморозит" какой-нибудь из привычных протоколов управления. А уже после процедуры обновления и успешной первичной эксплуатации обновлённой версии, все неиспользуемые протоколы можно будет отключить снова.

Добавить комментарий