web-dev-qa-db-ja.com

データセンター間で/ homeを共有する

オランダとフランスのデータセンターに配置された2台のサーバーがあります。どちらもDebianWheezyを実行しています。/homeを共有して、パフォーマンスを向上させる必要があります。サーバーには300人のユーザーがいますが、そのうちの約30人は、特定のサーバーで特定の時間にアクティブなプロセスを実行できるはずです。 s読書。ローカルストレージでiotopを使用して測定します。合計で約500000の小さなファイルがたくさんあり、可能な限り低いレイテンシが必要です。サーバー間のpingは17ミリ秒で、scpとwgetを使用すると、接続は約20〜30 MB /秒に到達できます。それが機能するために利用できる十分な帯域幅があるはずですが...

私がこれまでに述べたこと:sshfs:nfsよりもパフォーマンスが優れているように見えましたが、ファイルのアクセス許可がrootに変更されたため、アプリケーションがクラッシュしました。

nfs:速度を落とす方法、他の多くのオプションを試してみましたが、アクティブなプロセスが少ない場合でも、動作が遅くなります。

drbd:5時間の行き止まりの作業で、実際には両方のシステムにファイルシステムをマウントできないことに気づきました:-(

glusterfs:すべてのデータのローカルコピーを持つことは本当に有望に聞こえましたが、ランダムファイルアクセスは本当に遅く、しばらく実行すると、信じられないほど遅くなり、ほとんどハングします。 noatimeは役に立ちません。

再びnfs:まだ遅い。

キーボードに向かって泣く:まったく改善なし。

次に何を試すか?失敗した各トライアルは、先週の間に1晩かそれ以上かかったので、次の方法を実際に機能させたいと思います。そして、はい、ファイルシステムが両方のサーバー間で共有されることが重要です。

この問題に関する新しいアイデアをありがとう。

16
user3850506

これにはいくつかの可能な解決策があります:

  1. DRBD(または上記のMARS)のような複製されたブロックストレージを使用できますが、ブロックストレージの上にクラスターファイルシステムをセットアップする必要があります。そのようなファイルシステムは、GFS2またはOCFS2であり、どちらもDebianカーネルのafaikで使用できます。 DRBDはプライマリ/プライマリを処理でき、両方のサーバーに同時にマウントできます。しかし、標準のファイルシステムでこれを行うと、1つのサーバーが他のサーバーを認識せず、数秒でファイルシステムが破壊されます。上部のクラスターファイルシステムが通信とロックを処理するため、両方のノードが同じブロックに書き込むことができます。

  2. / homeには分散ファイルシステムを使用します。このようなファイルシステムのリストは http://en.wikipedia.org/wiki/Comparison_of_distributed_file_systems にあります。ただし、注意して賢明に選択してください。彼らはすべて魔法を使うことができず、すべてに欠点があります。 Glusterはそのようなファイルシステムです。一部のシステムでは、3つ以上のノードが必要になる場合があります。

  3. リアルタイムで複製する必要がなく、ほぼリアルタイムのファイル同期で十分な場合は、BitTorrent Sync( http://www.getsync.com/ )、Dropboxをご覧ください。または代替。各サーバーには独自の/ homeがありますが、変更はファイルベースで他のサーバーに複製されます。

3
mgabriel