GlusterFSはウェブサーバーの同期を維持するのに適した選択肢ですか?


9

私は2つのWebサーバーを持っていますが、途中でサーバーを追加する必要がある可能性があります。現在、lsyncd + csync2を使用してこれらのサーバーを同期させています。すべてのファイルが両方のサーバー上にあるため(ファイルをローカルで開くためにネットワークアクセスは必要ありません)、パフォーマンスは優れていますが、それ以外の場合はそれほどうまくいきません。

この1つの例は、サーバー1上のファイルを削除し、すぐに同じ名前の新しいファイルをサーバー1にアップロードする場合です。その後、ファイルはサーバー2から削除され、サーバー2がサーバー1に削除イベントを送信して「更新サークル」を完了すると、サーバー1に新しくアップロードされたファイルが削除されます。

サーバーを同期させるためのより良い方法があるはずだと私は思わずにはいられません。私はGlusterFSを見てきましたが、すべてのファイルがすべてのサーバーに複製される設定はお勧めできません。ただし、私はこれらのサーバーでDrupalのようなCMSシステムを実行しています。このようなCMSシステムは多くの場合、かなりの数のファイルを開きますが、これらのファイルを取得するにはネットワークトラフィックが多すぎると、リクエストの速度が低下するのではないかと心配しています。

lsyncd + csync2を、すべてのファイルをすべてのノードにレプリケートするように設定されたGlusterFSに置き換えることを検討するのは良い考えですか、それとも悪い考えですか?


2
ここであなたの問題を誤解しているかもしれませんが、サーバー間で共有されているネットワークストレージを使用しないのはなぜですか?
mveroone 2013

1
@Kwaio:すべてのWebサーバー(スクリプトとユーザーがアップロードしたコンテンツの両方)を「ミラーリング」したいと思います。これにより、共有ストレージをホストしているサーバーで問題が発生した場合のダウンタイムを防ぐことができます。言い換えれば、すべてのWebサーバーがファイルの単一のストレージに再び依存する設定に依存したくありません。
sbrattla 2013

では、なぜ高可用性ネットワークストレージクラスタではないのでしょうか。
mveroone 2013

確かに、しかしそれは何を意味するのでしょうか?ハードウェア?
sbrattla 2013

私は専門家ではありませんが、つまり、2つのクラスター上のマスタースレーブアーキテクチャーでミラーリングされたネットワークストレージと、マスターに障害が発生した場合に切り替わるシステムを用意します。ほとんどのネットワークストレージデバイスベンダーは、Linuxアプライアンスを使用して自分で構築できたとしても、そのためのソリューションを持っています。
mveroone 2013

回答:


2

BitTorrent Syncが代わりに行います。私は家のいくつかの内部サーバー間でファイルの同期を保つためにそれを使用していて、それは素晴らしい仕事をしています。アプリでCMSを使用する場合のもう1つの考慮事項は、バックエンドデータベースです。MySQLレプリケーション、またはそのようなものがあることを確認してください。


それは面白い。BitTorrent Syncは競合にどのように対処しますか?たとえば、5台のWebサーバーがあり、サーバーAでファイルが更新されるとします。次に、2秒後にサーバーCで同じファイルが更新されてから、Aでの変更がCに到達します。ソフトウェアには、サーバーをセットアップするアルゴリズムがありますかこれらのケースで勝つ?
sbrattla 2014年

私の理解では、BitTorrent Syncは両方のコピーの変更日時を比較し、最新のもののみを保持します。これは理想的であるか、ユースケースに悪影響を与える可能性があります。
whiskykilo 2014

1

Glusterは、ロックを保持し、変更を伝達できるため、問題を解決します。他のすべてのノードでファイルを削除しますが、Webサーバーで問題になる可能性があるレイテンシが追加される可能性があります。次の代替案はDRBD + OCFS2またはGFSですが、基盤となるファイルシステムを使用しているglusterと同様に、おそらくより複雑です。ブロックレベルでは動作しないため、サーバーが同期していない場合でも、ファイルを修正するのは難しくありません。スプリットブレインなどで簡単に破損することはありません...

私たちはそれをメールサーバーに使用しており、多くのファイルを含むディレクトリには非常に遅くなります。展開する前に必ずすべてをテストする必要があります。私は現在、NFSマウントをテストしています。これは、小さなファイルでより効果的に機能するためです。


1

GlusterFSは展開が困難です。Webデータの場合、Unisonのようなファイル同期レベルは、導入と保守がはるかに簡単です。

DRBDは、ブロックレベルでデータ同期を維持するための完璧なソリューションです。ただし、OCFS2などの特殊な形式にフォーマットする必要があります。


GlusterFSはDRBDとは異なり、ブロックレベルではなくファイルレベルで動作します。しかし、ユニゾンの方が展開が簡単だと思います。
Jure1873 14

-3

人形のような道具を使ってみませんか?ソースに1回記述し、準備ができたら、「パペットキック」またはmcolletiveを使用してターゲットにデプロイします。十分に文書化されています。また、必要に応じて後でサーバーを簡単に追加できます。

カーネルレベルで動作するlsyncdなどのinotifyを使用するツールに依存することもできます。フォルダーの変更を監視し、同期をトリガーします。しかし、csync2のようなクラスター上のファイルの同期専用のツールでは不十分な場合は、どうなるかわかりません。

念のため、変更はサーバー2でも発生しますか、それともサーバー1のみで発生しますか?


3
反対投票- サーバー間でファイルを同期させるに、Puppetは適していません。それはあるしかし、管理するための華麗なツールサーバー構成を
クレイグワトソン

負荷分散されたセットアップに参加しているため、どのサーバーでも変更が発生する可能性があります。ユーザーは任意のサーバーにファイルをアップロードできます。その結果、トラフィックはサーバー間で分散されるため、そのファイルはすべてのサーバーで使用できるようになります。
sbrattla 2013

1
まあ、この場合、人形はあなたが望むものではありません(それでも、@ Craig Watson、ファイルはファイル、構成、またはHTMLですが、それでもファイルです)。GlusterFSが本番稼働の準備ができているとは思えないので、本当に安全なものが必要な場合は、可用性の高いNFSサーバーを使用することをお勧めします。
Rosco 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.