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

самый быстрый способ отразить каталог, содержащий миллионы небольших файлов

Мне нужно скопировать смонтированную папку ISCSI 700 ГБ в папку на локальном жестком диске, сохранив при этом существующие разрешения и права собственности. Данные в папке состоят из примерно миллиона файлов, в основном небольших, и новый каталог должен точно соответствовать разрешениям и владельцам оригинала.

С помощью rsync -az /original_folder/ /new_folder получает все разрешения правильно, но он уже более часа «сканирует файлы» и еще даже не начал справляться с этим. Данные представляют собой общие дисковые ресурсы openvz, и в прошлом возникали проблемы с разрешениями, когда они копировались с помощью "cp".

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

Вы рассматривали возможность использования tar? Что-то вроде tar -cpOC <sourcedir> . | tar -xpC <targetdir> -f - может сделать вам.

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

Есть ли у цели iSCSI способ клонирования тома?

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

Насчет восстановления с партиалов .. хрм. Вы можете зайти в свой корневой каталог и запустить что-то вроде ..

для i в *; сделать rsync -azP $ i / newfolder; сделано

затем пропустите любые подкаталоги, которые вы уже скопировали

cp -aux (как root) должно помочь.