web-dev-qa-db-ja.com

優れたNFSマルチパスソリューション

NFSを介して複数のWebファームにまったく同じコンテンツを提供するサーバーがいくつかあり、関係するすべてのサーバーがCentOS5を実行しています。

両方のNFSサーバー間のコンテンツは、Unisonを使用して複製されます(過去にdrbdを試したが、パフォーマンスが大幅に低下した)

負荷を分散するために、各ファームから異なるNFSサーバーをマウントしています。

  • Webfarm1はNFS1をマウントします
  • Webfarm2はNFS2をマウントします

私が抱えている唯一の問題は、サーバーの1つがクラッシュしたときに、サーバーが回復するまで他のNFSサーバーからコンテンツを自動的に再マウントし、猶予期間後に最初のサーバーに戻ることです。

そのようなアプリケーションを書き始める前に、私が意図していることに近いことを行うオープンソースソリューションがすでに利用可能かどうかを知りたいのですが、アプリケーションのすべてのインテリジェンスはクライアント側にある必要があります(サーバー側のソリューションはすべてテストされ、アクティブ-アクティブソリューションで両方のNFSサーバーを使用したいので、破棄されました(heartbeat、drbdなど)。

また、Webファーム内のすべてのサーバーが同じNFSサーバーにアクセスしていることも重要です。そうしないと、いくつかの厄介なレプリケーションの問題が発生します。

よろしくお願いします!

3
lynxman

RedHat Cluster Suite NFSクックブック 、字幕付きの「フェイルオーバー機能を備えたLoadBalancedNFSクラスターのセットアップ」をご覧ください。それがあなたが探しているものと正確に一致しない場合、これはいくつかの良い提案があるかもしれないと思います。

そのドキュメントに示されているアイデアを取り入れて、Pacemaker/Corosyncを使用して実装できます。これは、従来のRedHatクラスターツールよりもはるかに簡単に操作できます。

基本的に、自動フェイルオーバーを備えたアクティブ/アクティブクラスターを求めています。データの2つの独立した(ただし同期された)コピーから提供しているため、実際に作成しようとしている場合に発生する複雑な問題(ロックやその他の状態の同期を含む)のほとんどを実際に回避しました。 NFSフロントエンドをある種の共有ストレージ(GFSなどのクラスターファイルシステムなど)に負荷分散します。

2
larsks

[〜#〜] ctdb [〜#〜] を使用してこれを行うことができます。それ NFSをサポート 正しいファイルロック動作とロック回復を備えています。また、これはactive-activeソリューションです。つまり、すべてのNFSサーバーが同時にアクティブになり、クライアントはサービスIPアドレス(DNSラウンドロビン)を介してサーバーにアクセスします。サービスIPアドレスは、サーバー間を移動できます。ノード障害の。

ただし、a)はサーバー側ソリューションであり、b)はクラスターファイルシステムが必要です。 [〜#〜] gpfs​​ [〜#〜]または[〜#〜] gfs [〜#〜](これはOTOHユニゾンソリューションと比較して利点になる可能性があります)。

1
knweiss