У вас есть машина Ubuntu с огромной коллекцией файлов (2,7 ТБ, тысячи каталогов, более 2 миллионов файлов). Мне нужно ежедневное инкрементное резервное копирование файлов, чтобы пользователь мог легко просматривать резервную копию так же, как просматривал любой другой файловый каталог (через проводник Windows и подключенный диск SMB).
Пока резервная копия не стала такой большой, сочетание использования cp -al для поворота самой последней целевой папки резервного копирования на предыдущий день с использованием жестких ссылок и последующего выполнения rsync с самой последней целевой папкой резервного копирования работало просто отлично. Однако я переместил сценарий с NAS (так что он «тянул» файлы для резервного копирования) на новый сервер, и теперь я запускаю сценарий резервного копирования на исходном сервере, а не на целевом устройстве резервного копирования.
Я не уверен, вызывает ли проблему переключение с вытягивания на push или набор файлов слишком велик, но у меня скрипт не работает, и нет вывода ошибок из cp или rsync с подробным ведением журнала. Он просто останавливается, и я нахожу процессы cp и rsync, все еще работающие в памяти, которые, похоже, ничего не делают. Это как если бы rsync «дает сбой», но не удаляется полностью из памяти.
Исходная дата, около 95% или более, не изменяется, поскольку это архивные данные, но она МОЖЕТ время от времени меняться. Таким образом, очевидным решением было бы сегментировать резервную копию, чтобы делать только самые последние каталоги, а затем создавать резервные копии довольно статических каталогов отдельно с менее частыми интервалами. ИЛИ перейдите на совершенно другое решение для резервного копирования.
Но, как я уже сказал, ограничения заключаются в том, что резервную копию необходимо легко просматривать в проводнике Windows через подключенный диск.
Поэтому мне интересно, есть ли какой-нибудь параметр rsync (или другой трюк), который я мог бы использовать для ускорения резервного копирования? Это похоже на то, что мне нужно, чтобы rsync мог определять, были ли изменены какие-либо файлы в каталоге, без необходимости читать информацию о каждом файле и ЗАТЕМ погрузиться в каталог.
Я использую rsync с параметрами: -rlptgoh (ой, я только что заметил, что в какой-то момент я принял v для подробного вывода. Что ж, я продолжу и добавлю это обратно и посмотрю, получу ли я дополнительную информацию о проблеме)
Но все же интересно, есть ли какие-либо предложения по лучшему подходу с учетом требований или какой-либо другой комбинации параметров rsync? Возможность просматривать инкрементальные файлы через Windows Explorer действительно бросает вызов типичным рекомендациям системных администраторов, поскольку они обычно не соответствуют этому требованию.
Чтобы ускорить rsync
сам вы можете попробовать использовать --numeric-ids
вариант. Более того, поскольку rsync
сильно зависит от скорости доступа к метаданным, вы можете попробовать установить vfs_cache_pressure=20
в месте назначения резервного копирования.
Однако, насколько я понимаю, вы столкнулись с заблокирован cp
или rsync
процесс, который представляет собой совершенно другую банку с червями. Я бы попытался упростить процесс, вернувшись к вытащить модель резервного копирования, которая позволит вам использовать rsync
встроенная функция жесткой ссылки, называется --link-dest
Еще лучше, я бы использовал rsnapshot
для настройки и автоматизации процесса резервного копирования и ротации. я я на самом деле с использованием этой системы для резервного копирования 7+ ТБ с различных серверов (и у меня такое же требование, как и у вас: представлять резервные копии через общий ресурс самбы только для чтения).