大きなファイルツリーとは、約20万ファイルを意味し、常に成長しています。しかし、比較的少数のファイルが任意の1時間で変更されています。
双方向とは、どちらかのサーバーで変更が発生し、他方にプッシュする必要がある可能性があることを意味するため、rsyncは適切ではないようです。
遠いということは、サーバーは両方ともデータセンターにありますが、地理的には互いに離れているということです。現在、サーバーは2つしかありませんが、時間が経つにつれて拡大する可能性があります。
リアルタイムでは、同期の間に少しの遅延があっても問題ありませんが、1分ごとに1時間でファイルのごく一部が変更される可能性があるため、1〜2分ごとにcronを実行することは適切ではないようです。
編集:これはVPS上で実行されているので、できるカーネルレベルのものの種類に制限されるかもしれません。また、VPSはリソースが豊富ではないため、大量のRAMを必要とするソリューション(Glusterなど)を避けます。
これを達成するための最良の/最も「受け入れられた」アプローチは何ですか?これは一般的な必要性のように思えますが、一般的に受け入れられているアプローチをまだ見つけることができませんでした。これは驚くべきことでした。(私は大衆の安全を求めています。:)
ファイルシステムの変更レベルで同期をトリガーするためにlsyncdに出会いました。それは非常に一般的ではありませんが賢いようで、さまざまなlsyncdアプローチに少し混乱しています。rsyncでlsyncdを使用しているだけですが、rsyncにはメモリの概念がないため(たとえば、Aで削除されたファイルをBで削除する必要があるか、Bで新しいファイルであるかを知るため)それをA)にコピーする必要があります。 lipsyncは単なるlsyncd + rsyncの実装のようです。
次に、次のようにcsync2でlsyncdを使用しています:https : //icicimov.github.io/blog/devops/File-system-sync-with-Csync2-and-Lsyncd/ ...このアプローチに傾いていますが、 csync2は少し風変わりですが、テストは成功しましたが。私は、この方法についてコミュニティで多くの確認を見つけることができなかったことを主に心配しています。
ここの人々はユニゾンをとても気に入っているように見えますが、もはや活発に開発されていないようで、lsyncdのような自動トリガーを持っているかどうかは明らかではありません。
Glusterが言及しているのを見たことがありますが、必要なものが多すぎるかもしれません。
更新: fyi-私が言及した元のソリューションであるlsyncd + csync2に行きました。それは非常にうまく機能しているようであり、サーバーを非常に緩やかに結合させるアーキテクチャーのアプローチが好きです。