web-dev-qa-db-ja.com

双方向ファイルシステム透過ソリューションのソリューション

どちらに書き込んでも、2つのサーバーが常に同期できる必要がある、ある種のHAセットアップを実装する必要があります。 DB部分は、マスターマスターレプリケーションのセットアップでカバーできます。しかし、ファイルやコンテンツに関しては、これらのニーズに合うものを見つけることができませんでした。たとえば、あるマシンから別のマシンに/ var/wwwを複製し、それらのいずれかに書き込むことができ、httpリクエストの送信先に関係なく常に同じコンテンツを利用できるようにする必要があります。

  • nison:使いやすく、シンプルなコンセプトですが、双方向のrsyncに似ており、繰り返しオプションを指定して実行しない限り、ファイル変更の自動伝播はありません。それがどれほど信頼できるかはわかりません。私は、フォルダのコンテンツへの変更を「監視」するデーモンのような機能を望んでいました。
  • glusterfs:設定が簡単で、素敵なプロジェクトは、私が必要としているものには完璧なようですが、この双方向を処理していないようです。
  • xtreemfs:レプリケーションが必要な場合は構成が難しく(ドキュメントを理解するのは少し難しい)、レプリケーションの側面よりも「分散ファイルシステム」の部分を対象としているようです。
  • ceph:glusterに似ていますが、ここでも、双方向レプリケーションを処理するとは思わないでください。
  • mogilefs:透過的ではありません。ビルドするアプリケーションはそれを認識し、そのサービスを使用してファイルシステムにアクセスする必要があります。私が使用できるものではありません。

したがって、双方向レプリケーションが通常は実行されないものであり、これを再検討する必要があるのか​​、それとも十分に調査していないのかはわかりませんが、途方に暮れています。私は他の解決策を見つけていないようです。

自動透過的な双方向ファイルレプリケーションを処理できるものは他にありますか?

2
cbaltatescu

デュアルプライマリモードのDRBD とOCFS2やGFSなどのクラスターファイルシステムはどうですか?

ディレクトリツリーに頻繁に変更される小さなファイルが大量(たとえば、数百万以上)含まれていない場合は特に、驚くほどうまく機能する可能性があります。

2

Cephは機能するはずです。それが、分散ファイルシステムのポイントです。

複数のホストが同じディレクトリに書き込むほど、パフォーマンスが低下することに注意してください(同期に非常に注意する必要があるため)。逆の場合、ある程度の伝播遅延が発生します。

私は間違っている可能性があり、確かにテストします。GlusterまたはCephのいずれかが機能すると思います。ある時点で、Cephを使用してバックアップが必要になると想定する必要があることに注意してください(btrfsのfsckはまだありません)。

いくつかのテストを実行して、それがどのように機能するかを確認してください。 md5 sumsのようなものでチェックしていることを確認し、電源コードタイプの回復を引き出してください。

0
Ronald Pottol

私はこの種のセットアップを使用してglusterでこれを達成することができました: http://www.howtoforge.com/high-availability-storage-cluster-with-glusterfs-on-ubunt

重要なのは、ボリュームをリモートではなくローカルにマウントし、glusterに両方のマシンのボリュームの背後にあるフォルダーを複製させることです。これにより、どのマシンでもいつでもダウンできます。

0
cbaltatescu

ファイルシステムレベルで完全に自動化されたレプリケーションが必要な場合は、共有ファイルシステム(GFSなど)と、両方のマシン(DRBD、SAN、マルチホストSCSI、iSCSI)からアクセスする何らかの方法が必要です。ただし、ハードウェアベースのソリューションであるIMEを除けば、それほど堅牢なソリューションではありません。

以前は、メジャーアップデートにrsyncを使用し、同様のセットアップの中間アップデートに通知/ポーリングシステムを使用していましたが、これはアプリケーションコード内で多くのスマートを使用していました。また、AFSを使用しましたが(この種のセットアップではありませんが)、堅牢でスケーラブルであることがわかりました。あなたはそれを見たいと思うかもしれません。

0
symcbean