web-dev-qa-db-ja.com

rsyncのデルタアルゴリズムはSamba共有で機能しますか?

Rsyncを使用してWindowssamba共有のデータを同期するcronジョブがあります(起動時に/ etc/fstabを使用してマウントします)。私の問題は、転送に最初の転送とほぼ同じ時間がかかるように見えることです。私はたくさんのファイルを持っているので、それでもそれぞれの変更を検査する必要があると思いますが、2回目はもう少し速くする必要がありますか?私はちょうどこのようなコマンドを使用しました:

rsync -aver ssh /mnt/winserver/d/www /path/to/disk/rsync-backup/

ここで、/ mnt/winserverはマウントされたcifs共有であり、/ path/to/diskは私のローカルディスクスペースです。

5
Lactose

覚えておくべきことは、デルタアルゴリズムは、rsyncサーバーがリモートシステムで実行されており、クライアントがローカルシステム上にある場合に最も役立つということです。

Stat()の出力が異なるため(サイズ、日付の変更)、大きなファイルを転送する必要があると判断した場合、一部のrsyncプロセスはソースファイルと宛先ファイルを読み取る必要があります。リモートファイルがマウントされている場合、ローカルシステムで実行されているプロセスは、ネットワーク経由でファイル全体を読み込みます。リモートシステム上のrsyncデーモンに接続している場合、リモートrsyncプロセスがファイルを読み取り、アルゴリズムを使用して更新が必要なブロックを決定し、違いのみがネットワークを通過します。

遅い理由としては、いろいろな理由が考えられます。選択したファイルが基本的に膨大な数の小さなファイルであった場合、転送に必要な時間は関係ない可能性があり、stat()が完了するのを待っています。

WAN接続を介してSMBを実行している場合は、標準のSMB高遅延リンクの問題を回避できます。

Rsyncを実行できるWindowsボックスでのSSHサーバーのセットアップを検討することをお勧めします。無料ではなくなりましたが、私は通常CopSSH/cwRsyncを使用しています。

8
Zoredache