[freebsd] Синхронизация множества мелких файлов, ncftp-3.2.5 и ftp хранилище в ДЦ Воля
Eugene Grosbein
eugen at grosbein.net
Thu Mar 9 13:35:50 EET 2017
On 09.03.2017 18:00, Vladislav V. Prodan wrote:
>
> Здравствуйте.
>
> Имею задачу синхронизировать ~ 70ГБ (мелких) файлов
> backup.dc.volia.com <http://backup.dc.volia.com> - ресолвится в 2 IP. Судя по заставке, там Pure-FTPd
> Пытаюсь так ложить файлы:
>
> ncftpput -R -m -f $config -z -r 70 -d ${local_dir}/debug.log \
> / \
> $dir/`ls $dir | egrep -v 'archive|xxxweb100'`
>
> через каждые 5-15 минут получаю примерное:
> 2017-03-09 06:56:28 Could not read reply from control connection -- timed out.
Для синхронизации множества мелких файлов ftp очень плохой протокол,
так как он использует новый TCP-коннект для каждого файла и очень быстро
выжирает диапазон эфемерных портов на стороне сервера при пассивном режиме
и на стороне клиента при активном. Стабильная работа в таких условиях
требует от исходного кода сервера в первом случае и клиента во втором
очень тщательной реализации протокола с оптимизацией под такой шаблон нагрузки,
чтобы софт аккуратно переиспользовал порты.
Штатный ftpd в FreeBSD вылизывали на эту тему в 2002-м и у него этой проблемы нет.
Плюс промежуточные statefull-фильтры могут неадекватно реагировать на множество
коннектов и в порядке "защиты от атак" периодически дропать пакеты.
Лучше использовать любой другой протокол, передающий всё в одном коннекте.
В данном случае rsync лучше всего.
More information about the freebsd
mailing list