質問: rsyncバックアップのパフォーマンスの向上 一方のシステムには常にマスターコピーがあり、もう一方のシステムには常に最新のコピー(48時間未満)があると仮定して、unixボックス間のsshミラーリングよりもrsyncを改善するための最良の手法は何ですか?また、これらの変更のプッシュを取得する数十台のマシンを処理するために、そのアプローチを拡張するには何をする必要がありますか?
回答: rsyncにはdisconnectedコピーを実行する方法があります。言い換えれば、rsyncは(概念的に)diffディレクトリツリーを生成し、patchファイルを生成し、後でそれを任意の数のファイルにapplyできます。元のソースと同じです。マスターでrsyncを呼び出し、--write-batchでミラーリングする必要があります。ファイルを生成します。次に、このファイルを他の任意の数のターゲットに転送し、次にバッチを適用 --read-batchを使用してそれらの各ターゲットに転送します。最後に同期された状態のローカルコピー(つまり、現在のミラーの外観のコピー)をマスターと同じマシンに保持している場合、ミラーに接続しなくても、マスターでこの「パッチ」を生成できます。マスターについて:rsync --write-batch=my-batch.rsync /master/data /current/mirror 他に必要なオプションを追加します。これは2つのことを行います: /current/mirrorを反映するように/master/dataを変更します バイナリパッチファイルを作成(またはバッチファイル)my-batch.rsyncと呼ばれ、後で使用します。 my-batch.rsyncファイルをマスターからすべてのミラーに転送してから、ミラー上でパッチを適用いわば:rsync --read-batch=my-batch.rsync /local/mirror このアプローチの利点: マスターは圧倒されていません マスター/ミラーを同時に調整/アクセスする必要はありません 異なる特権を持つ異なる人々がマスターとミラーで作業を行うことができます。 tcpチャネル(ssh、netcat、何でも;ファイルは電子メールで送信できます;-))を持つ必要はありません オフラインミラーは後で同期できます(オンラインにしてパッチを適用するだけです) すべてのミラーは同一であることが保証されています(同じ「パッチ」を適用するため) すべてのミラーを同時に更新できます(--read-batchはミラー自体にcpu/ioのみを集中させるため)