23

У меня большой iso-образ, который в данный момент загружается торрент-клиентом с включенным резервированием пространства: это означает, что размер файла не меняется, а некоторые фрагменты в (4 Mib) постоянно меняются из-за загрузки.

При загрузке 90% я делаю начальную rsync, чтобы сэкономить время:

$ rsync -Ph DVD.iso /media/another-hdd/
sending incremental file list

DVD.iso
       2.60G 100%   40.23MB/s    0:01:01 (xfer#1, to-check=0/1)

sent 2.60G  bytes  received 73 bytes  34.59M bytes/sec
total size is 2.60G   speedup is 1.00

Затем, когда файл полностью загружен, я снова выполняю rsync:

total size is 2.60G   speedup is 1.00

Speedup = 1 говорит, что дельта-передача не использовалась, хотя 90% файла не изменилось, целевой каталог находится на другой ФС, и копирование занимает несколько минут. Почему бы не попытаться ускорить передачу ?! Как заставить rsync использовать дельта-передачу?

3 ответа3

19

Согласно странице руководства, psusi прав:

-W, --whole-file: передача может быть быстрее, если этот параметр используется, когда полоса пропускания между исходной и целевой машинами выше, чем полоса пропускания на диск (особенно, когда "диск" фактически является сетевой файловой системой). Это значение по умолчанию, когда и источник, и адресат указываются как локальные пути, но только если не действует опция пакетной записи.

18

Прямой ответ на этот вопрос:

Используйте флаг --no-W для принудительного дельта-сжатия, независимо от того, локально оно или удаленно.

Обновление: похоже, что есть еще история. Кажется, что delta compression разрешено только между процессом приема и передачи rsync. При выводе файла в файловую систему rsync может по-прежнему записывать весь файл (-ы), даже если включено дельта-сжатие.

Смотрите расследование "Вакан Танка" здесь.

2

По умолчанию rsync сначала создает новую копию целевого файла, а затем заменяет ее по различным причинам безопасности. Вы можете переопределить это, указав --inplace вместе с --no-whole-file . Это говорит rsync, что нужно выполнить редактирование целевого файла на месте, принимая на себя различные риски (обычно незначительные для этой ситуации), как описано в справочной странице.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .