Привет всем!
Вчера у моего клиента перестал существовать сервер. Его удалили в панели управления, по моему запросу, но не тот, который я просил.
Данных нет, восстановить нельзя.
Позавчера я взял дедик под задачу, задача отпала на следующий день. Пишу в поддержку: этот сервер удалите, остаток денег перенесите на другой номер услуги. Два номера в одном сообщении, мой под нож и клиентский, куда переносить. Делали так не раз.
В шестнадцать ноль пять приходит ответ:
Добрый день. Услугу удалили, 384 рублей вернули.
Сумма насторожила, не та. Смотрю ниже, в том же ответе: удалена услуга такая-то, номер такой-то, адрес такой-то. Это не мой дедик. Открываю панель: мой сервер целый, клиентского в списке услуг нет.
Пишу, что снесли не ту услугу. Отвечают:
Услуга восстановится в течение 15 минут. Приносим свои извинения за доставленные неудобства, не верно вас поняли по поводу переноса баланса.
Возвращают. И пока возвращали, на дисках затёрлась разметка разделов.
Четыре часа машина числилась активной и молчала по сети. Включена, загрузка не завершается, восстановление не проходит. К девяти вечера итог: RAID1 распался, служебные метки перезаписаны, разметка утрачена на обоих дисках.
Массив, который при смерти одного диска должен подниматься на втором, не поднялся. Хватило деактивации и возврата услуги.
Почему «восстановили за пятнадцать минут»
Биллинг и управление железом в дата-центре это две системы. Биллинг это BILLmanager, где я плачу и вижу услуги. Железом управляет DCIManager: ставит систему, включает питание, отдаёт консоль, затирает диски.
Удаление услуги в биллинге не помечает строчку, а уходит командой в DCIManager. Тот освобождает машину под следующего клиента, а освободить значит затереть диски.
Поэтому возврат услуги вернул строчку и железо, а не данные. Сервер формально активен и молчит, потому что систему теперь нужно ставить с нуля.
Что осталось от данных
Это не «диск осыпался» и не «данные побились». Нет карты, на которой написано, где что лежало. Дом стоит, а номера квартир стёрли.
До самого вечера я просил загрузить сервер, потом режим восстановления, потом последнюю попытку поиска разделов. Искали программой, не нашли. Ответ:
Нет, так как удаление очистило именно названия разделов.
Ночью клиент написал: зовите любых специалистов за любые деньги, очень нужна папка home. Я передал. Специалистов нет, на площадке сделали всё возможное, и это ноль.
Сегодня утром услугу закрыли, данные признали потерянными.
Бекап не мой
Клиентские данные я не бэкаплю. Не входит в услугу, не продаю молча и не обещаю в тарифе. Копия лежит на стороне того, кому эти данные нужны: проекты, переписка, папка home со старого ноутбука. Значит и сохранность этой папки его работа.
Клиент работает со мной пять лет, инструкции у него есть. Бекап был, но очень старый, а выложить его было не с чего. Это его зона ответственности, и задним числом я её не возьму.
Железо умирает всегда, вопрос только когда и по чьей вине. Копия делается заранее, пока всё хорошо. Кто держит данные в одном месте, держит их нигде. Бекап не покупают после аварии, после аварии покупают новый сервер.
Как я храню своё
За семь лет я насмотрелся на сгоревшие серверы, и меня ломали много раз: взломы, брутфорс, чужие руки в консоли, битые обновления.
В двадцать втором году один недоброжелатель затёр мне данные, брать было неоткуда: вход по паролю, бекапа нет. Восстановился, но это были раскопки, а не работа, по кускам и с потерями. В двадцать третьем побилась база, и снова без копий.
Два случая в разные годы научили одному: копии не по настроению, а по правилу. Пока данных было немного, держал их локально, этого хватало.
Сейчас у меня два сервера, только бекапов на них около терабайта, плюс пять или семь VDS с сервисами. Терять это нельзя никак. Что бы я делал без копий? Ничего.
Схема простая: копия на сервере, копия в другом дата-центре, третья тоже в дата-центре, но в третьем. Георазнесено, площадки между собой не связаны. Расходы лишние и ежемесячные, зато когда сервер сгорит или случится ровно это же, я восстановлюсь и пойду дальше.
Инструкции по бекапам я писал в блоге два года подряд, и скрипт давал: как безопасно переселить сервер, если операционная система одинаковая. Но прочитать инструкцию и выполнить ее это немного разное.
И рейд не бекап. Рейд это выживаемость данных, страховка от смерти диска. От удаления услуги, от пожара и от человека с доступом он не спасает. На этой неделе RAID1 не помог, оба диска стёрты одной командой.
Приведу пример. Пожар в OVH в марте двадцать первого года: площадка сгорела целиком, тридцать тысяч серверов. У кого копии были в стороне, купили новые машины и быстро поднялись. У кого бекап стоял в том же здании, сгорели оба.
Разницу между «сервер сгорел» и «я потерял всё» делает не железо и не провайдер, а копия в другом месте. Бекапы нужны до аварии. Если после этого текста у кого-то появится вторая копия в другом дата-центре, пост написан не зря.
Что мне за это предложили
Десять дней к активным серверам, скидку пятнадцать процентов на новый и 384 рубля возврата.
В качестве извинений за данную ситуацию добавили 10 дней к каждому активному выделенному серверу.
Дополнительно можем предложить скидку 15% на любой новый сервер при заказе на 1 месяц.
В панели это строчка с номером, а за строчкой были годы работы.
Клиенту я предложил выбор: возврат денег или замена сервера. Возврат ещё не сделал, он пока не решил. Это в любом случае не возврат данных.
Уроков для себя я тут не вынес
Я написал ровно то, что хотел: этот удалить, деньги перенести на тот. Два номера, обычная операция. На той стороне прочитали как «удалить и вернуть остаток» и снесли клиентский. Ошибка их.
Вывод не про меня, а про тех, кто держит чужие данные на чужом железе и думает, что кто-то обязан их сохранить. Не обязан. И про дата-центры: площадка, которая по неверно понятому слову сносит не ту услугу, партнёром быть перестаёт.
Не прощаемся!
