Опять сыплется проблема за проблемой. Когда же это кончится! Впрочем, понятно, когда: когда закончится год и начнется новый...
В воскресенье упало два сервера на совершенно разных проектах. Первый -- один из самых крупных проектов на IntB 2.x. С ним все получилось довольно просто: его владелец связался с хостингом, там предоставили доступ к KVM, через который мы пытались что-то сделать. В принципе, сама проблема была несерьезной, но из-за того, что при подключении у меня запустилось несколько копий KVM клиента, плюс еще у владельца была одна, удаленный доступ работал жутко медленно и глючно. В результате ушло довольно много сил и нервов на то, чтобы разобраться, что к чему и начать что-то делать, но где-то за час сервер починили.
Затем на связь вышел Dzarlax, сообщивший, что на работе попадали почти все сервера, в том числе и Web-сервер, на котором расположены сайты. Произошло это при замене UPS на новый. Не знаю, что именно там умудрились сделать, но произошел скачок напряжения, причем не просто скачок, а в результате у Web-сервера сгорел один блок питания, и у многих начались весьма серьезные логические ошибки в файловой системе.
В первый момент казалось, что в общем-то ситуация полностью аналогичная проекту на IntB: сейчас выполним fsck, перезагрузимся, и все заработает. Но в действительности все оказалось гораздо сложнее. fsck начала писать о невосстановимых ошибках, а потом вдруг система вообще отказалась грузиться, ругаясь на файловую систему неизвестного типа. В первый момент была мысль, что повредился либо сам загрузчик, либо загрузочный раздел. Dzarlax скачал где-то образ FreeBSD под названием Frenzy, загрузился с болванки, и показал мне, что вроде бы данные на разделах живы, Frenzy видит их и монтирует. На этом я успокоился, и решил что завтра приеду и займусь сервером сам.
Приехав на место, я попытался переустановить загрузчик, но ничего не получалось. Вроде все команды выполнялись корректно, но после перезагрузки возникал grub rescue mode, и ничего не хотело загружаться. Решил переустановить не в ручную, а с помощью инсталлятора FreeBSD в custom-режиме, в результате чего на корневом разделе система оказалась замененной полностью. Но даже это не решило проблемы с загрузкой: по прежнему выдавался grub rescue mode. И тут я вспомнил, что во-первых, у FreeBSD не Grub, а свой загрузчик, и grub rescue mode не должно быть в принципе, во-вторых, из под Frenzy я видел какой-то левый диск, не входящий в RAID-массив, и может быть, загрузка идет с него. Полез в BIOS, и обнаружил там, что загрузка идет с флешки, которую вчера вставили для того, чтобы скопировать туда данные, если вдруг это потребуется, а вовсе не с RAID-массива. (В последнее время у производителей BIOS есть такая странная особенность: ставить у флешек приоритет загрузки выше, чем у жестких дисков, с чем я пару раз сталкивался на киосках, но вот от сервера я такого не ожидал совершенно.) Флешку вынули, и проблема с загрузкой решилась сама собой... Только вот в результате переустановки системы накрылись все пользователи, а так же файл /etc/fstab, в котором указано, куда какой раздел монтировать. Эх, дошло бы до меня про флешку чуть пораньше, сколько бы времени можно было сэкономить!
Пришлось перезагружаться обратно во Frenzy (который находит и монтирует разделы автоматически), переписать, что на каком разделе расположено, из под него же отредактировать fstab, и только после этого что-то заработало. К тому же одновременно с этим наши админ и железячник пытались всстанавливать другие сервера, а прямой доступ к ним через общую консоль, и мы постоянно мешали друг другу... К тому же я торопился как можно скорее перейти на восстановление в удаленном режиме (в серверной слишком холодно и шумно), из-за чего делал глупые ошибки, например, сначала забыл поставить пароль rootу, потом -- необходимые права своему пользователю.
В итоге, как обычно, провозился до окончания рабочего дня (хотя если бы сразу знать в чем причина и делать все спокойно и без лишней беготни в серверную и к рабочему компу, можно было бы справиться за час). И тут возникла другая проблема. На сервере было два раздела с базами данных: на одном хранились актуальные данные, а другой когда-то давно использовался для backupа, и на нем было много похожих баз. Но и там и там отсутствовали некоторые базы, которые были созданы недавно!
Так и не разобравшись до коцна, поехал домой, так как рабочий день уже кончился. Пока ехал, понял, что недостающие файлы, скорее всего, отправились в lost+found во время проверки файловой системы, и разобрался, как все-таки правильно монтировать разделы. Но дома ждала еще одна неприятность: обнаружилось, что пропала самая главная база данных -- база той CMS, на которой крутятся наши основные сайты. А серве с bakcupами не отзывается, и вообще мне неделю до этого сыпались письма от системы слежения о том, что он недоступен. Вспомнилось, как кто-то говорил о том, что вроде бы его куда-то перенесли или хотели перенести. В результате начинается паника, потому что последний backup, сделанный вручную, за апрель месяц (и то сохранился случайно). Попытался запустить хоть что-нибудь, но буквально через пять минут сервер ушел в перезагрузку из-за ошибок в файловой системе.
После этого я написал Dzarlaxу в Skype, чтобы тот искал, куда делись backupы с FTP, и ушел спать с мыслью о том, что завтра, наверное, опять придется ехать на работу. Но заснуть не мог всю ночь (точнее, видимо, все же заснул, но не заметил, как это случилось, так как время пролетело подозрительно быстро). А утром ситуация резко поменялась. Во-первых, Dazrlax все же нашел относительно свежий backup (за 27 ноября), во-вторых, он перезагрузил сервер, я остановил Apache и переформатировал глючные разделы прямо из дома, ехать никуда не потребовалось, и в итоге к вечеру сайты, хоть и криво, но заработали... Правда, наверное, потерялось все, что я делал по новому сайту, и придется переделывать...