3

У меня есть два NAS.
Я работаю от одного, а другой используется в качестве резервного. Как я настроил сейчас, это медленно. Запуск резервного копирования занимает неделю.
Даже для 7 ТБ, с 1 979 407 файлами, это кажется немного странным, особенно с учетом того, что обе системы имеют RAID-5, а сеть - гигабитная.

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

Я думаю, что мне нужно настроить rsync на главном nas в качестве демона, а затем запустить локальный клиент rsync для подключения к нему, что, я надеюсь, позволит мне полностью избежать всей проблемы SMB-in-the-middle, но Помимо упоминания о его наличии, я могу найти очень мало информации о том, почему нужно использовать режим демона для rsync.

Вот моя текущая командная строка rsync:
rsync -r -progress --delete /cifs/Thecus/ /mnt/Storage/

Любой вклад? Есть ли лучший способ / инструмент для этого?

Редактировать:
Хорошо, чтобы ответить на дополнительные вопросы:
"Главный" NAS - Thecus N7700. У меня установлены дополнительные модули, которые дают мне SSH, и он имеет rsync, но его нет в $ PATH, и я не понял, как отредактировать локальный $ PATH таким образом, который сохраняется между перезагрузками.
"Резервное копирование" NAS является делом самоделки, построенным на частоте 1,6 ГГц Via Mobo с картой аппаратного RAID Adaptec. Это работает CentOS 5 с полной средой рабочего стола. Это аппаратное обеспечение, с которого я запускаю rsync. (Гигабит идет через дополнительную карту PCI).

Дальнейшее редактирование: Хорошо, получил rsync по работе SSH (спасибо, lajuette!).
Мне пришлось немного поработать в командной строке, я запускаю rsync с аргументами:
rsync -rum --inplace --progress --delete --rsync-path=/opt/bin/rsync sys@10.1.1.10:/raid/data/Storage /mnt/Storage
(Примечание: я специально не использую -a, потому что хочу сменить владельца на локальную учетную запись, чтобы не сводить с ума SELinux)

Кажется, это работает. Я посмотрю, сколько времени это займет.

5 ответов5

3

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

Я использую rsync для синхронизации своей музыкальной библиотеки.

rsync -aum --delete /my/music/library/* 192.168.1.5:/backup/of/music/library/

таким образом я говорю rsync синхронизировать через ssh. Вам нужен ssh-сервер, работающий на целевой машине (в моем случае 192.168.1.5), и на обеих машинах установлен rsync.

Вот объяснение, если варианты:

  • -a: список элементов архива всех файлов (включая параметры rlptgoD)
  • -u: обновить существующие файлы, не копировать их снова, если они уже есть
  • -м: обрезать пустые каталоги
  • --delete: удалить файлы на цели, которые были удалены на источнике

наследуется через флаг -a:

  • -r: рекурсировать через подкаталоги
  • -l: сохранить символические ссылки как символические ссылки
  • -p: сохранить разрешения
  • -t: сохранить время модификации
  • -g: сохранить группу
  • -о: сохранить владельца
  • -D: сохранить устройство и специальные файлы

Это должно синхронизировать ваш NAS довольно быстро. Если вы попробуете это, пожалуйста, опубликуйте свои результаты!

1

В случае, если у вас все еще есть проблемы, или для других, читающих это, я рекомендую изучить следующие параметры rsync (в дополнение к тем, что упомянуты в lajuette, например, чрезвычайно полезная опция -u):
-z (сжатие: если ваша сеть не намного быстрее вашего процессора, это может сэкономить время, но вы можете проверить это)
--partial-dir = '. rsync-частичный' (если соединение обрывается, и вы просто переносили файл фильма размером 7 гигабайт, вы можете продолжить с того места, на котором остановились, а не перезапустить; я считаю, --inplace, который несовместимо с этим, так как слишком опасно)
-v (подробный режим - только для тестирования / устранения неполадок)
--exclude-from = 'your-exclude-list-file' (если у вас есть файлы резервных копий, системные файлы, изображения миниатюр, временные файлы / файлы кэша, определенные каталоги и т. д., вам не нужно выполнять резервное копирование и т. д., перечислите их в файле исключения с необязательными подстановочными знаками, это может уменьшить громкость)

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

Переменная PATH должна быть установлена / изменена в вашем файле $ HOME / .profile, она запускается при каждом входе в систему.

Кроме того, я второй предложил МэттБьянко попытаться сначала найти горлышко бутылки.

Надеюсь это поможет.

0

rsync, работающий как демон, не защищен, поэтому он действительно полезен только для магазинов, которые вы хотите сделать общедоступными. Способ сделать это - заставить ssh работать на NAS, чтобы можно было rsync напрямую подключиться к nas-device:/path/to/storage , а затем оттуда можно настроить параметры ssh для оптимизации.

0

Что это за NAS? Вы используете rsync на встроенном процессоре? Возможно, узким местом здесь является процессор.
Знаете ли вы, какова внутренняя файловая система на NAS:es? Есть ли миллионы файлов в одном каталоге?

Если у вас есть гигабитная сеть с обоих NAS:es, и они оба смонтированы на вашем linux-боксе (с smbmount или NFS), синхронизировать его с rsync не стоит слишком медленно, что, я считаю, является лучшим вариантом для синхронизации больших объемов данных, как вы делаете. Просто попытайтесь выяснить, где узкое место является первым. Тогда будет намного проще найти лучшее решение.

0

Знаете ли вы об использовании жестких ссылок для создания резервных копий на определенный момент времени?

Вот статья об этом. http://www.mikerubel.org/computers/rsync_snapshots/

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

По сути, вы можете хранить множество копий исходных данных. Каждый из них выглядит как полная структура каталогов, но файлы, которые не меняются между версиями, используют одни и те же inode на диске (ах). Хотя простейшим решением является использование rsync с параметром --link-dest, как указано выше, этот метод также реализован в других программах резервного копирования, таких как:

  • backuppc :: backuppc.sourceforge.net
  • back-in-time :: backintime.le-web.org
  • rsnapshot :: rsnapshot.org (лично не использовал этот)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .