web-dev-qa-db-ja.com

高可用性/フェイルオーバーハードウェアへの接続

クラスタリングと高可用性の手法について学び、レプリケーションにDRBDを使用し、監視とフェイルオーバーにハートビートを使用して、サーバーのペアでネットワークを構成することについての記事に出くわしました。この記事では、各サーバーに2つのNICが必要であると述べています。両方のeth0はLANに接続し、両方のeth1は次の画像のようにクロスケーブルを介して相互に接続する必要があります。

http://i.stack.imgur.com/8BAm6.jpg

記事の画像の説明:

自動フェイルオーバーを確実にするために、ハートビートは次のようにプライマリサーバーを監視します。1。セカンダリサーバーは、2つのサーバーを接続するクロスケーブルを介してプライマリサーバーへの接続を継続的に監視します。プライマリにアクセスできない場合、セカンダリはプライマリステータスになります。 2.プライマリサーバーは、ルーターなどの高可用性ネットワークデバイスへの接続を継続的に監視します。ネットワークデバイスにアクセスできない場合は、セカンダリサーバーに制御を放棄します。したがって、次のシナリオの場合、フェイルオーバーは自動的に行われます。1。プライマリのネットワークフェイルオーバー2.電源、CPU、RAMなど)などのハードウェア障害。

これは次の質問を提起しました:

セカンダリ/パッシブサーバーのハートビートがeth1を介してプライマリを監視している場合、いずれかのサーバーでeth1に障害が発生するとどうなりますか?

ハートビートはプライマリが死んでいると考え、セカンダリをアクティブにするように思えます。これは「スプリットブレイン」状態を作り出しませんか?プライマリサーバーはまだeth0を介してLANに接続されて機能しているため、壊れたのはハートビート/レプリケーションリンク(eth1)だけでした。では、2つのアクティブなサーバーが同時に存在するのでしょうか。

私はまだ概念を理解しています、私がナンセンスを話しているなら失礼します。

2
Fractalizer

あなたが読んでいる記事はおそらく長い間古くなっています。リソース管理(フェイルオーバー時のリソースの停止と開始)にHeartbeatを使用することは、2008年頃から非推奨になりました。 Pacemaker は、Linux-HAリソース管理の新しい標準ソリューションです。ただし、Pacemakerには、クラスター通信を処理するための何かが必要です。通信レイヤーには、引き続き Heartbeat を使用できますが、最近最も人気のあるソリューションは Corosync です。

あなたの最初の質問に関しては、簡単な答えは、はいです。クラスタ通信を伝送しているネットワークを中断すると、STONITHを使用しない限り、スプリットブレインが発生する可能性がありますどちらを使用する必要がありますか!。 STONITHが必要な理由に関する優れた記事は ここ および ここ にあります。

STONITHは別として、HeartbeatとCorosyncの両方が冗長リンク/ネットワークをサポートしています。つまり、複数のインターフェースを利用して、単一のインターフェースの障害がクラスター通信に干渉しないようにすることができます。

お役に立てれば!

2
Dok