bash.im ithappens.me zadolba.li

Серверы

3314

Вырубившийся рубильник

Написал я как-то небольшой сервер для автоматической проверки домашних заданий по C++, выполняемых первым курсом родного университета. Описывать то, что и как он делал, долго и скучно — достаточно сказать, что у этого сервера был почтовый ящик, на который ему приходили команды. Обработанную почту он удалял сразу; сообщения неизвестной природы он тоже должен был убивать. С этого же ящика сервер рассылал результаты тестирования студентам и сообщения об ошибках мне.

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

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

Самую первую ошибку я сделал тогда, когда не предусмотрел специального сообщения, которое должно было останавливать сервер. Что ж, оставался единственный способ — сменить пароль на почтовом ящике. Где-то через час до меня дошло, где может быть ошибка, а ещё минут через пятнадцать я исправил злополучный глюк. Что ж, подумал я, на этот раз обошлось, и сервер можно включать обратно. Меняю пароль на старый — и, разумеется, совершаю вторую ошибку.

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

Что такое десять одинаковых сообщений в секунду? Конечно же, спам, даже если все письма идут на один и тот же адрес. По этой причине почтовый ящик сервера был довольно быстро заблокирован. Ошибку в коде сервера я исправил, а в адрес поддержки почтового сервиса написал письмо, в котором изложил причины столь неприличного поведения и пообещал исправиться. Ящик разблокировали быстро, и процесс тестирования продолжился.

Во время майских праздников я заметил, что хотя студенты и слали запросы на тестирование, сервер ничего не делал. Пришлось пообещать разобраться после праздников. Каково же было моё удивление, когда во вторник я обнаружил, что сервер «забанен» админами университета! Выяснилось, что третью ошибку я совершил совсем давно: увлечённый созданием тестов для домашних заданий, я забыл проверить функциональность удаления сообщений неизвестной природы. Результатом было то, что сервер со скоростью 500 килобайт в секунду скачивал с почтового ящика одно и то же письмо и больше ничем не занимался. Чтобы не иметь проблем с администрацией почтового сервиса, админы университета закрыли доступ «проблемному» пользователю. По иронии судьбы письмо, спровоцировавшее это поведение, было ответом службы поддержки почтового сервиса на мои разъяснения по поводу предыдущего происшествия.

Программисты, тестируйте свои программы и протоколы тщательно, не забывайте о mock-объектах и всегда оставляйте себе возможность «повернуть рубильник», даже находясь на другом краю света.

3157

Начало начал

У нас в конторе настоящий сервер был спрятан в корпус от старого здоровенного ксерокса, в своё время сгоревшего из за того, что в него залезла мышь (живая). Девайс стоит в приёмной с табличкой «Наш первый копир», а для достоверности рядом стоит «Наш первый комп» — полуживой 386-й.

3120

Наглядное пособие для отвода глаз

У нас на работе стоит два сервера: обычный и конфиденциальный. Так вот, в отличие от многих «коллег», наш стелс-сервер находится не в потайной каморке, а прямо у меня в серверной.

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

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

3076

Виртуализация по-потёмкински

Работал раньше сисадмином в одной из госконтор — там была неслабая текучка, как ни странно, среди руководителей. Как-то раз очередной директор поставил нас с коллегой в тупик своим чётким приказом:

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

На все увещевания о том, что это нереально, и у нас никак не получиться запихать абсолютно разные программы в сервак с основной базой, руководитель предсказуемо отвечал: «Всех уволю!» Дескать, со своими обязанностями не справляетесь.

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

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

— Вы что, думаете, я не знаю, что такое сервер или локалка?! Ведь можете, когда захотите, а то — «невозможно», «невозможно»...

3052

Гипертормозотрон

На лабораторных работах по программированию мы используем Visual Studio 2008 Pro, которая крутится на сервере Windows 2008 с Hyper-V. Каждый входит через удалённый рабочий стол под своим логином и делает, что ему нужно. Несмотря на то, что ось 64-битная, а сервер вертится на четырёх ядрах с четырьмя гигами ОЗУ, Студия безбожно тормозит, о чём не раз было сообщено преподавателям, которые всё это дело поставили и настроили. Плюс ещё студентов в правах, естественно, урезали, так что к тормозам системы порой прибавляются периодические ошибки типа «Невозможно изменить файл bla_bla_bla.xaml.cs. Недостаточно прав для выполнения операции».

— Василий Васильевич, у нас сервер снова глючит и тупит! Это ж невозможно работать! Пять минут IDE перерисовывать! У нас... А, нет, всё в порядке, уже не тормозит. Он упал — всё нормально!

Кто бы со стороны послушал, вероятно, удивился бы логике. Но мы-то уже привыкли, что сервер сам перезагружается в случае чего. И правда, не прошло и пяти минут, а сервер уже снова работает. Сказать, что быстрее — сильно приврать. Так и работаем: минута на загрузку Студии (специально считал), 30 секунд на загрузку проекта, 30 секунд при старте сборки и 30 секунд при остановке отладки.

2854

Грешок за душой

Контора а-ля «спасатели ПК». Занимаемся всем, от продажи и настройки серверов до эникея в подвальчиках очень чёрной бухгалтерии. Приходит солидный дядя, говорит, что по поводу сервера. После получаса разговоров клиент раскрывает все карты:

— Да купили мы уже сервер. И настроили всё. Я пришел спросить, у вас нет нормальной сборки Lineage II?

Правильно, а на кой чёрт ещё нужны айтишники?

2809

Буковка к буковке

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

Купили железо, комп собрали, и он даже завёлся. Первое впечатление — «Трактор!» Гудел агрегат будь здоров, такой на ночь включённым не оставишь. Надо прятать в шкаф, хотя не сильно-то и поможет. И вообще на вентиляторе было написано, что он 22 дБ всего — непорядок. Есть мнение, что кое-кто хреново приделал кулер к процессору, или просто не настроил управление. Лезем в биос — ещё один облом. Чтобы проникнуть в великое царство синего экрана (другого), надо нажать кнопку Del. Проблема в том, что ни кнопки, ни, собственно, клавиатуры у меня нет. Та, что есть, подключается только к родной «соньке», и никуда больше.

Американец лёг бы спать и утром купил бы клавиатуру. Мы же хитрее. Берём заранее заготовленный диск с Убунтой, втыкаем в комп и грузимся прямо с лайв-сиди. Мышкой жмём «Install». Ось радует чудесным запросом: введите, говорит, ваше имя и всё остальное. Ага, без клавы-то... А экранная без простой не заводится. Но и тут наша не пропала! Открываем Гугл, копипастим туда первую попавшуюся надпись на экране, жмём «Search». Накопипастиваем себе имя, логин и пароль — система радостно продолжает установку. Как поставится, можно будет поднять удалённый доступ и рулить уже с нормального компа — там и градусы процессора посмотрим, и всё остальное.

2785

Пушной толстячок

Админю удаленно конторку: сервак, три филиала по городу внутри провайдера по VPN, стопка сервисов. Ввиду расширения штата закупили новых компов, забили новых юзверей. Работа кипит, сервер начал кряхтеть и не выдерживать: потери пакетов, обрыв инета и прочие мелкие, но досадные проблемки, решаемые только сменой железа или переустановкой ОС (стоял тяжеленный Win2008, настроенный за ночь с пивом). У начальника дилемма эта, естественно, решилась в пользу переустановки — лишнюю тыщу грин пожалел. Пришёл, сохранил, снес, установил Дебиан, вернул все данные, проверил (как часы), ушёл.

Стоит отметить, что город у нас небольшой, провы наглеют, инет часто летит в даун безо всяких предупреждений. Чтобы не бегать по поводу и без повода, на Win2008 стоял ряд огромных ярлыков прямо на рабочем столе, обозванных в стиле «Нажмите, если не работает» и «Если не заработало, нажмите сюда», которые запускала секретарша с цветом волос, соответствующим её навыкам в работе с компьютером: Ворд, Эксель, ВКонтакте.

На следующий после настройки день звонок от чуда: «Новый Виндоус имеет недружелюбный интерфейс». Шок, отходняк. Думаю, что же я забыл — может, GUI не поднял или скрипты не выложил?

В итоге после двадцати минут попугайского «Что не так? — Он недружелюбный» выяснилось, что под утро с туго соображающей головой я обозвал вспомогательные скрипты чуть проще, чем обычно, а именно: «Если фигня», «Если совсем фигня» и «На случай полного песца».

2767

Ребут с переворотом

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

— Что случилось, солнышко? Всё сервера перегружаешь?

Открывает вроде бы вполне осмысленные глаза:

— Да, сервера, да…
— Успокойся, милый, ты уже всё перезагрузил, с работы тебе звонили, я спросила — всё в порядке, спи спокойно. Давай-ка подушку переверну, чтобы кошмар прогнать!

Муж вцепляется в подушку мёртвой хваткой:

— Нет! С этой стороны я уже все перезагрузил, а с той — вдруг ещё нет?!

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