rsync зависает, если я не дефрагментирую файловую систему ext4

У меня есть сервер XBian (версия Debian Raspberry Pi), запускающая rsync через inetd (а не родной dæmon). Я обслуживаю пару каталогов на файловой системе ext4 (на диске USB) в качестве отдельных модулей (соответствующие модули имеют порядка 100-500 ГБ данных и 1000-10000 файлов). Я заметил, что в последнее время, когда я изменяю другие части файловой системы (т. Е. Загружает, копирует и т. Д. Не обязательно в вышеупомянутые каталоги), вызовы rsync для этих модулей будут отключены.

Для обычной команды rsync -vrt rsync://host:port/module ./ как rsync -vrt rsync://host:port/module ./ , где я не ожидал бы никакой передачи файла (т. rsync -vrt rsync://host:port/module ./ Как на сервере, так и на клиентах будут одинаковые данные), в журнале сервера rsync файл, я вижу такие журналы:

 2014/12/15 22:59:59 [###] connect from UNKNOWN (1.1.1.1) 2014/12/15 22:59:59 [###] rsync on share/ from UNKNOWN (1.1.1.1) 2014/12/15 22:59:59 [###] building file list 2014/12/15 23:16:23 [###] rsync: read error: Connection timed out (110) 2014/12/15 23:16:23 [###] rsync error: error in socket IO (code 10) at io.c(785) [sender=3.1.1] 

В журналах клиента я вижу такие журналы (да, одна и та же передача – сервер сообщает о тайм-ауте через 15 минут, пока клиент сообщил об ошибке через 30 минут):

 2014/12/15 23:00:01 [###] receiving file list 2014/12/15 23:29:26 [###] rsync: read error: Connection reset by peer (104) 2014/12/15 23:29:26 [###] rsync error: error in rsync protocol data stream (code 12) at /usr/src/ports/rsync/rsync-3.0.9-1/src/rsync-3.0.9/io.c(764) [Receiver=3.0.9] 

Любое количество проблем может привести к подобной ситуации, но после дефрагментации нескольких файлов для других проблем, которые я заметил, я также заметил, что мои передачи rsync начнут успешно завершаться. Затем, после того как я загрузил еще несколько файлов (опять же, в каталог за пределами модуля rsync), я увижу, что таймауты возвращаются. Теперь, когда я вижу, что мои журналы имеют ошибки тайм-аута, я дефрагментирую (с e4defrag ) свою систему, а затем снова могу успешно запустить rsync-передачу.

Несколько дополнительных примечаний:

  • Мой раздел ext4 использует менее 50% доступного пространства на данный момент
  • Мои вызовы rsync на другие, более мелкие модули не выходят за пределы времени
  • Даже вызовы без передачи данных (например, rsync -rt rsync://host:post/module ) тайм-аут в этом состоянии
  • После дальнейшего тестирования кажется, что после дефрагментации я могу успешно запустить вызов rsync один раз, прежде чем мне понадобится снова дефрагментировать (действительно ли вызов rsync вызывает фрагментацию файла?)

Почему моя настройка rsync требует дефрагментации каждый раз и что я могу сделать, чтобы мой rsync не нарушил такие незначительные неудобства?

2 Solutions collect form web for “rsync зависает, если я не дефрагментирую файловую систему ext4”

Попробуйте tar для / dev / null каталога вместо дефрагментации … который определенно не изменит диск, но получит все кэширование inodes. С большими каталогами, содержащими множество файлов, ext4 индексирует их в дереве хэширования, поэтому readdir () возвращает их по существу в случайном порядке. Попытка стата () их в том же порядке вызывает много попыток, делая это очень, очень медленно.

Я собираю информацию о журнальных системах в ext3 и ext4, а также о главе в wikipedia о ext4. Отложенное распределение и потенциальная потеря данных заставляют меня думать о rsync как о потенциальной причине для фрагментации. Популяция этой фразы послала меня сюда, и я на самом деле вижу описание процесса, о котором я собирался спросить! Предложение к tar для /dev/null кажется хорошим решением. Прочтите ссылку и найдите дополнительную информацию о задержке размещения.

  • Как проверить быстрый вывод rsync
  • "Rsync: не удалось установить разрешения на ..." ошибка с параметром rsync -a или -p
  • синхронизировать только самые новые файлы и папки, ограничить размер
  • Параметр -link-dest от rsync не связан из-за времени файла
  • rsync --link-dest не работает, как ожидалось, с символическими ссылками
  • RSYNC через SSH в Tomato / dd-wrt
  • Rsync удаляет файлы в старом каталоге?
  • Применить заданные шаблоны исключения rsync в заданной директории
  • Использование rsync + cron для синхронизации машины за брандмауэром с моим Dropbox
  • В чем разница между `dd`,` cp` и `rsync`?
  • Не копируются ли файлы при использовании rsync?
  • Interesting Posts

    Как вы можете избежать сглаживания конфигурационных файлов при установке с помощью make

    обработка подстановки команд в рыбах против других оболочек (sh, bash, zsh)

    Исключить интерфейс обратной связи или адрес из процессов, прослушивающих «любой» адрес

    Какой самый быстрый способ добавить текст в файл из командной строки?

    Linux: могу ли я создать ярлык для сложной команды cd, не прибегая к сценарию оболочки?

    Настройка файловых ассоциаций в Ubuntu с вином

    В отчете ABRT говорится: «irq 19: никто не заботился», но почему?

    Как создать нового пользователя, но с уже существующим домашним каталогом?

    Цвет не удался.

    Индекс Mutt, исчезающий при повторном подключении IMAP

    Точка доступа Not-Associated: команда Kali Linux и Airodump-Ng и стирание команды замораживания

    установка переменной среды как функции другой переменной env

    linux mtp разрешает только читать файл

    Bluetoothctl: нет контроллера по умолчанию

    Экраны умирают, хотя процесс все еще запущен

    Linux и Unix - лучшая ОС в мире.