どちらに書き込んでも、2つのサーバーが常に同期できる必要がある、ある種のHAセットアップを実装する必要があります。 DB部分は、マスターマスターレプリケーションのセットアップでカバーできます。しかし、ファイルやコンテンツに関しては、これらのニーズに合うものを見つけることができませんでした。たとえば、あるマシンから別のマシンに/ var/wwwを複製し、それらのいずれかに書き込むことができ、httpリクエストの送信先に関係なく常に同じコンテンツを利用できるようにする必要があります。
したがって、双方向レプリケーションが通常は実行されないものであり、これを再検討する必要があるのか、それとも十分に調査していないのかはわかりませんが、途方に暮れています。私は他の解決策を見つけていないようです。
自動透過的な双方向ファイルレプリケーションを処理できるものは他にありますか?
デュアルプライマリモードのDRBD とOCFS2やGFSなどのクラスターファイルシステムはどうですか?
ディレクトリツリーに頻繁に変更される小さなファイルが大量(たとえば、数百万以上)含まれていない場合は特に、驚くほどうまく機能する可能性があります。
Cephは機能するはずです。それが、分散ファイルシステムのポイントです。
複数のホストが同じディレクトリに書き込むほど、パフォーマンスが低下することに注意してください(同期に非常に注意する必要があるため)。逆の場合、ある程度の伝播遅延が発生します。
私は間違っている可能性があり、確かにテストします。GlusterまたはCephのいずれかが機能すると思います。ある時点で、Cephを使用してバックアップが必要になると想定する必要があることに注意してください(btrfsのfsckはまだありません)。
いくつかのテストを実行して、それがどのように機能するかを確認してください。 md5 sumsのようなものでチェックしていることを確認し、電源コードタイプの回復を引き出してください。
私はこの種のセットアップを使用してglusterでこれを達成することができました: http://www.howtoforge.com/high-availability-storage-cluster-with-glusterfs-on-ubunt
重要なのは、ボリュームをリモートではなくローカルにマウントし、glusterに両方のマシンのボリュームの背後にあるフォルダーを複製させることです。これにより、どのマシンでもいつでもダウンできます。
ファイルシステムレベルで完全に自動化されたレプリケーションが必要な場合は、共有ファイルシステム(GFSなど)と、両方のマシン(DRBD、SAN、マルチホストSCSI、iSCSI)からアクセスする何らかの方法が必要です。ただし、ハードウェアベースのソリューションであるIMEを除けば、それほど堅牢なソリューションではありません。
以前は、メジャーアップデートにrsyncを使用し、同様のセットアップの中間アップデートに通知/ポーリングシステムを使用していましたが、これはアプリケーションコード内で多くのスマートを使用していました。また、AFSを使用しましたが(この種のセットアップではありませんが)、堅牢でスケーラブルであることがわかりました。あなたはそれを見たいと思うかもしれません。