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

Rsync огромный набор данных небольших файлов 5 ТБ, + M небольших файлов

Я столкнулся с ситуацией, когда неправильная конфигурация сервера приложений привела к созданию наборов данных размером около 5 ТБ, где каждый каталог содержит огромное количество небольших файлов. Мы находимся в процессе передачи файлов и меняем приложение, но rsync не может передать данные. Это не удается даже локально между локальными дисками. Мне удалось скопировать только 3.5G за ночь! Я попытался изменить переключатели rsync, но все равно не повезло. Вот что в настоящее время работает на сервере без каких-либо индикаторов прогресса: rsync -avhWc --no-compress --progress source destination Некоторые предлагали gigasync, но github и сайт недоступны. Кто-нибудь может предложить способ передачи файлов? Цени любую помощь

Попробуйте xargs + rsync:

 find . -type f -print0 | xargs -J % -0 rsync -aP % user@host:some/dir/

Вы можете контролировать, сколько файлов передавать в качестве источника для каждого вызова rsync с помощью -n Например. для копирования 200 файлов при каждом rsync:

 find . -type f -print0 | xargs -n 200 -J % -0 rsync -aP % user@host:some/dir/

Если он слишком медленный, вы можете запустить несколько копий rsync параллельно с -P вариант:

find . -type f -print0 | xargs -P 8 -n 200 -J % -0 rsync -aP % user@host:some/dir/

Это запустит 8 копий rsync параллельно.

Если это надежная / безопасная сеть и вы можете открыть порт на целевом хосте, хорошим способом воспроизвести дерево на другой машине является комбинация tar и netcat. Я не на терминале, поэтому не могу написать полную демонстрацию, но эта страница неплохо справляется:

http://toast.djw.org.uk/tarpipe.html

Обязательно используйте сжатие. В лучшем случае вы можете передавать данные с наименьшей пропускной способностью из трех возможных узких мест - чтение в источнике, сеть, запись в целевые разрешения.

без указания ОС сервера - рассматривали ли вы robocopy? Хотя его Windows основана. Поддерживает потоки, повторные попытки и ограничение полосы пропускания. Поддержка UNC в UNC. Документы RoboCopy

быстрый google из rsync показывает unix / windows ... возможно, вы используете окна.

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

Если это не вариант, рассмотрите UDR + rsync, подробно описанный здесь: Передача большого количества небольших файлов