Изменить веб-сервер с минимальным временем простоя

У меня есть веб-сервер в производстве. Его IP-адрес - 111.111.111.111, и он называется ServerA. В дополнение к хранению файлов сценариев сервер также хранит загруженные пользователем файлы и имеет базу данных. Приложение использует поддомены с подстановочными знаками, где foo.example.com, bar.example.com и т. Д. Переходят на общий виртуальный хост, и код сервера отвечает соответствующим образом, учитывая имя субдомена. Мой регистратор доменов указывает на IP 111.111.111.111, а также настроен на поддержку подстановочных знаков.

Мне нужно будет изменить веб-серверы на новый сервер с IP 222.222.222.222, который называется ServerB.

Какие шаги необходимо предпринять для миграции серверов с минимальным временем простоя?

Ниже мои первые мысли. Пожалуйста, прокомментируйте, если неправильно или я пропустил шаги.

  1. Разместите уведомление на сервере A о том, что система будет недоступна для обслуживания.
  2. Настройте Apache на ServerB аналогично настройке на ServerA, а также добавьте еще один виртуальный хост на ServerB с ServerName 222.222.222.222 (подробнее об этом позже).
  3. Настройте Apache на ServerA так, чтобы вместо доступа к сценарию приложения отображалась страница для обслуживания.
  4. Скопируйте файлы сценариев, загруженные пользовательские файлы и базу данных с сервера A на сервер B.
  5. Измените регистратор домена, чтобы он указывал на IP 222.222.222.222.
  6. Настройте Apache на сервере A, чтобы перенаправить все запросы на IP 222.222.222.222. Как это будет работать с требованиями поддоменов?
  7. Подождите, пока изменения доменного имени распространятся. Буду ли я в это время вниз?
  8. После полной проверки ServerB отмените тарифный план для ServerA.

1 ответ

Решение

Как насчет миграции без простоев?

Это мой общий план для таких миграций:

  1. Установите специальную VPN между старым сервером и новым сервером (например, с OpenVPN).
  2. Скопируйте все приложение со старого сервера на новый.
  3. Настройте репликацию базы данных между старым сервером и новым сервером со старым сервером в качестве главного и новым сервером в качестве подчиненного через VPN.
  4. Подождите, пока все базы данных будут реплицированы. Это может занять некоторое время.
  5. После завершения репликации подключитесь напрямую к новому серверу (используйте трюк /etc/hosts) и убедитесь, что приложение работает, веб-сервер настроен правильно и т. Д.
  6. Разорвите отношения "главный / подчиненный" и настройте приложение на старом сервере для связи с базой данных на новом сервере через VPN.
  7. Измените записи DNS. В ожидании истечения срока действия TTL некоторые пользователи подключатся к старому серверу, а некоторые - к новому, но оба будут использовать базу данных на новом сервере.
  8. Когда срок действия TTL истекает, а старый сервер больше не получает трафик, снимите его. Снеси временный VPN.
Другие вопросы по тегам