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 кажется хорошим решением. Прочтите ссылку и найдите дополнительную информацию о задержке размещения.

  • scp-файлы из определенной папки параллельно
  • Ошибка сценария Rsync bash (отправка: команда не найдена)
  • RSYNC через SSH в Tomato / dd-wrt
  • rsync оптимизирован для скорости
  • cron rsnapshot - еженедельно до ежемесячного
  • Почему «rysnc» изменяет разрешения файловой системы?
  • Сообщение rsync «пропускать нерегулярный файл», когда не копируются ссылки
  • Как rsync только новые файлы
  • Непрерывный файл разности
  • rsync исключая пустые файлы
  • сохранять те же метаданные inodes с помощью rsync или игнорировать метаданные с помощью du
  • Interesting Posts

    Что происходит с моими файлами, если я scp-ed в не существующую директорию

    HGRCPATH хранится в / etc / sudoers, но игнорируется hg?

    сценарий оболочки для подключения внешнего устройства к точке подключения

    Ошибка при создании Apache 2.4.25 из источника с открытым ssl 1.1.0c

    Вернитесь в каталог до cd-ing в домашний каталог

    Как написать программу, которая может работать на компьютере без операционной системы?

    Как получить самые последние записи DNS из недавно обновленного домена?

    Можно ли использовать split для создания кусков символов из китайских байтов юникода?

    Как изменить яркость на щенка linux?

    TP-Link TL-WR1043ND как немая точка доступа

    Обработать список имен файлов, чтобы разделить каталог и базовое имя

    Как сделать диалог прогресса для Bash в XFCE?

    Кто-нибудь знает, где изменить это значение «bufsize»? (стримеры ST / mt LTO)

    В чем разница между / root и / home в Kali linux

    Запрос цвета zsh

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