Назад | Перейти на главную страницу

Rsync: файлы локального кеша для отправки по медленной ссылке?

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

Мне приходится бороться с очень медленным удаленным rsync NetGear ReadyNAS Duo с крошечным мозгом, который может обрабатывать только скорость копирования SSH около 2 мегабит / сек, в то время как у меня есть доступная пропускная способность 50+ мегабит. Я не хочу, чтобы для программы выполнялось резервное копирование, чтобы она была отключена на несколько часов, пока данные резервного копирования поступают на медленный удаленный NAS.

Есть ли способ сделать быструю временную локальную копию определенных файлов для синхронизации, чтобы минимизировать время простоя приложения / базы данных?

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

  1. Остановите программу / базу данных для резервного копирования
  2. Запустите rsync для удаленного местоположения, но только перечислите файлы, которые он будет копировать
  3. Используйте cp для копирования этих конкретных файлов / каталогов в быстрое временное локальное хранилище.
  4. Перезапустите программу / базу данных для резервного копирования.
  5. Rsync обычно из временного каталога в медленное удаленное хранилище
  6. Удалить временные локальные копии файлов

Это самый быстрый способ кэшировать файлы для удаленной синхронизации или есть другой лучший способ?

Есть ли более автоматический способ сделать это, не требующий всех этих отдельных сценариев?

rsync не имеет функции, специально помогающей в этой ситуации. Однако вы можете подделать его следующими способами:

  • Остановите базу данных, сделайте резервную копию на локальном диске, запустите базу данных. Использовать rsync для резервного копирования этой локальной копии. Плюсы: минимизирует время простоя. Минусы: вам потребуется вдвое больше дискового пространства локально.
  • Сделай два rsync бежит. Первое использование --exclude= и --include= флаги, чтобы пропустить базу данных. Второй сначала останавливает базу данных, затем использует другой набор --exclude= и --include= flags только для резервного копирования файлов базы данных, а затем перезапускает базу данных. Плюсы: не требуется дополнительного места на локальном диске. Минусы: более длительное время простоя, сложнее управлять (создание правильных флагов включения / исключения выполняется вручную и подвержено ошибкам).

Я бы сделал первый вариант, если это вообще возможно. Одна вещь, которая упростит задачу, - это иметь очень четко определенное пространство, для которого выполняется резервное копирование / не резервное копирование, чтобы упростить командную строку rsync и упростить настройку.