Миграция виртуального сервера с помощью снапшотов

Снапшоты, или моментальные снимки – это технология резервного копирования данных, которая предоставляет полную образ файловой системы сервера на определенный момент времени. Вы можете использовать снапшоты для создания новых идентичных серверов.

Примечание: Некоторые хостинг-провайдеры позволяют создавать серверы на основе снапшотов только с помощью техподдержки и за отдельную плату.

Снапшот – это быстрая резервная копия файловой системы, созданная вручную.

Важно! Наличие снимков сервера не освобождает вас от регулярного резервного копирования важных данных.

Требования

Для работы с этим мануалом вам понадобится виртуальный сервер. Размер и конфигурация сервера значения не имеют.

1: Создание снапшота

Если ваш хостинг-провайдер поддерживает такую функцию, найдите в консоли специальный раздел для работы со снимками. С его помощью вы сможете создавать, восстанавливать и удалять снапшоты.

Вы можете указать имя снапшота (или оставить имя по умолчанию) и иногда его тип.

Как правило, имя снимка состоит из имени исходного сервера и метки времени Unix. Эта схема идентифицирует сервер и приблизительно указывает, когда был сделан снимок. Имя можно изменить сейчас или в любое время после создания снапшота. В этом мануале, следуя существующему соглашению об именах, мы оставим имя по умолчанию.

Кроме того, есть два способа создания снапшотов: чтобы обеспечить согласованность данных, можно остановить сервер на время создания снапшота; если же на сервере нет сервисов, которые постоянно обновляют данные (например, если сервер обслуживает сайт только для чтения), вы можете не останавливать сервер.

Вариант 1: Создание снапшота остановленного сервера (рекомендуется)

Вы можете остановить сервер в панели управления или через ssh (с помощью команд poweroff или shutdown). Рекомендуется делать это по ssh, так как этот метод правильно отключит все сервисы.

Важно! Остановка сервера через консоль эквивалентна жесткому сбросу, что означает, что вы можете потерять данные, хранящиеся в RAM, или вызвать повреждение базы данных. Выключение с помощью командной строки – лучший способ получить качественный снапшот.

Читайте также: SSH-подключение к серверу

Итак, чтобы остановить сервер по ssh, откройте терминал и войдите на сервер:

ssh admin@your_server_ip_or_domain

И выполните команду:

shutdown -h now

Откройте браузер и попробуйте получить в нем доступ к своему сайту. Сайт не должен работать. Остановив сервер, вы можете сделать снапшот. Многие провайдеры предоставляют встроенные возможности создания снапшотов. Для этого в панели управления есть специальное меню. Используйте его, чтобы сделать снапшот сервера.

На экране появится индикатор выполнения, который покажет ход создания снапшота, а после завершения снапшот будет отображаться в списке вместе со всеми другими предыдущими снапшотами.

Вариант 2: Создание снапшота в режиме реального времени

Примечание: Такую функцию поддерживают не все хостинг-провайдеры.

Есть альтернативный вариант – создать снапшот, не останавливая сервер. Для этого откройте панель управления сервером и воспользуйтесь специальным меню для создания снапшотов. Вы можете указать пользовательское имя снапшота или же оставить его по умолчанию.

Время создания снимка зависит от размера сервера и объема данных на нем.

Важно! Делая снимок работающего сервера, вы рискуете получить несогласованные данные. Особенно этому подвержены базы данных. если на вашем сервере работает подобный сервис, остановите его или синхронизируйте с диском, прежде чем делать снимок.

На экране появится индикатор выполнения, который покажет состояние снапшота, а после создания снапшот будет отображаться в списке вместе со всеми предыдущими снапшотами.

2: Создание нового сервера на основе снапшота

Примечание: Опционально вы можете переместить снапшот в новый регион.

Обычно на основе снапшота можно создать новый сервер в любом регионе, где доступен снапшот. Это делается через меню создания серверов или через техподдержку.

Если вы создаете снапшот самостоятельно:

  • Выберите дисковое пространство, которое больше или равно размеру снапшота. Вы можете увеличить размер сервера, но не можете уменьшить его, поскольку сокращение размера файловой системы может привести к потере данных.
  • Добавьте блочное хранилище. Если ваш хостинг-провайдер предлагает доступ к блочному хранилищу, вы можете создать новый том или смонтировать существующий.
  • Выберите регион.
  • Выберите дополнительные опции: иногда на этом этапе провайдер позволяет включить дополнительные функции, которые, как правило, не зависят от исходного сервера.
  • Добавьте SSH-ключи.

Обратите внимание: если вы использовали SSH-ключи для пользователя root на исходном сервере и не отключили root логин, сейчас вы можете добавить тот же или новый ключ. В противном случае по электронной почте вам будет отправлен пароль root. Вы не сможете войти в систему без валидного ключа, но когда вы подключитесь с правами администратора, необходимо сбросить пароль root.

3: Тестирование нового сервера

Данные и организация файловой системы на новом сервере должны быть идентичны исходному серверу. Тем не менее, сервисы на новом экземпляре рекомендуется протестировать, потому что, возможно, не все они запустились автоматически. Вы также можете попросить других участников проекта проверить сервер.

После переноса сервера рекомендуется сохранить исходный сервер и снимки, провести автоматическое и ручное тестирование и по возможности привлечь к этому других заинтересованных участников. Если что-то пойдет не так с новым сервером, эти резервные копии могут помочь выявить проблемы.

Убедившись, что новый сервер работает должным образом, вы можете запустить его в производство.

К примеру, если у вас есть домен, привязанный к исходному серверу, вам нужно будет обновить DNS-записи и указать новый IP-адрес.

Читайте также: Как настроить имя хоста

4: Удаление исходного сервера

Когда вы будете уверены, что новый сервер работает, вы сможете удалить исходный сервер.

Удаление снапшота

Ненужные и устаревшие снапшоты можно удалить. Имейте в виду, что восстановить удаленные снапшоты не получится даже за отдельную плату.

Удалить снапшот можно с помощью специального раздела в консоли вашего хостинг-провайдера.

Удаление исходного сервера

Для этого тоже можно использовать консоль.

При этом будет запрошено подтверждение.

Примечание: Снапшоты не зависят от исходных серверов. Если вы удалите сервер, но не удалите его снапшот, у вас все еще будет доступ к нему.

Заключение

Теперь вы умеете создавать снапшоты и перемещать серверы на их основе.

Читайте также: Основы работы со снапшотами

Tags: ,