[Перевод] Тележка, витая пара, три свитча: как я перевозил сервер с нулевым даунтаймом
Самое тупое, что я делал за всю свою жизнь.
Один из моих клиентов купил новое офисное помещение в том же бизнес-комплексе и захотел, чтобы его сервер виртуального хостинга (7 виртуальных машин Windows) переместили в новую «серверную». Сначала я подумал: «Отлично! Быстро управлюсь. Просто отключу всё, сниму, пронумерую, упакую накопители, перетащу, а затем соберу, как было. Займёт максимум пару часов».
(Вчера)
Не-а… Я начал излагать свой план владельцу, и он прервал меня на первом же шаге:
Владелец: Постойте, нельзя ничего отключать. Наши клиенты заходят на сервер весь день.Я: Вы не сообщили им о плановом техобслуживании, как мы договаривались в пятницу?
В: Нет, у нас не может быть никакого даунтайма.
Я: Придётся потерпеть даунтайм.
В: Если он будет, я вам не заплачу.
Я: Ладно, есть другой способ, но потребуется примерно 5 минут даунтайма. Мы можем поднять новый виртуальный хост в новом месте и провести миграцию через временный VPN.
В: Ни за что! Никакого даунтайма!
Я: Ладно, до свидания.
Несколько часов спустя мне позвонил друг и сказал: «У меня клиент, которому нужно перевезти сервер. Он сказал, что его ИТ занимаешься ты, но на этот раз отказался?»
Я рассказал ему историю и мы договорились о плате, который позволит перевезти сервер и хорошо заработать нам обоим.
(Сегодня)
Мы встретились с другом в офисе и приступили к работе. От шкафа до новой «серверной» примерно 215 метров, поэтому мы взяли 3 бухты кабеля cat6 и 3 коммутатора. Мы подключили коммутаторы в своих грузовиках на парковке и соединили их кабелем cat6.
После необходимых обновлений DNS для внешних сервисов и успешной настройки нового фаервола настроили две сетевые платы на сервере на случай аварийного переключения и подключили cat6 с парковки. Отключив cat6 сервера и немного потестировав соединение, мы убедились, что даунтайма нет.
Затем мы отключили один из двух блоков питания и подключили его к монтируемым в стойку UPS, которые находились на тележке. Снова никакого даунтайма.
Затем мы отключили ещё один блок питания и очень аккуратно поставили работающий сервер на тележку. Подключили второй блок питания во второй UPS, тоже стоявший на тележке.
Дальше началось самое интересное. Потребовалось чуть больше двух часов на аккуратную перевозку сервера в новое офисное пространство. По дороге мы меняли настройки аварийного переключения сетевых карт на каждом коммутаторе.
В новом офисе мы успешно снова всё собрали. Протестировали и убедились, что даунтайм нулевой.
Друг выставил клиенту счёт за 4,5 часа работы, 2 часа консультирования и 4,5 часа помощи консультанта (мою).
Вопросы и ответы
В: Вы ведь откажетесь от этого клиента?
О: Это уж точно! Как только мне заплатят, я расторгну договор. Или, может быть, когда мне заплатят за замену HDD на новые 2-терабайтные Seagate по 400 долларов…
В: Почему вы не использовали vMotion или Live Migrations?
О: Это был сервер Hyper-V с 2012r2. И я, и мой друг имели дело с Hyper-V начиная с 2003 года, и множество раз предпринимали попытки Live Migrations. Впервые у меня получилось реализовать Live Migration без даунтайма в 2019 году. Так как мы не могли в здравом уме гарантировать такой абсурдный аптайм, то отказались от этой идеи. Однако я всё-таки попробую теперь Live Migrations в своей домашней лаборатории.
В: Почему бы не проложить через всю парковку очень длинный оптоволоконный кабель?
О: Самое длинное оптоволокно, которое у нас было, имело длину всего около 45 метров. Мы работали с тем, что есть.
В: Как насчёт AirFiber или внешних точек доступа?
О: Ни того, ни другого у нас не было.
В: Какой счёт вы выставили?
О: Общая сумма составила чуть меньше 17 тысяч долларов. Мы взяли 5 тысяч авансом и поставили свой утроенный почасовой ценник.
В: RAID состоял из SSD?
О: Нет… Пока жду завершения сканирования дисков, чтобы оценить возможный ущерб.
В: Были ли какие-нибудь сбои системы?
О: Пока нет.
В: Это была какая-то халтура? Если да, то зачем браться за такой головняк?
О: Да. Однако мне осталось найти всего 3–4 постоянных клиента, чтобы сделать свою повседневную работу подработкой. Поэтому, хотя я изначально отказался от этой работы, позже решил помочь другу, потому что оба пытаемся перейти на такой режим.
В: Кто-нибудь получал доступ к серверу во время его перемещения?
О: Да, судя по логам веб-сервера, доступ получало примерно 2200 уникальных IP-адресов примерно с 30000 запросов. Три сотрудника, работавшие в то время (несмотря на то, что мы рекомендовали этого не делать), сказали, что у каждого было открыто с файлового сервера от 5 до 8 файлов.
В: Что если бы всё пошло наперекосяк?
О: Оставили бы перевёрнутую тележку на парковке и пошли домой… А если серьёзно, то мы проверили, что резервные копии сделаны и готовы к замене за считанные минуты. Если бы это произошло, мы бы справились. Во время переноса сервера мы потратили много времени на обдумывание.
В: Почему бы не взять временный сервер и не выполнить миграцию между двумя машинами?
О: По прошлому опыту нет гарантий отсутствия даунтайма.
В: Почему сервер нужно было перевозить сейчас?
О: Истекал срок аренды в другом здании и «из-за независящих от него обстоятельств» клиенту нужно было переезжать вчера.