フェイルオーバーの実装で仮想IPがどのように機能するかについていくつか質問があります。目標は、TCPサーバーで実行されているサービスの高可用性を実現することです。
問題は簡単に説明できます。
質問:
プライマリサーバーを実行しているマシンAが停止したとします。マシン1の仮想IPソフトウェアはどのように機能しますか?マシンBのバックアップサーバーにリダイレクトするには、クライアントを再接続する必要がありますか?このマシン/接続スイッチは透過的に発生しますか?
仮想IPはソフトウェアまたはハードウェアを介して実装されていますか?使用/テストできるソフトウェアソリューションの例を教えてください。
仮想IPソフトウェアが単一障害点であるのはどうですか?マシン1が死んだ場合はどうなりますか?仮想IPソフトウェア自体に、ある種のフェイルオーバー/高可用性機能がありますか?
いくつかの用語と技術を明確にする必要があります。
表示されている画像は「ロードバランサー」の画像です。技術的には、ロードバランサーには通常、1つ以上の「バックエンド」サーバーに接続する1つ以上の「フロントエンド」IPアドレスがあります。これらのフロントエンドIPアドレスは「仮想IP」ではありません。
仮想IPについて話すときは、サーバークラスタリングについて話します。サーバークラスタリングでは、ロードバランサーはありません。代わりに、クラスター内のすべてのサーバーが同じIPアドレスを想定します。彼らはハートビートでお互いを監視し、共有するIPアドレスの要求にどのサーバーが応答するかを決定します。
これで、明らかに、1つ以上のIPアドレスを共有するクラスター化されたロードバランサーを作成できます。
だからここにいくつかの答えがあります:
1)マシン1は「仮想IP」ソフトウェアを実行していません。 「負荷分散」ソフトウェアを実行します。サーバーがダウンしたときにクライアントに何が起こるかは、ロードバランサーの構成とバックエンドアプリケーションの機能に完全に依存します。ステートレスバックエンド、または状態共有をもたらす共有ストレージがある場合、一方のサーバーに障害が発生すると、ユーザーは通常、セッションを中断することなく、もう一方のサーバーにシームレスに接続します。実際、このシナリオでは、クライアントが行う各要求は、同じセッション中であっても、実際には両方のサーバー間で負荷分散を行う可能性があります。その他の場合、ステートフルネスは共有されず、ユーザーは他のサーバーへの新しいセッションを開始する必要があります。
2)繰り返しますが、これは仮想IPではありません。仮想IPはクラスタリングテクノロジーです。ロードバランサーは、実際の物理的な設定に応じて、複数の公開IPアドレスを持つことができます。これは、ハードウェアまたはソフトウェアの両方で実行できます。ソフトウェアまたはハードウェアに関する特定の推奨事項は、ServerFaultの範囲外です。あなたはそのためにグーグルを使うことができます。
3)はい、ロードバランサーは単一障害点になる可能性があります。ロードバランサーがダウンすると、すべてがダウンします。真の高可用性を実装するには、多くのお金と技術的なノウハウが必要です。今日のクラウドコンピューティングの世界では、これはMicrosoftAzureやAmazonAWSなどのプロに任せるのが最善です。それらは、高可用性の冗長システムを実装しており、汚れを安くリースすることができます。
高可用性に関しては、すべての障害点を考慮する必要があります。
これには以下が含まれますが、おそらくこれらに限定されません。
だから、長い話は短い。図面で説明されているシナリオは、高可用性環境を提供することに遠くはありません。