リモートのrsyncとマウントされたsshfsのrsync localの違いは?


12

リモートホスト(ssh://)をソース/宛先として使用してrsyncを実行するか、ローカルパスを使用してsshfs経由でマウントされたディレクトリを共有する場合、違いはありますか?

スイッチを使用せずに、セキュリティまたはコピー速度に関して違いがある可能性があります。rsyncアーカイブモードとリモートホストパス(ssh)を単に使用してください。sshfsがソースと宛先のみを使用してマウントする場合も同じです(暗号変更なし、デフォルトのみ)。

回答:


17

SSHFSは便利ですが、rsyncまたはより一般的には同期ツールとうまく連動しません。

最大の問題は、SSHFSがrsyncのパフォーマンス最適化を大幅に停止させることです。特に、中規模から大規模のファイルの場合、rsyncはファイルが変更されていることを検出すると、変更された部分のみを転送するために、ファイルの両側でチェックサムを計算します。これは、ネットワークの帯域幅がディスクの帯域幅よりも大幅に小さい場合にのみ最適化されます。しかし、SSHFSでは、「ディスク」帯域幅は実際にはネットワーク帯域幅であるため、rsyncは何をコピーするかを決定するためにファイル全体を読み取る必要があります。実際、ローカルコピー(rsyncに関する限り、どちらかの側がSSHFS上にある場合でも)では、rsyncはファイル全体をコピーするだけです。

SSHFSは、小さなファイルが多数ある場合にもパフォーマンスに悪影響を及ぼします。Rsyncは、少なくともすべてのファイルのメタデータをチェックして、変更されているかどうかを判断する必要があります。SSHFSの場合、これにはファイルごとにネットワークラウンドトリップが必要です。SSHを介したrsyncを使用すると、2つのサイドが並行して動作し、情報を一括で転送できます。これははるかに高速です。

アクセス制限の点では、SSHFSにはSFTPアクセスが必要ですが、rsyncにはシェルを介してコード(具体的にはrsyncプログラム)を実行する機能が必要です。ユーザーがシェルアカウントを持っていない場合、sftp-serverおよびを含むいくつかのプログラムの実行のみを許可する特別なシェルをアカウントに提供することは可能であり、一般的rsyncです。参照してください。DOは、あなたが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.gzrsyncこの操作に使用する場合、変更された部分のみを転送するためのチェックサムの計算中に、rsyncファイル全体を読み取る必要があります。これにより、更新されたセクションだけでなく、完全なデータがダウンロードされますか?@ギルズ
アルパー

1
@alper sshfsでrsyncを使用する場合、rsyncはファイル全体を読み取る必要があります。それ以外の場合、何を更新する必要があるかを知ることはできません。サーバーでチェックサムを計算する方法がないため、チェックサムのみを転送して最適化する方法はありません。
Gilles「SO-邪悪なことをやめる」

ターゲットの場所がsshfs接続ではなくマウントされたフォルダーの場合も同じですか?ご覧ください:unix.stackexchange.com/q/544404/198423 @Gilles
alper

4

主な質問に答えるには:はい、違いがあります。でsshfs安全なチャネルが設定されていることを、セキュアなチャネルを介しやssh越しのrsyncでリモートファイルへのアクセスを許可する既存の接続があり、リモートのrsyncインスタンスに話には

2番目の質問に答える:リモートシステムのrsyncは同期を必要としないファイルを見つけるためのインテリジェンスを提供しますが、主にそれが並行して実行されるためその情報を収集するためのローカルrsync。

両方の方法のセキュリティは、sshパラメータ(キー長、アルゴリズム)の構成が同じであると仮定した場合です。ソースシステムと宛先システムのデフォルトは、これらのシステムのディストリビューションの組み合わせによって異なります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.