полное резервное копирование или инкрементное резервное копирование большого количества файлов

У меня есть большая сумма файлов и в количестве и в общем размере файла. (мы говорим несколько терабайт). Я хотел бы синхронизировать эти файлы/папки однажды к внешней системе резервного копирования, затем выполнил бы ежедневную задачу, которая будет повторно синхронизировать резервное копирование на основе ежедневных изменений. Изменения не являются настолько частыми, но несколько дней, для которых у нас могло бы быть приблизительно дифференциал на 300 ГБ (приблизительно 1.5K файлы).

Я рассматривал rsync или rdiff-резервное-копирование или rsnapshot как некоторые инструменты, но я хотел запустить некоторые тесты с rsynch сначала. У меня была одна главная проблема с rsync, и это:

Проверка существующих файлов для изменений берет слишком долго. Мы обсуждаем 20-й, который делает ежедневное резервное копирование бессмысленным. Это использует rsync-rvhzP или-rvhP. Это, кажется, просто сканирует все файлы и занимает часы подряд, даже если никакой файл не был добавлен/изменен/удален.

Я делаю что-то не так? Будет какая-либо из других систем, которые я упомянул (rdiff-резервное-копирование, или rsnapshot) работают немного лучше? Я шел под предположением, они базировались прочь rsync так или иначе.

Заранее спасибо.

Обновление с дополнительной информацией: у Нас есть приблизительно 2 600 каталогов и 100k файлы в общей сложности приблизительно 3.5 ТБ, выполнил тестовое использование rsync version 3.0.9 protocol version 30. Насколько ежедневные изменения идут, обычно существует 10-изменений файла в день, но это может достигнуть максимума приблизительно в 1.5K изменения/дополнения/удаления файла и приблизительно 300 ГБ в объеме (хотя эти пики are'nt настолько частый, и обычно распространяются независимо),

5
задан 17 October 2014 в 10:20
2 ответа

Предполагается, что временные метки модификации в ваших исходных файлах являются допустимыми (и обновляются, когда файлы изменено) Я думаю, что для вас имеет смысл добавить аргумент -t для синхронизации времени. Quoth rsync справочная страница :

-t , - раз
Это указывает rsync передавать время модификации вместе с файлами и обновлять их в удаленной системе. Обратите внимание: если этот параметр не используется, оптимизация, исключающая файлы, которые не были изменены, не может быть эффективной; другими словами, отсутствие -t или -a приведет к тому, что следующая передача будет вести себя так, как если бы она использовала -I, вызывая обновление всех файлов (хотя алгоритм дельта-передачи rsync сделает обновление достаточно эффективным, если файлы не фактически изменилось, вам намного лучше использовать -t).

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

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

Я подозреваю, что этот вариант будет радикально ] тем не менее, ускорите синхронизацию.

5
ответ дан 3 December 2019 в 01:18

Вы можете пойти на один уровень ниже, используя снимки lvm и lvmsync .

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

Другим решением может быть демон, который использует inotify и хранит информацию о файлах, которые были изменены. Затем вы можете просто использовать только файлы rsync в списке. Lsyncd выглядит как программа, которую вы ищете.

3
ответ дан 3 December 2019 в 01:18

Теги

Похожие вопросы