Изменить веб-сервер с минимальным временем простоя
У меня есть веб-сервер в производстве. Его IP-адрес - 111.111.111.111, и он называется ServerA. В дополнение к хранению файлов сценариев сервер также хранит загруженные пользователем файлы и имеет базу данных. Приложение использует поддомены с подстановочными знаками, где foo.example.com, bar.example.com и т. Д. Переходят на общий виртуальный хост, и код сервера отвечает соответствующим образом, учитывая имя субдомена. Мой регистратор доменов указывает на IP 111.111.111.111, а также настроен на поддержку подстановочных знаков.
Мне нужно будет изменить веб-серверы на новый сервер с IP 222.222.222.222, который называется ServerB.
Какие шаги необходимо предпринять для миграции серверов с минимальным временем простоя?
Ниже мои первые мысли. Пожалуйста, прокомментируйте, если неправильно или я пропустил шаги.
- Разместите уведомление на сервере A о том, что система будет недоступна для обслуживания.
- Настройте Apache на ServerB аналогично настройке на ServerA, а также добавьте еще один виртуальный хост на ServerB с ServerName 222.222.222.222 (подробнее об этом позже).
- Настройте Apache на ServerA так, чтобы вместо доступа к сценарию приложения отображалась страница для обслуживания.
- Скопируйте файлы сценариев, загруженные пользовательские файлы и базу данных с сервера A на сервер B.
- Измените регистратор домена, чтобы он указывал на IP 222.222.222.222.
- Настройте Apache на сервере A, чтобы перенаправить все запросы на IP 222.222.222.222. Как это будет работать с требованиями поддоменов?
- Подождите, пока изменения доменного имени распространятся. Буду ли я в это время вниз?
- После полной проверки ServerB отмените тарифный план для ServerA.
1 ответ
Как насчет миграции без простоев?
Это мой общий план для таких миграций:
- Установите специальную VPN между старым сервером и новым сервером (например, с OpenVPN).
- Скопируйте все приложение со старого сервера на новый.
- Настройте репликацию базы данных между старым сервером и новым сервером со старым сервером в качестве главного и новым сервером в качестве подчиненного через VPN.
- Подождите, пока все базы данных будут реплицированы. Это может занять некоторое время.
- После завершения репликации подключитесь напрямую к новому серверу (используйте трюк /etc/hosts) и убедитесь, что приложение работает, веб-сервер настроен правильно и т. Д.
- Разорвите отношения "главный / подчиненный" и настройте приложение на старом сервере для связи с базой данных на новом сервере через VPN.
- Измените записи DNS. В ожидании истечения срока действия TTL некоторые пользователи подключатся к старому серверу, а некоторые - к новому, но оба будут использовать базу данных на новом сервере.
- Когда срок действия TTL истекает, а старый сервер больше не получает трафик, снимите его. Снеси временный VPN.