bash.im ithappens.me zadolba.li

Серверы

1553

Стомегабитный громоотвод

Работал я как-то в компании, владеющей крупной всероссийской сетью розничных продуктовых магазинов. Работа стандартная, весь день за рулём: то кто-нибудь каблуком UTP перетопчет, то ext2 у кого прикажет долго жить — однообразно донельзя.

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

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

Поменял плату, запустил магазин, приехал в офис. О тратах надо отчитаться — пишу письмо в центр. «Весело у вас там!» — порадовалось за прицельный выстрел стихии начальство и согласовало бюджет.

1549

Морской бой по-сисадмински

Представьте стойку, в которой стоит шесть серверов, старый 14" моник, выдвижная клава с трекболом и KVM-переключатель на 8 портов. Еще пара серваков размещены рядом со стойкой и прикручены к тому же KVM.

В один прекрасный день на одном из этих двух стареньких, но очень нужных серверов вышел из строя разъём для мыши. Как назло, в наличии только ноутбучная USB-мышка с таким же коротким проводом. Монитор не развернуть — мешают бесперебойники, комп поближе не поставить, а надо всего лишь щёлкнуть одну кнопку мышкой. Тетрадный лист вместо коврика и короткими перебежками: «Две клетки влево? — Перелёт по горизонтали. На клетку вправо? — Недолёт по вертикали...»

Обиднее всего то, что когда мне всё же через десять минут удалось навести указатель на кнопку, под ним высветилась издевательская подсказка: «Старт (F9)».

1544

Всё своё ношу с собой

Как-то раз дорабатывал я чужой проект, написанный на РНР. Конечно, использовалось ООП — известно, что только ламеры пишут процедурный код, а реальные пацаны без объектов и «хеллоу ворлда» не напишут.

Центральным элементром нестройного ансамбля был класс main, содержавший в себе всё. Его экземпляр создавался в каждом скрипте, он содержал в себе весь набор сервисных функций в виде методов и так далее. Были и классы помельче — например, класс, необходимый для работы с потоком закачки файлов. Из экземпляров этого класса в классе main создавался массив закачек. Здорово, но как из любого экземпляра класса «поток» получить доступ к сервисным функциям, определённым в main? Всё гениальное просто! Надо в каждый класс «поток» воткнуть экземплярчик класса main, и дело в шляпе.

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

1468

Дуплекс-ТВ

Работал я админом в одной конторе, в датацентрах которой водилось много разношёрстного железа. Разработка ПО дело такое — нужно тестировать на разных платформах.

Нашли мы старый сервак с Tru64. На внутренних дисках валялась куча хлама и парочка видеофайлов. Один назывался dana_92.avi и весил 90 мегабайт. «О, порнуха!» — вскрикнули хором и стали пробовать скачать его по FTP с целью... удостовериться.

Файл тянулся со скоростью 10 КБ/с. «Сильно медленно, — решили мы, — не может так быть на нашей сетке». Давай смотреть iostat, netstat и так далее. Замечаем кучу ошибок и коллизий; понимаем, что дуплекс выключен. Находим методом тыка, как в «трухе» включать дуплекс. Включаем — скорость как прорвало.

За 10 секунд приняли файл, открываем, а там... кусок из «ОСП-Студии» с Даной Борисовой!

1463

Каскадный шатдаун

Работал я в прекрасный выходной денёк по VPN из дома на серваках. Их в офисе пять штук, все на 2003 виндах (как и домашняя машина), на все захожу по стандартному RDP.

Есть у меня дурацкая привычка: если надо при работе на одном сервере выйти на другой, я, не сворачивая терминал, в нём же открываю следующий сервак, в нём следующий... Таким образом я сидел на всех пяти серваках — один в другом открыт, как матрёшка.

Закончил свои грязные дела на серваках и решил, что можно пойти с друзьями пивка в баре дёрнуть. Попрощался с благоверной и ушел. Сижу в баре, с чувством выполненного долга потягиваю пенистый напиток. Звонит жена:

— Ты компутер не выключил, когда ушёл, выключить?
— Если хочешь — выруби.
— Хорошо.

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

Тут заходит благоверная и молвит:

— Что-то сегодня компьютер выключаться не хотел, шесть раз пришлось выключать.
— ?!
— Я сначала один раз нажала «Пуск — Выключить», написала причину и нажала «ОК». Он повыключался, потом выдал окно красненькое, потом снова рабочий стол показался. И так шесть раз.

Естественно, моя душа погасила сначала пять серваков в открытых терминалах, а только затем стационарный комп. Пришлось на ночь глядя на работу идти серваки включать.

1429

До встречи в следующей жизни

У нас в фирме стояла файлопомойка под управлением Windows Server 2008. Операционка эта при каждой перезагрузке или выключении выводит навязчивое окно с просьбой описать причину, иначе же вырубаться отказывается.

Однажды я осознал, что без громоздкой винды помоечке было бы легче дышать, и собрался поменять операционку на бесплатную FreeNAS. Так вот, когда я, уже засунув болванку в дисковод, стал в последний раз выключать виндовый сервак, вылезло то самое окошко.

Что писать? Жалко винду, стыдно за своё неподобающее поведение. Я решил пойти на компромисс с совестью и ввёл: «Когда-нибудь установлю снова...»

1253

Мышкина писька

Как-то раз умер файл-сервер. Совсем умер — работа конторы встала намертво. Наспех поднимаю новый под единственным имеющимся дистрибутивом линукса — Ubuntu Server 8.0. Встал идеально, но через час выяснилось, что в запарке я забыла отрубить ему сон в биосе. Файл-сервер, используемый ежесекундно, регулярно крепко засыпал с остановкой винтов и закрытием сетевых подключений. На мои просьбы подождать немного — перегружусь, мол, и отключу эту функцию, — мне пригрозили жутчайшими карами. Дергать постоянно мышью сервера было напряжно — то забуду, то по делам уйду.

Решение было найдено чисто женское и впоследствии получило наименование «пощекотать мышке письку» (пардон за мой французский). Я вспомнила про способ, когда-то описанный на боре — подвесить мышь напротив работающего вентилятора. Вентилятора достаточной мощности рядом не наблюдалось, в наличии были только кулеры обычных писюков. Как же проблема была решена? Очень просто. Мышку я перевернута вверх пузиком, в «причинную дындочку» засунула нитку и разместила конструкцию в воздушном потоке от системника со снятой боковиной. Файл-сервер благополучно не спал до конца рабочего дня — видимо, хохотал от щекотки. Друг мой, оценив инженерную смекалку, выдал прекрасное двустишие:

Мышка вверх пузом лежит и хохочет —
Мышке нитка письку щекочет.

1144

Семь раз проверь — один отнеси

Было это зимой 2005–2006 года. Я только начинал админить «по-крупному» и устроился в фирму набираться опыта. Фирма небольшая: компов 150 и семь серверов. Обновляются сервера и рабочие станции по мере выделения финансов‚ которое обычно происходит в конце года. Посовещавшись, решили, что хватит уже использовать в качестве серверов всякую дрянь — надо плавно переходить на 19-дюймовую стойку. Выбрали, подсчитали, заказали 3 «Харитона Петровича» и стойку на 22 юнита, ждём.

Сначала привезли серваки, стойку обещали пригнать через неделю. Под вечер привозят коробку размером с большой холодильник (по правде сказать, нам ещё тогда показалось, что 22 юнита немного поменьше). Собрали парней покрепче и потащили на третий этаж. Доносим до границы царства ИТ — дальше никак, не проходит коробка в проём. До серверной ещё ого-го, а в коридоре на ночь дорогую стойку оставлять не хочется. На последнем дыхании тихо материмся — придётся разбирать тут. Вскрываем одну сторону коробки, минут пять лопаем пузырики транспортировочного уплотнителя, которого настолько много что не совсем понятно, что в него завернуто. Один из нас замечает какую-то книжечку — достаём, смотрим на обложку. Это инструкция по установке и настройке массажного стола.

Хорошо, что курьер тащил коробку с нами — и не так обидно, и есть, кому подзатыльник отвесить. Молодой парнишка что-то перепутал и стойку нашу отгрузил в массажный салон. Вот они, наверное, обрадовались новому слову в массаже!

1113

Сказано без очереди не пущать!

У одного заказчика есть большая и суровая железка под названием Sun Fire E25K, крайне критичная для бизнеса. Управляют сервером два контроллера — встроенные в шасси мелкие серваки с Solaris на борту. Греется этот слон так, что от него можно прикуривать, а с охлаждением в датацентрах вечная проблема. Админы написали скриптик, который берет вывод команды showenvironment, выкусывает из него температуру и в случае достижения определенного значения шлёт почту, где жалуется на некомфортные погодные условия. Всё работает уже с полтора года и все счастливы.

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

Запланировали работы по исправлению ситуации — сервер надо было выключать целиком. Опустили домены, выключили контроллеры, обесточили сам сервер. Покурили, идем включать. Загрузив контроллеры, даём команду poweron и начинаем медленно покрываться испариной — сервер долго висит на включении вентиляторов. Из опыта я знаю, что такого быть никак не может, ибо вентиляторы включены абсолютно всегда, а сервер пишет, что их включает, чисто для проформы. Сроки работ ограничены, все в панике.

Смотрим лист процессов и наблюдаем, как несчастный контроллер запрашивает состояние температур у выключенного шасси! В лучших традициях советских очередей «привратник» не даёт пролезть вперед другим процессам (например, poweron) даже по большому блату.

После ритуального уничтожения строки запуска скрипта в кроне дело пошло как подобает. Да, в инструкциях такого не пишут — верно утверждение, что «тонкости познаются через факапы»!