Руководство по миграции

Безопасная миграция данных VPS через rsync

Через rsync по SSH заранее перенесите обычные файловые данные с исходного VPS на целевой, затем ненадолго остановите запись, выполните финальную синхронизацию, проверьте приложение и переключите трафик с путём отката. Rsync не является универсальным инструментом живой миграции: базы, контейнеры, загрузочные файлы, устройства, секреты и активные очереди требуют прикладного подхода.

Ключевые факты

Транспорт
Rsync через аутентифицированный SSH
Первое действие
Инвентаризация данных и пробный запуск
Согласованность
Остановить или приостановить запись для финального прохода
Безопасный стандарт
Не использовать `--delete` при первой миграции

Проведите инвентаризацию до копирования

Перечислите файлы приложения, владельцев, ACL, расширенные атрибуты, базы, секреты, плановые задачи, службы, правила экрана, DNS, сертификаты и внешние хранилища. Подтвердите достаточную ёмкость назначения и совместимость пользователей, файловых систем, пакетов ОС и версий приложений. Снижайте TTL DNS перед переключением лишь в рамках плана DNS; кэшированные записи могут жить дольше ожидаемого.

Создайте и проверьте независимую копию источника. Во время начальной передачи оставьте источник неизменным и доступным. Определите проверки успеха и условие отката до объявления окна обслуживания.

  • Не копируйте виртуальные файловые системы /proc, /sys, /dev или /run как обычные данные.
  • Используйте штатные средства копирования, репликации или дампа базы, где нужно.
  • Не помещайте закрытые ключи в историю команд или общие заметки.

Подготовьте данные приложения с пробным запуском

Для каталога вроде /srv/app/ проверьте операцию на источнике: sudo rsync -aHAX --numeric-ids --info=progress2 --dry-run -e "ssh -i /root/.ssh/migration_key" /srv/app/ admin@DESTINATION:/srv/app/. Замените пользователя, путь ключа, назначение и пути данных. Конечная косая черта означает копирование содержимого исходного каталога, а не создание лишнего уровня.

Просмотрите каждый путь и ошибку. Убедитесь, что удалённый аккаунт может безопасно писать в назначение; root-вход не нужен и часто отключён. При правильном выводе повторите команду без --dry-run. Не добавляйте --delete лишь для идентичности каталогов: ошибка источника или назначения может удалить ценные данные.

  • Для больших передач запускайте команду в устойчивом терминальном сеансе.
  • Ограничьте полосу, если копирование влияет на производственный трафик.
  • Зафиксируйте параметры команды и версии инструментов в записи миграции.

Приостановите запись и выполните финальный проход

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

Запустите службы на назначении с предполагаемой конфигурацией, по возможности сначала ограничьте публичный доступ и проверьте состояние, вход, запись, очереди, сертификаты, журналы и зависимости. Меняйте DNS или маршрутизацию только после успешных тестов. Не меняйте одновременно версию приложения и регион хостинга, если совмещённый риск явно не принят.

  • Запишите время остановки записи и результат синхронизации.
  • Проверьте владельцев файлов и обязательный контроль доступа.
  • Следите за старыми и новыми конечными точками при переходе DNS.

Проверьте, наблюдайте и сохраните откат

Для глубокого сравнения файлов выполните исходную команду rsync с --checksum --dry-run в подходящее окно; расчёт сумм читает оба набора и может быть дорогим. Для баз и объектных хранилищ предпочитайте прикладные проверки целостности. После переключения наблюдайте ошибки, задержку, ресурсы, фоновые задачи и внешние обратные вызовы.

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

Источники

  1. Официальная страница руководства rsync
Частые вопросы

Частые вопросы

Может ли rsync безопасно скопировать работающую базу?

Файловая копия активной базы может быть несогласованной. Используйте поддерживаемый базой дамп, копию, координацию снимка или репликацию.

Следует ли использовать `--delete`?

Не при первой миграции. Если позже это нужно, сначала запустите с --delete --dry-run, проверьте оба пути и сохраните восстанавливаемую копию.

Почему изменились разрешения?

Целевому пользователю может не хватать прав, числовые ID могут отличаться, либо целевая файловая система не поддерживает те же ACL или атрибуты. Проверьте совместимость до переключения.