"Bash.org.ru IT Happens Истории ## 1101 – 1200" - читать интересную книгу автора (Bash.org.ru IT)
#1113: Сказано без очереди не пущать!
15:00 30.07.2009, IT happens
У одного заказчика есть большая и суровая железка под названием Sun Fire E25K, крайне критичная для бизнеса. Управляют сервером два контроллера — встроенные в шасси мелкие серваки с Solaris на борту. Греется этот слон так, что от него можно прикуривать, а с охлаждением в датацентрах вечная проблема. Админы написали скриптик, который берет вывод команды showenvironment, выкусывает из него температуру и в случае достижения определенного значения шлёт почту, где жалуется на некомфортные погодные условия. Всё работает уже с полтора года и все счастливы.
В прошлые выходные между двумя этими контроллерами повис интерконнект — ни файловер не сделать, ни подключить консоль с одного на другой. В общем, отказоустойчивости ноль.
Запланировали работы по исправлению ситуации — сервер надо было выключать целиком. Опустили домены, выключили контроллеры, обесточили сам сервер. Покурили, идем включать. Загрузив контроллеры, даём команду poweron и начинаем медленно покрываться испариной — сервер долго висит на включении вентиляторов. Из опыта я знаю, что такого быть никак не может, ибо вентиляторы включены абсолютно всегда, а сервер пишет, что их включает, чисто для проформы. Сроки работ ограничены, все в панике.
Смотрим лист процессов и наблюдаем, как несчастный контроллер запрашивает состояние температур у выключенного шасси! В лучших традициях советских очередей «привратник» не даёт пролезть вперед другим процессам (например, poweron) даже по большому блату.
После ритуального уничтожения строки запуска скрипта в кроне дело пошло как подобает. Да, в инструкциях такого не пишут — верно утверждение, что «тонкости познаются через факапы»!