Linuxには、複数のホスト間のフェイルオーバー用の仮想IPを提供するためのオプションがたくさんあるようです。私が見つけたのは、ハートビート、vrrpd、コイ、そしてkeepalivedです。
Linuxでは、ハートビートの経験しかありません(CiscoでHSRPを使用したことがあります)。 LAN上のホストのゲートウェイとなる仮想IPを提供する場合、これらのさまざまなオプションには特別な利点がありますか。私が欲しい機能の1つは、別のインターフェイスを追跡する機能です。したがって、たとえば、仮想IPがサーバーAのeth0とサーバーBのeth0の間で共有されている場合、eth1がダウンしたことを検出した場合に、別のサーバーにフェイルオーバーできるようにしたいと思います。また、優先ホストを設定できるようにしたいと思います。
ハートビートで私が見つけた主な利点の1つは、複数のモニタリングポイントを持つようにハートビートをカスタマイズできることです。デフォルトの推奨構成に従って、シリアルアップリンクとネットワークモニタリングの間に複数のモニタリングポイントがあります。
たとえば、ハートビートリソーススクリプトを作成してデーモンを監視し、デーモンに障害が発生した場合にフェイルオーバーを開始できます。
CARPはHSRPに基づいており、HSRPは、識別したとおり、インターフェイスを監視します。これには確かに場所があり、私はテクノロジーが好きですが、サーバーの役割によっては、ハートビートが有利であることがわかる場合があります。
これをサポートしていないプロトコルでも、動作の一部を模倣するようにスクリプトを記述している可能性があると主張できると思います。これは基本的に、ハートビートで説明したものです。
私はkeepalivedを使用したことはありませんが、LVSホストを監視し、障害が発生した場合にそれらをVIP)から削除するという点で、ldirectordに似ているようです。これは正確ではないと思います。ハートビートまたはCARPと同じカテゴリ。
Httpgetなどのサービス可用性テストに基づいてラウンドロビンするスイッチ/ロードバランサーベースのVIPを使用します。これにより、サーバーの負荷と責任がなくなります。それぞれが応答するのは自分だけだと考えています。次に、実際のクラスター(Oracle、WebLogic、ZXTMなど)の場合、同じモデルが当てはまりますが、クラスタリングアプリケーション自体がサーバーが相互に接続していることを確認しますが、クライアントに面するIPは引き続き「通常の」IPです。基本的に、「通常の」IP以外の理由は見つかりませんでしたが、計画されているユースケースを知りたいと思います。次に、スイッチ/ LBを使用して、サービス中/サービス停止中のサーバーを定義できます。
フェイルオーバーは最悪です-何かが失敗するまで、フェイルオーバーが機能するかどうかはわかりません。 Chopper3のように、可能であれば、常に負荷分散を使用します。
C。