Привет, Хабр!

На связи сервисная команда «Инфосистемы Джет». Сегодня хотим рассказать про один из технических кейсов. На его решение должна была уйти пара часов. Вместо этого он съел четыре дня нашей жизни. Спустя почти десяток лет он регулярно вспоминается в обсуждениях за обедом как один из непростых в диагностике. На днях обсуждали его — почему бы теперь не рассказать о нем вам? :) Приступим.

Завязка

Все началось довольно обыденно. Летней ночью с четверга на пятницу около часа ночи прилетает срочная заявка: неисправен сервер Oracle T5-2 после работ в ЦОДе по питанию. Выглядит он вот так:

Коротенькая характеристика: Oracle T5-2 — не самый новый к моменту нашей истории, но довольно популярный сервер в узких кругах. Два процессора SPARC T5, 256 виртуальных потоков и до 1 ТБ памяти — в 2013 году это была настоящая рабочая лошадка для виртуализации и баз данных.

В нашем сервисном центре на поддержке находился довольно большой парк таких серверов. У этой модели частой причиной неисправности была материнская плата, а на старших — процессорные модули.

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

fault = fault.chassis.voltage.fail@/SYS/MB/CM1
certainty = 100.0 %
FRU = /SYS/MB
ASRU = /SYS/MB
resource = /SYS/MB/CM1

Лог ILOM, который говорит о том, что материнская плата неисправна и в первую очередь требует замены.

 Дальше события развивались обыденно: запрос — подтверждение — замена. Однако к успеху это не привело — сервер не запустился. На сервис-процессоре мы увидели ошибки на блоках питания и восьми Memory Riser (MR).

Memory Riser — это платы расширения, куда устанавливаются модули памяти. Для наглядности (куда мы без картинок XD):

После материнской платы под подозрение попали компоненты, которые отвечали за питание сервера, — его блоки питания и power distribution board (PDB). Пока мы были на площадке, сразу провели несколько тестов: запуск — поочередная смена блоков питания и зачистка ошибок. Однако результатов это не принесло.

Тем временем со стороны вендора инженер открывает внутренний кейс на разработчиков. К вечеру того же дня в результате анализа под подозрение попали:

  • один блок питания;

  • PDB (power distribution board);

  • комплект внутренних кабелей между матплатой и PDB;  

  • сама плата, которая могла прийти неисправной, — DoA (Dead on Arrival).

A few moments later

Все компоненты уже были в доставке. Мы приехали на площадку проводить поочередную замену. Отчитываемся, что сделали:

  • заменили PS0 и извлекли старый PS1. Результат — сервер не стартовал;

  • проинспектировали PDB — визуально проблем не было. Итог: замена к успеху не привела;

  • посмотрели кабели между PDB и матплатой. Кабели тоже выглядели нормально*. Тем не менее их мы тоже поменяли. Результат — ноль;

    * Отступление инженера поддержки: С кабелями возникают проблемы из-за высыхания/тугости разъемов. В процессе отключения иногда случаются казусы, но на нашем сервере было все в порядке.

  • напоследок заменили материнскую плату. Изменений практически никаких не произошло, только в ILOM перестал отображаться PS1 и появились ошибки по всем восьми MR (Memory Riser).

Кульминация: страсти накаляются

«А не в MR’ах ли дело? Скорее нет, так как шансы малы, что неисправны сразу все», — пробежал короткий монолог в голове. «Черт возьми! Ну не могут выйти из строя все комплектующие за инцидент», — продолжалась рефлексия. Собрали все логи после работ и выгрузили вендору.

Шли уже выходные. От вендора — PS1 к замене, о чем утром сообщил наш дежурный инженер. И все.

— ILOM показывает ошибку по PS1... — ...но мы-то знаем, что проблема не в нем.
— ILOM показывает ошибку по PS1...
— ...но мы-то знаем, что проблема не в нем.

Ехать и менять один блок питания было совсем глупо и бесперспективно. Поэтому мы несколько раз созвонились с вендором и постарались донести критичность ситуации: шел второй день, сервер не работал, решения не было. По факту к этому моменту мы поменяли большинство компонентов сервера. Вендор настаивал на проблеме в питании. Тем не менее мы не сдавались. В свою очередь предложили заменить один из MR'ов и посмотреть, не изменится ли ситуация. В ответ услышали только, что такого быть не может, чтобы были неисправны все восемь. Но за неимением других вариантов спустя пару часов увещеваний и разговоров вендор согласился попробовать поменять.

В тот же вечер мы отправились на площадку, заменили блок питания и Memory Riser.

И — о, чудо! — ошибок по райзерам стало на одну меньше.

Развязка: черт возьми и слава Богу – чудо!

Дальше было дело техники — заменить еще семь штук. На локальном складе их не оказалось в нужном количестве, только половина. По всей видимости, в запасе их было не так много, так как довольно редко они выходили из строя.

Нам повезло — удалось найти резервный сервер, откуда можно было позаимствовать на время нужные компоненты, пока решался вопрос логистики. После замены всех райзеров сервер успешно прошел POST, но счастье было не долгим. L Cервер успешно проходил все тесты и грузился до OBP (OpenBoot Prom), все компоненты были зеленые, и ошибок не возникало, но когда дело доходило до загрузки OS Solaris — зависал.

Сразу провели тест с запуском в минимальной конфигурации. Извлекли все PCI‑адаптеры, и операционная система успешно загрузилась. Затем провели ряд тестов с поочередным отключением периферийных устройств и нашли виновников. Неисправными оказались два HBA‑адаптера. После замены функциональность сервера была полностью восстановлена.

К слову сказать, POST при холодном старте занимает 40 минут, поэтому на локализацию ушел весь день.

Что на самом деле сожгло сервер?

Найти железную первопричину нам так и не удалось. Вероятно, произошел скачок напряжения, который задел многие компоненты (8 Memory Riser, блок питания, материнская плата, 2 HBA-адаптера) по линии питания.

Помимо этого, что именно было в ЦОДе во время переключения, нам тоже доподлинно неизвестно.

В итоге сервер ожил, клиент остался доволен, а мы получили еще один интересный опыт для обсуждения за обедом. Главный урок? В сервисной работе нет «слишком невероятных» поломок — есть только те, которые еще не нашли.

Почему нам вспомнился этот кейс? С коллегами обсуждали очередное решение, а эта история — отличное подтверждение того, что редкие и маловероятные сценарии тоже случаются.

P.S. Если у вас были похожие случаи — делитесь в комментариях! Интересно, кто сталкивался с чем-то подобным. 

Комментарии (13)


  1. Lazhu
    29.07.2025 07:55

    Неужели он питался не от батарей, чтобы так все спалило?


    1. JetHabr Автор
      29.07.2025 07:55

      Добрый день! Спасибо за вопрос:)

      В ЦОДе есть резервное питание от батарей и ДГУ. Что именно произошло на линии питания нам доподлинно неизвестно. Знаем, что были какие-то работы.


  1. ZlobniyShurik
    29.07.2025 07:55

    На новой работе углядел выключенный HP DL 380 G какой-то-там. Спрашиваю - почему такая красота не в работе? Выяснилось странное - сервер новый, включается, работает. Но, в течение пары-тройки недель забывает всё, что есть на RAID-массиве. Сначала мелкие сбои, потом ОС еле грузится, в конце имеем просто неформатированные диски.
    Фирменный сервер, фирменный RAID-контроллер, фирменные диски от HP (хоть и купленные в другой конторе). Диски и контроллер пробовали менять на запасные - не помогло. В логах системы, raid-контрллера и в iLO чисто; SMART идеален; поверхность дисков, проверенная через MHDD на тестовом стенде, в прекрасном состоянии.

    В глубинах HPшного форума в каком-то неофициальном посте выяснилось чудесное. Если у вас эта модель сервера, да с тем самым RAID-контроллером, то диски такие-то (дальше длинный список партнамберов от HP) ставить нельзя и это не лечится. Но если у вас диски (список партнамберов поменьше), то, залив прошивку конкретной версии XX в контроллер и YY (именно такую, не старше и не младше) в диски, комплектующие таки можно подружить.
    Мне повезло - у меня были диски из второго списка, так что 15 минут колдунства и в нашем отделении появился могучий сервак, который потом работал без каких-либо замечаний.


    1. Zhurikello
      29.07.2025 07:55

      ссылочка на тот форум не сохранилась ли случаем?


      1. ZlobniyShurik
        29.07.2025 07:55

        Увы, 15 лет прошло, если не больше :)


  1. 13werwolf13
    29.07.2025 07:55

    был у нас давно давно сервер hp dl360 gen7, пришёл б.у. из японии как и ещё куча других. все проверки прошёл, работал отлично, накатили систему, развернули софт, пару дней работал без нареканий. и как водится обязательно ночью с субботы на воскресенье прилетает в telegram от zabbix пачка аллертов, сервер выключен. в логах ilo вроде как по питанию, включил удалённо, подежурил часик он работает. так как сервис не самый важный да ещё и зарезервированный другим сервером в соседней стойке ушёл спать. неделю он не давал о себе знать, потом опять ночью с воскресенья на понедельник потух, симптомы те же. в общем мы меняли блоки питания, провода, перевешивали его на другие лучи питания. всё равно раз в ~неделю ± пара дней он вырубался "по питанию". с прода его сняли просто перекинув диски в его точную копию и стали разбираться дальше (больше из спортивного интереса, так как вообще таких пациентов было принято пускать на запчасти канибализируя под задачи собратьев) и за ~3 месяца в нём заменили всё кроме материнки, начиная от прошивок и заканчивая всеми платами, памятью, процами.. малыш не сдавался и раз в какое-то время вырубался. конечно очевидно было что дело в материнке и поставив на него клеймо он был убран в шкаф. спустя пару лет пришёл его собрат с сильно помятым корпусом, вот его кишки и было принято переставить в героя этой истории (как раз живую материнку из мёртвого корпуса в живой корпус с мёртвой материнкой, казалось план идеален) и при перекидывании платы была найдена причина. маленький болтик попавший под материнку который какого-то чёрта раз в неделю закорачивал контакты с обратной стороны платы. без него этот сервер с родной материнкой прослужил ещё порядка трёх лет и возможно до сих пор где-то работает так как ушёл от нас на авито.


    1. perfect_genius
      29.07.2025 07:55

      какого-то чёрта раз в неделю закорачивал контакты

      Видимо, в выходные баба Люба протирала корпуса серверов и они чуть-чуть сдвигались.


  1. Donkeyhot_kgd
    29.07.2025 07:55

    40 минут post? Я просто несерьезным админом был, и серваки в организациях где работал были попроще, вот те самые 300-й серии HP в основном, и какиех-то серьезных кейсов не было с ними никогда. Так вот -- 40 минут, правда?!!!


    1. JetHabr Автор
      29.07.2025 07:55

      Добрый день!

      Спасибо за ваш вопрос:)

      Да, максимальный POST после холодного старта (отключение питания с сервера) занимает порядка 40 минут. И это не придел. Если вспомнить старенькие sun fire 25k или sparc M9000 64 (как выглядит, можно поискать в гугле), на расширенных уровнях диагностики сервер мог запускаться часами. Связано это с расширенной самодиагностикой. В нашем случае не очень помогло, что редкость


    1. DaemonGloom
      29.07.2025 07:55

      Чем больше памяти - тем дольше POST. Условные 16/32 гига, которые в мелких организациях могут встретиться, грузятся быстро, 2-3 минуты. 512 - будет грузиться в 10 раз дольше. А ведь это далеко не лимит по современным меркам крупных компаний...
      Сейчас и условный десктоп с 64 гигами DDR5 памяти после холодного старта будет грузиться минут 5 с чёрным экраном во время тренировки памяти.


      1. zatim
        29.07.2025 07:55

        Так а там разве нельзя скипнуть тест памяти настройкой в биосе?


  1. as-fisherman
    29.07.2025 07:55

    Кластер на HP DL380 Gen9, дисковая полка HPE SV3200. Виртуалки потухли и не включаются. Техподдержка индусы и болгары долго выясняли как их стартануть. Ничего не получается, вендор молчит, поддержка забыла пароли на ESXi, в итоге иксы блокируют вход с каждой неверной попыткой добавляя время блокировки. Долгая несмешная история, в конце которой приехал на локацию инженер HPE и выявил в StoreVirtual все мертвые диски. Была какая-то партия, в которой в стоковой прошивке был счетчик, по истечению которого диски умирали. Поскольку диски были из одной партии, там вроде бы даже серийники подряд были, то этот счетчик на всех одновременно и натикал их смерть. До истечения таймера обновление прошивки решило бы проблему.


    1. Lazhu
      29.07.2025 07:55

      Классика. Вот поэтому всегда ставлю в рейды диски из разных партий и желательно даже разных вендоров