2 つのデータセンターがあり、それぞれに大規模な EMC ベースの nfs を共有する多数の Linux サーバーがあります。
課題は、2 つの NFS の同期を維持することです。今のところ、nfs1 に対してのみ書き込みが発生し、nfs2 に変更を伝達する必要があると仮定します。
定期的な一般的な rsync は遅すぎることが判明しました。-az を使用しても、各 rsync が完了するまでに数時間かかります。ファイルまたはディレクトリが実際に変更されたときに、特定の同期を行う必要があります。
では、問題は、ファイルまたはディレクトリがいつ変更されたかをどのように知ることができるかということです。inotify は明白な答えですが、nfs では機能しないことで有名です。(inotify が nfs サーバーにインストールされている場合に動作する可能性があるというおしゃべりがありますが、それは私たちのオプションではありません。サーバーではなく、クライアントのみを制御できます。)
Linux nfs クライアントでは、サーバーに送信するすべての変更をログファイルなどにキャプチャできますか? または、これを行うためにクライアントをハッキングできますか? その後、各クライアントから変更を収集し、対象となる rsync を定期的に開始できます。
他のアイデアを歓迎します。ありがとう!