Відмінності між rsync на віддаленому та rsync локальним на встановленому sshfs?


12

Чи є якась різниця, якщо я запускаю rsync з віддаленим хостом (ssh: //) як джерело / місце призначення або використовую локальний шлях для спільного використання встановленого каталогу через sshfs?

Чи можуть бути розбіжності щодо безпеки та швидкості копіювання без використання комутаторів, просто за допомогою режиму архівації rsync та віддаленого шляху хоста (ssh). Те саме з sshfs монтується лише з джерелом та адресою (ніяких змін шифру, просто за замовчуванням).

Відповіді:


17

SSHFS зручний, але не добре поєднується з rsync або загалом із засобами синхронізації.

Найбільша проблема полягає в тому, що SSHFS значною мірою вбиває оптимізацію продуктивності rsync. Зокрема, для середніх та великих файлів, коли rsync бачить, що файл був модифікований, він обчислює контрольні суми по частинах файлу з кожної сторони з метою передачі лише модифікованих частин. Це оптимізація лише в тому випадку, якщо пропускна здатність мережі значно менша за пропускну здатність диска, що зазвичай буває. Але з SSHFS пропускна здатність диска - це насправді пропускна здатність мережі, тому rsync повинен був прочитати весь файл, щоб визначити, що копіювати. Насправді, з локальною копією (що стосується rsync, навіть якщо одна із сторін знаходиться на SSHFS), rsync просто копіює весь файл.

SSHFS також шкодить продуктивності, якщо є багато невеликих файлів. Rsync повинен перевірити принаймні метадані кожного файлу, щоб визначити, чи він був змінений. Для SSHFS для цього потрібен обхід в мережі для кожного файлу. За допомогою rsync через SSH дві сторони можуть працювати паралельно та передавати інформацію оптом, що набагато швидше.

Що стосується обмежень доступу, SSHFS вимагає доступу до SFTP, тоді як для rsync необхідна можливість запускати код (конкретно, програму rsync) через оболонку. Якщо у користувача немає облікового запису оболонки, можна надати обліковому запису спеціальну оболонку, яка дозволяє запускати лише кілька програм, включаючи sftp-serverта rsync. Див. Чи потрібна оболонка для SCP?

Якщо ви копіюєте лише нові файли, а файлів не дуже велика, значущої різниці в продуктивності немає.

SSHFS встановлює SSH-з'єднання, коли файлова система змонтована, і зберігає це з'єднання, поки воно не відключено. Rsync встановлює нове з'єднання кожного разу, коли ви запускаєте його, але ви можете використовувати функцію мультиплексування та копіювання на одному головному з'єднанні, щоб уникнути аутентифікації кожного разу.

SSHFS є файловою системою FUSE і тому підтримує лише традиційні метадані Unix та ACL. Rsync може передавати розширені атрибути (потрібно використовувати rsync -aAX, зауважте, що звичайна -aзберегла лише традиційні метадані Unix).


Наприклад, у мене є один стислий файл у змонтованому каталозі SSHFS, і цей файл копіюється в мій локальний каталог. Пізніше цей файл оновлюється у змонтованому каталозі, і я хочу скопіювати лише його оновлений розділ у свій локальний каталог за допомогою rsync --no-whole-file /mounted/file.tar.gz /home/local/file.tar.gz. Коли я використовую rsyncдля цієї операції, під час обчислення контрольної суми, щоб передати лише модифіковані частини, rsyncслід прочитати весь файл, який призведе до завантаження повних даних замість лише оновленого розділу? @Gilles
alper

1
@alper Якщо ви використовуєте rsync над sshfs, rsync повинен прочитати весь файл. Він не може знати, що потрібно оновити інакше. Неможливо оптимізувати, передаючи лише контрольні суми, оскільки немає можливості обчислити контрольні суми на сервері.
перестань бути злим"

Чи було б те саме, якщо цільове місце розташування - це змонтована папка, а не sshfsз'єднання? Дивіться: unix.stackexchange.com/q/544404/198423 @Gilles
alper

4

Щоб відповісти на ваше головне питання: так, є відмінності. Оскільки sshfsіснує існуюче з'єднання, яке дозволяє отримати доступ до віддалених файлів через захищений канал та при rsync через ssh, цей захищений канал налаштовано для розмови з віддаленим екземпляром rsync .

Щоб відповісти на ваше другорядне запитання: rsync за ssh буде більш швидким для більшості, якщо не для всіх примірників, тому що rsync на віддаленій системі забезпечує більше інтелекту у пошуку файлів, які не потребують синхронізації, але насамперед тому, що він працює паралельно вашому місцевий rsync для збору цієї інформації.

Захищеність обох способів передбачає однакову конфігурацію параметрів ssh (довжина ключа, алгоритми) однакові. Які значення за замовчуванням призначені для вашої вихідної та цільової системи, залежить від комбінацій розподілів у цих системах.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.