Как стать автором
Обновить

Серверная история

Время на прочтение6 мин
Количество просмотров1.8K
Эта история произошла со мной в течение предыдущей недели — с 26-го по 31 января 2009. Прожив этот чудесно крохотный период своей жизни, я осознал необходимость простых вещей, поверил в существование «случая» и все более разочаровался в людях. Тегами этой недели были RAID, Инфобокс и бекап. Хотя началось-то все гораздо раньше…

Часть первая


В январе 2008 года я арендовал сервачок в питерской компании Инфобокс. Средненький по характеристикам, относительно дешевый, он, как нельзя лучше, удовлетворял моим текущим запросам. В услугу аренды входила первоначальная установка операционной системы, коей конечно стала freebsd и желаемое разбиение на разделы. Так же любезные работники техподдержки объединили пару 120 гиговых винтов в программный RAID 1 (зеркало). Заботиться о сервере я попросил своего товарища, работающего системным администратором сразу во множестве мест. Он установил веб-сервер, настроил все службы, в том числе полный бекап данных в архивы дважды в сутки. На своем домашнем компьютере я поднял скрипт, который эти бекапы исправно забирал и складировал в папочку. Папочку эту я периодически подчищал.

Читателю стоит согласиться, что в целом вышло все довольно неплохо: RAID 1 + архивы на сервере + архивы на моем домашнем компьютере, который включен круглосуточно.

Сразу на новоиспеченный сервер я перенес с хостинга сайт о CakePHP, а позже появились и прочие сайты, известные хабрааудитории, такие как MyNotifier, CodeIgniter, свою домашнюю страничку, а так же множество других проектов, которые отношение к моему повествованию имеют весьма отдаленное.

Часть вторая


Так и жил я себе припеваючи, пока в январе уже этого года не решил обновить свою домашнюю устаревшую ubuntu. С номера 8.04 до номера 8.10, а заодно и жизнь десктопную сначала начать — отформатировать винты и поставить операционку «на чистую». Дело это благородное произошло 23 января. Большого смысла сохранять накопленные бекапы не было: «переустановлю систему — настрою скрипт заново и соберу архивы», думал я. Но жизнь быстра и непредсказуема и в следующие пару дней у меня не получилось уделить много времени настройке своей новенькой 8.10.

Вернувшись вечером 26-го числа домой, я обнаружил забитый сообщениями контакт лист jabber'а и ICQ. Все как один писали, что что-то да на моих сайтах не работает. Убедиться в этом было не сложно — достаточно открыть любой из проектов и подождать пол-минуты загрузки страницы с ошибкой базы данных. Решив, что дело просто, я ребутнул проказницу mysql, но эффекта желаемого это не принесло. Мало того, сервер отвечал по ssh со скоростью черепахи или чуть медленнее того. Ситуация усугубилась тем, что мой товарищ-администратор в это время мирно ехал в поезде «Санкт-Петербург — Москва» и проблемы мои мирские были неподвластны его желанию их решить.

С просьбой о перезагрузке сервера я обратился в техническую поддержку компании Инфобокс. Так началась моя переписка с ними, состоящая на сей момент из 53 писем.

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

Тем временем в Москву прибыл мой администратор и спустя некоторое время скинул мне лог безуспешных попыток записи на новый винчестер. Выглядит это так.

Jan 27 10:44:44 oowl kernel: ad6: TIMEOUT — WRITE_DMA retrying (1 retry left) LBA=74274048
Jan 27 10:46:14 oowl kernel: ad6: TIMEOUT — WRITE_DMA retrying (1 retry left) LBA=74344960
Jan 27 10:47:05 oowl kernel: ad6: TIMEOUT — WRITE_DMA retrying (1 retry left) LBA=50792319

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

Когда сервер стал отвечать на запросы с приемлемой скоростью, и я уже было подумал что это конец неприятной истории, но, как оказалось, приключения только начинаются, ведь я попал в прошлое! Последние сообщения на форумах датировались 24 мая 2008 года. Вакансии в MyNotifier подтверждали мою телепортацию. Чтобы убедиться в том, что я не сошел с ума, мне пришлось посмотреть на календарь. На нем была зима, а на сервере уже весна, правда, прошлого года.

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


Часть третья


Вот так я остался у разбитого корыта: на первом винчестере цветет май, второй «вышел из строя на физическом уровне восстановление данных невозможно», а на локальном компьютере еще не был настроен скрипт для собирания бекапов (помните мой переход на 8.10?). Таким образом я потерял информацию, накопленную почти за год, в том числе полностью исходники некоторых проектов, дублей которых не было.

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

Надо было что-то делать и как можно скорее. Обзвонив серьезные компании, которые занимаются восстановлением данных, я договорился о визите в дата-центр и о том чтобы мне отдали умерший винт под расписку. Попасть в ДЦ можно лишь с 10 утра. В 9:30 я уже обивал пороги. Схватив теплящийся труп винчестера, примчался в реанимацию для таких как он.

Часть четвертая


В 10:15 я уже описывал мастеру произошедшую ситуацию. «Посмотрим», — буркнул он и углубился в темное помещение за стойкой, оставив меня заполнять анкету с вопросами об объемах разделов, расположении информации и о том что нужно восстановить в первую очередь. Не провозился я и пяти минут, как выбежал мастер со словами: «Вы издеваетесь, да?! Вам скучно что ли?! Зачем вы принесли мне целый винчестер?!».

Тут возникла неловкая пауза. Техник смотрел на меня с упреком, а я смотрел на него, не доверяя его профессиональным способностям, уже мысленно похоронил винт. «Не может быть, проверьте еще раз», — не верил я своим ушам. Мастер подключил винт к виндовой машине, стоявшей за клиентской стойкой и через утилиту UFS Explorer показал мне содержимое винта, мои документы, базы данных, картинки и все что я только не просил, в надежде избавиться от ненормального клиента.

С винчестером я приехал домой и, о ужас, осознал что мне просто некуда его подключить — у меня нет стационарных ПК. Обзвонив всех знакомых, я убедился в том, что если люди не были владельцами лептопов, то винчестер с SATA разъемом у них было вставить некуда. Разумеется, для моего администратора это не было проблемой, но он был в Москве.

Тем временем продолжалась гневная переписка с техподдержкой инфобокса. В качестве оправдания они выбрали для себя фразу:
Мы несмогли работать с данным диском, возможно дело именно в кофигурации сервера.
А так же написали:
… вы можете привезти жесткии назад к нам мы попробуем скопировать информацию, или подключим его к вашему серверу.

Вариантов у меня не было и следующим же утром я доставил винчестер обратно в дата-центр. Тем временем, количество писем с просьбами разъяснить ситуацию перевалило за 80 и новый жесткий, поставленный в арендуемый сервер, начал потихоньку отказывать.

Часть пятая


2009-01-29 11:03:32 <...> Хорошо, в течении дня скапируем данные.
2009-01-29 19:18:28 Нет копирование ещё не производилось, были проблемы со «старым жестким» монтировалась только корневая файловая система обьемом 500Мб, сейчас удалось примантировать /var /usr /home разделы но всё равно появляються ошибки. <...>

и про обновленный сервер, который стал постоянно висеть:
Сервер висел, на консоль сигнало не выводилось, перезагружен сейчас пингуеться <...>


На следующий день, ближе к вечеру, появился на связи мой администратор, который пояснил, где лежали необходимые данные. Эту информацию я тут же отправил техподдержке.
2009-01-30 17:36:59 Спасибо за информацию, будем держать вас в курсе дела.

2009-01-30 21:53:53 Я: В каком состоянии сейчас процесс?
2009-01-30 21:55:57 Инженер: Пытаемся скопировать данные.


Часть шестая


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

Каким же было мое удивление, когда он сказал что просто скопировал все данные. Ошибки вызвало только чтение одной innodb'шной базы, которая сильно порушилась при сбое. Остальные же файлы были извлечены без каких-либо проблем. Встает резонный вопрос: чем же занимался саппорт двое суток, отписывая мне репорты о процессе восстановления. Но оставим его на совести инженеров, которые, кстати говоря, в «попытках» считать данные с винчестера, записывали их на него же!

Заключение


История моя со счастливым концом. Все данные возвращены, проекты работают. От аренды сервера я отказался, поставив свой собственный на colocation. Деньги за остаток срока аренды мне вернули в три этапа: сначала намертво отказали, затем зачислили с ошибкой в 800 рублей в свою сторону, затем, после очередного письма, исправили.

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

Спасибо за внимание.
Теги:
Хабы:
Всего голосов 119: ↑115 и ↓4+111
Комментарии96

Публикации

Истории

Работа

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань