Хроники HPE Alletra MP: Как обновить ось, добавить NVMe-полку и не поехать кукухой

Написано

в

Семь лет плотной работы с IT-инфраструктурой приучили меня к одному простому правилу: если энтерпрайз-вендор заявляет, что новая фича работает по принципу «Plug-and-Play», значит, впереди бессонная ночь, чтение CLI-референсов и ковыряние в неочевидных логах.

Задача стояла тривиальная: есть головное устройство HPE Alletra Storage MP B10100. Нужно на горячую подцепить к нему дополнительную JBOF-корзину с NVMe-дисками по 100Gbit оптике. Спойлер: всё завелось и полетело, но количество неочевидных граблей, разбросанных HPE на этом пути, просто outrages.

Казалось бы, что может пойти не так при штатном обслуживании энтерпрайз-хранилки за много денег? Вендоры давно обещают бесшовные апгрейды, non-disruptive операции, plug-and-play и прочий маркетинговый булшит.

На практике же работа с железом такого уровня — это хождение по минному полю в ботинках 49-го размера. Ниже — хронология двух увлекательных ночей с массивом HPE Alletra Storage MP B10100, которые заставили вспомнить архитектуру сетей, проклясть корпоративные VPN, откопать в коробках невиданные кабели и применить древнюю сисадминскую магию.

Часть I: Апгрейд операционки и исчезнувшая нода

Задача стояла тривиальная: обновить СХД с версии OS 10.4.5 до 10.4.20.

Акт 1. Исчезнувший Upgrade Tool и битые подписи

Запускаем pre-update checks. Массив радостно сообщает: чтобы накатить новую ось, тебе нужен HPE Storage Software Upgrade Tool версии 79. Сейчас стоит 74-я. Логично? Логично. Иду на портал HPE Support Center. Ищу 79-ю версию. А ее там тупо нет. Вендор решил, что промежуточные сборки — это мусор, скрыл их в архивах и оставил только свежие — 83 и 85.

Качаю 85-ю (мы же любим up-to-date), пытаюсь скормить ее массиву и получаю с ноги в лицо: Signature validation failed... Retval 512 and Status 2.

Оказывается, между 74-й и 85-й версиями HPE успели сменить криптографические ключи подписи. Старая система смотрит на новый сертификат как баран на новые ворота и шлет пакет нахер. Решение: Скачиваем версию 83 (она оказалась достаточно старой, чтобы ее подписи еще валидировались, но достаточно новой, чтобы обновить ключи). Скармливаем нераспакованный .iso — утилита обновляется. Едем дальше.

Акт 2. Мастер ушел за хлебом

Запускаем обновление самой ОС. Демон апгрейда корректно переводит ноду 1 (slave) в сервисный режим, шьет, ребутает, возвращает в кластер. Продуктовая нагрузка жива, полет нормальный.

Дальше демон отправляет в ребут мастер-ноду с индексом 0. И тут наступает звенящая тишина.

Проходит 10 минут, 20, 40… В активных тасках UI висит Restarting the management server на издевательском 1-м проценте. Сыпятся алерты:

  • Cluster Link Port 1:5:1 Node 1: Down
  • Cage I/O Module 2 is Noncritical

Команда shownode с выжившего контроллера показывает, что нулевой ноды в кластере больше нет. Она физически исчезла с радаров. В этот момент в серверной начинает отчетливо пахнуть седыми волосами, потому что хард-ресет зависшего контроллера по питанию во время обновления прошивки — это верный путь получить очень дорогой кирпич.

Акт 3. Квест «Где мой iLO, чумба?»

Чтобы понять, какого х-я происходит с нулевой нодой, нужно попасть в iLO. Проблема в том, что IP-адреса менеджмента никто не то что не документировал, их вообще не настраивали при первой инициализации, можно а зачем? Сетевики клянутся, что линки на портах горят, но там абсолютное зеро — ни мак-адресов, ни пакетов, тупо мертвая тишина на коммутаторе.

Тут дотумкал, что мак-адреса, напечатанные на “ушках” (ручках) самой СХД, прилеплены туда не для красоты. Берем эти маки, конвертируем их в форматы IPv4 и IPv6. Адреса бьются. Пытаемся зайти — болт. Тайм-аут соединения.

Разгадка оказалась банальной но от того не менее эпичной. У нас было активно подключение к банку через Cisco AnyConnect. И этот бл*дский VPN-клиент молча заворачивал локальные роуты и IPv6-трафик в свой туннель. Стоило разорвать соединение с Cisco, как прямая адресация заработала, и веб-морда iLO милостиво пустила нас внутрь.

Акт 4. Root Cause и великая Втыкайка-Вытыкайка

Заходим в iLO нулевой ноды. Сервер находится в полностью выключенном состоянии (Standby). Открываем IML логи и видим картину маслом: нода не смогла пройти POST из-за аппаратной ошибки чтения первой плашки ОЗУ.

Железо выбрало самый “удачный” момент, чтобы сбойнуть — ровно в секунду планового ребута при апгрейде. Поскольку кнопок питания на этих канистрах нет в принципе, лечится это только физическим вмешательством. Проводим классическую процедуру “втыкайка-вытыкайка”. Вытаскиваем контроллер из шасси, перетыкаем все планки оперативки, задвигаем ноду обратно на бэкплейн.

Питание подается, контакты восстанавливаются, нода успешно проходит POST и одупляется.

Акт 5. Добиваем кувалдой через CLI

Поскольку нода валялась в коме больше часа, автоматический таск в UI давно сдох по тайм-ауту. Пришлось брать управление в свои руки. Заходим по SSH на менеджмент-интерфейс и расчехляем скрытую уличную магию команд upgradesys:

  • upgradesys -status -d — чекаем, где именно завис процесс.
  • upgradesys -continue — пинаем демона, чтобы он продолжил работу с прерванного места.
  • upgradesys -auto — возвращаем процесс на автоматические рельсы.
  • upgradesys -postupgrade — коммитим новую версию и вычищаем мусор. Параллельно мониторим весь этот цирк через showtask -d $task_ID. Апгрейд ОС завершен.

Часть II: Экспансия и кабельная шизофрения

Думаете, на этом приключения закончились? Хер там плавал. Настало время прицепить к массиву на горячую дополнительную JBOF-корзину с NVMe-дисками по 100Gbit оптике.

Акт 1. Не в ту дырку

Через менеджмент DSCC инсталлируем новые 100Gbit HBA-адаптеры. Устанавливаем полку, кидаем линки, подаем питание. На картах радостно загораются зеленые светодиоды. Запускаем мастер Add Drive Enclosure в локальном UI. Мастер пишет Waiting for 1 drive enclosure to be added… и виснет наглухо. Диски на полке горят, но не моргают.

Лезем в консоль делать showport. Карты видятся в системе, но их тип — free, а протокол — IP. Контроллер считает, что в него воткнули обычные Ethernet-линки, и даже не пытается искать на том конце NVMe-корзину. Кнопки Port Personalization в локальном UI не существует.

Разгадка: Оказалось, что мы воткнули HBA-адаптеры в 4-й слот. В архитектуре Alletra MP 4-й слот хардкодно зарезервирован под Ethernet-трафик (iSCSI, репликации и бэкапы). Для подключения backend-полок по NVMe-oF карты должны стоять строго во 2-м и 1-м слоте. Вытаскиваем, перетыкаем во 2-й слот — магия! Контроллер мгновенно увидел NQN-адреса IOM-модулей.

Акт 2. Зависание на 25%

Запускаем задачу снова. Прогресс-бар бодро ползет и встает колом на 25%. Смотрим статусы:

  • showcage показывает, что полка добавилась, но висит в статусе degraded.
  • showpd показывает все 24 диска со статусом new, но емкость в систему не отдается.

Открываем священный грааль — HPE Cabling Tool. И тут выясняется, что прямое подключение «левый порт ноды в левый порт корзины» — это слишком просто для сумрачного гения инженеров HPE. Схема кроссировки должна быть асимметричной:

  1. На головном устройстве (HBA во 2-м слоте) кабель должен торчать в ПРАВОМ порту.
  2. На дисковой корзине кабель должен входить в ЛЕВЫЙ порт IOM-модуля.

UI массива тихо сходил с ума, потому что ждал NQN-адреса на правых портах, не видел их там, зажигал алерты о потере путей и переводил полку в аварию. Перекинули кабели на горячую по схеме — degraded сменился на normal, диски заморгали, сырые терабайты упали в пул.

Акт 3. Пасхалка с OCuLink

Отдельная боль — подключение сети управления для новой корзины. На задней панели есть узкий сервисный модуль CDM (Chassis Discovery Module). Но воткнуть туда обычный RJ-45 нельзя. Разъем там — OCuLink. Чтобы подключить эту приблуду к свитчу, нужно откопать в коробке с аксессуарами всратый переходник-хвостик OCuLink-to-Ethernet, вставить его до щелчка, и уже в него втыкать витую пару. В официальных мануалах об этом пишут самым мелким шрифтом а без этого переходника он отказывает в инициализации полки!

Акт 4. Звенящая тишина даунгрейда

Железо работает, емкость доступна, но в дашборде висит раздражающий алерт: IO Module firmware: Unknown. Лечится командой upgradecage cage41. Консоль выдает: Upgrading cage cage41 from rev 0798 to revision 0656... и замолкает на 56 минут.

Массив выполняет даунгрейд прошивки новой корзины, чтобы она жестко соответствовала версии ядра СХД. В этот момент нельзя паниковать и бить по клавиатуре. В фоне массив льет образ по 100Gbit линкам, ребутает первый IOM, ждет поднятия и повторяет процедуру для второго. Когда консоль отвисла, алерт ушел, а система перешла в кристально чистый статус Health: OK.

Мораль (Высечь в камне)

  1. Не верь порталам. Если нужной версии софта нет, это не значит, что подойдет последняя.
  2. Отключай VPN. Если сеть ведет себя странно при доступе к management-портам — в 9 случаях из 10 виноват AnyConnect или любой другой всратый клиент VPN, заворачивающий локальный трафик.
  3. Физика бессердечна. Какой бы крутой ни была архитектура, микровибрация на контакте DIMM-модуля положит энтерпрайзный кластер в самый ответственный момент.
  4. Слот решает всё. Backend NVMe HBA ставятся строго во 2-й слот. 4-й слот — только под сеть и iSCSI, да и просто – повнимательнее что ли читать мануалы надо-бы.
  5. Cabling Tool — закон. Кроссируйте порты строго по асимметричной схеме, иначе получите degraded и зависший UI или по той схеме который предложит сам Cabling Tool.
  6. Знание CLI спасает. Когда красивые дашборды ложатся по тайм-ауту, только хардкорные команды вроде upgradesys вытащат массив из комы. Только консоль! Только хардкор! GUI для самокатчиков!.

Апгрейд завершен. Пойду посплю.

Комментарии

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.