Переезд живого сервера без поломок
Большинство миграций проваливается на этапе переключения, а не копирования. Копирование байтов — решённая задача. Далее о том, как делается остальное, что ничего не стоит и где мы останавливаемся.
Бесплатное окно миграции
Одна миграция на инстанс в первые 14 дней. После этого — оплачиваемое время инженера, оценка выставляется до начала работ.
Каждый новый аккаунт получает помощь с миграцией бесплатно в течение 14 дней с первого оплаченного счёта. Это покрывает столько инстансов, сколько вы заказали, до 2 часов времени инженера на каждый, чего на практике более чем достаточно для почти всех.
Окно существует потому, что альтернатива — это вы, теряющий на этом выходные и решающий, что смена хостинга того не стоит. Сделать это правильно стоит нам меньше, чем потерять аккаунт на втором месяце.
Для больших парков нужен план, а не секундомер. Расскажите нам, сколько инстансов, что на них работает и где они сейчас, — и вы получите письменную последовательность действий с точкой отката на каждом шаге.
7-дневный возврат действует параллельно. Мигрируйте в первый день, на шестой решите, что задержка не то, что нужно, — и монета вернётся в том активе, которым вы платили.
Что мы сделаем, а что нет
Доступ работает в одну сторону. Вы добавляете на исходную машину ключ, который мы генерируем для этой задачи, мы его используем, а после завершения переключения вы его удаляете. Ключ создаётся для каждой миграции отдельно и никогда не покидает рабочую станцию оператора. Если текущий хостинг-провайдер не позволяет это сделать, то применяется поблочное копирование, отправляемое с вашей стороны в ожидающий целевой сервер.
Нам не нужен пароль от вашей панели управления на старом провайдере, и мы откажемся, если вы его предложите. Никто здесь не хочет иметь возможность действовать от вашего имени где-либо ещё, а инженер, хранящий учётные данные клиента, — это ответственность без каких-либо преимуществ.
Мы сделаем
Скопируем файловые системы или целые блочные устройства, подготовим целевой инстанс, настроим принимающее ядро и диски, выполним дельта-синхронизации, проведём переключение вместе с вами и останемся в тикете, пока DNS не устаканится.
Мы не будем
Отлаживать ваше приложение, переписывать вашу конфигурацию под более новую ОС, переносить лицензию, привязанную к чужому оборудованию, или принимать пароль. Доступ осуществляется через временный ключ, который вы отзываете после.
Мы предпочтём не
Переносить базу данных, копируя её файлы на лету. Это работает, пока не перестаёт, и сбой проявляется неделями спустя как тихое повреждение. Используйте реплику и повышение.
На уровне файлов или на уровне блоков
Два способа переместить данные. Правильный выбор зависит в основном от того, хотите ли вы получить ту же операционную систему на другой стороне.
| Критерий | Уровень файлов, rsync | Уровень блоков, dd через SSH |
|---|---|---|
| Что переносится | Файлы, права, расширенные атрибуты | Всё устройство, байт в байт |
| Простой | Минуты, одна финальная синхронизация изменений | Часы или согласованное окно |
| Что вы загружаете | Выбранный вами актуальный образ | Точно то, что было, включая мусор |
| Смена дистрибутива | Возможно, в этом и смысл | Невозможно |
| Риск загрузчика | Нет, целевая система уже загружается | Реальный, и консоль — единственный способ его исправить |
| Большие разреженные диски | Обрабатываются хорошо | Копируется пустое место, если не предусмотреть это |
| Когда выбирать | Почти всегда | Легаси-машины, которые никто не рискует пересобирать |
Существует и третий вариант, который часто оказывается самым быстрым: не мигрировать вовсе. Поднимите сервис заново на основе вашей системы управления конфигурацией, восстановите в него дамп базы данных и удалите старую машину. Если ваша инфраструктура воспроизводима, это двухчасовая работа без этапа копирования.
Последовательность действий
Семь шагов, в таком порядке. Пропуск пятого — то, как люди оказываются обслуживающими трафик с двух машин одновременно и замечают это только в понедельник.
- 01
Закажите целевой сервер и дайте ему стабилизироваться
Того же размера или больше, в том городе, который вам нужен. Запустите мониторинг, пока сервер пуст, в течение дня, и убедитесь, что задержка и дисковые показатели соответствуют заявленным на странице тарифа.
- 02
Сначала снизьте TTL
Уменьшите запись до 300 секунд по крайней мере за 48 часов до переключения, чтобы к моменту, когда вам понадобится её изменить, старое значение уже истекло везде. Этот шаг бесполезен, если он выполняется поздно.
- 03
Сделайте полную копию
Основная часть данных переносится, пока всё ещё работает на старой машине. Это занимает столько времени, сколько нужно, и ничего от этого не зависит.
- 04
Запустите сервисы на целевом сервере
Те же версии, та же конфигурация, но трафик ещё не поступает. Базы данных восстанавливаются здесь из дампа, а не из копии файлов.
- 05
Проверьте целевой сервер по адресу
Переопределите имя хоста локально с помощью записи в файле hosts и пользуйтесь сайтом в обычном режиме в течение часа. Войдите, что-нибудь запишите, загрузите, отправьте письмо, если он отправляет почту.
- 06
Заморозка, финальная синхронизация, переключение
Остановите запись на исходном сервере, выполните последнюю синхронизацию, проверьте контрольную сумму чего-то важного, а затем измените запись. Период заморозки обычно занимает менее пяти минут.
- 07
Сохраняйте исходный сервер в течение недели
Включён, ничего не обслуживает, а за него всё равно платят. Это самая дешёвая страховка, которую вы когда-либо купите, и то, что вы забыли скопировать, всегда всплывает на четвёртый день.
DNS и тестирование до переключения
Переключение — это изменение DNS, а изменение DNS никогда не бывает мгновенным, что бы ни говорил TTL. Некоторые резолверы округляют время, некоторые корпоративные сети кэшируют сутки, а небольшое число клиентов закрепляет адрес на всё время жизни процесса. Планируйте обслуживание с обеих машин в течение 24 часов.
Запуск обеих машин проще, чем кажется, когда приложение не хранит состояние. Если же хранит, сделайте старую машину доступной только для чтения в момент переключения, а не выключайте её, чтобы устаревший клиент получил явную ошибку, а не записал в базу, которую больше никто не прочитает.
Перед изменением DNS
Запись в hosts, указывающая на новый адрес, — единственный честный тест. Сертификаты, редиректы, абсолютные URL и жёстко прописанные адреса — всё это ломается здесь, у вас на глазах, а не перед вашими пользователями.
Сначала сертификаты
Выпустите сертификат на целевом сервере до переключения, используя DNS challenge, чтобы к моменту первого запроса уже было что-то валидное. HTTP challenge не может работать, пока трафик ещё не перемещён, а это уже слишком поздно.
Почта — исключение
Репутация не переезжает вместе с данными. Новый адрес начинает с нулевой истории, так что прогрейте его в течение двух недель, держите SPF, DKIM и DMARC валидными на обеих машинах во время перекрытия, и ожидайте, что первая неделя будет медленной.
Откат — это TTL, а не пересборка
Пока источник жив, а TTL ещё низкий, отмена переключения занимает одно изменение записи. Это и есть причина, по которой шаги второй и седьмой не являются опциональными.
Вопросы о миграции
Да, с ценой, согласованной в письменном виде до начала работ, и обычно это скромная сумма. Ничего не начинается, пока вы не согласовали цену.
Да, на уровне блоков, в лицензированный образ за €22 в месяц. Реактивация происходит на новом оборудовании и иногда требует одной перезагрузки для стабилизации.
Тогда мы не можем помочь напрямую, и вы тоже. Экспортируйте всё, что панель может вам дать, пересоберите на чистом образе и отнеситесь ко всей ситуации как к уроку о панелях, которые владеют машиной.
Обычно менее двух часов на порт 10 Гбит/с, часто значительно меньше. Ограничение почти всегда — скорость загрузки у старого провайдера, а не наша скорость скачивания.
Да, и это проще, потому что оба конца наши. Снэпшот, восстановление в новом городе, тест, переключение. Перенос инстанса между нашими локациями бесплатен.
Вы измените запись обратно, потому что источник всё ещё работает, а TTL всё ещё 300 секунд. Это план, а не аварийный сценарий, и именно поэтому существует последний шаг.
Расскажите, что вы переносите
Количество инстансов, скорость порта у старого провайдера, общий объём данных и то, есть ли среди них база данных. Письменный план вернётся в тот же рабочий день, и если честный ответ — пересобрать, а не копировать, в плане будет именно это.