HAProxyでのKeepalivedを使用したロード・バランシングの拡張
Keepalivedは、バックアップ・ルーターにフェイルオーバー・サービスを提供できますが、同時にHAProxyを使用してロード・バランシングを行い、分散サーバー間の高可用性を実現します。 この方法の利点は、パケット・レイヤーとアプリケーション・レイヤーが分離されていることです。つまり、ロード・バランシング・サーバーに対してKeepalivedによって実行されるヘルス・チェックは、HAProxyが管理しているインバウンドHTTPまたはTCPトラフィックによって影響を受けません。 また、VRRPを使用して実現されるフェイルオーバー・ルーティングは、クライアントのレスポンスがタイムアウトするのを待たずに、自動的にアクティブ化できます。 VRRPの有用性の詳細は、「VRRPでのKeepalivedの使用」を参照してください。
この方法の使用が現実的であるのは、パブリック対応のHAProxyロード・バランサがオフラインになった場合、Keepalivedによってこのイベントが自動的に検出され、別のHAProxyサーバーに動的に切り替えられるという点です。 Keepalivedプライマリ・ルーターがオフラインになると、設定したVRRP設定により、トラフィックは自動的にKeepalivedバックアップ・ルータで処理されます。
設定におけるHAProxyの役割は、インバウンド・ロード・バランシングおよびセッション永続性をバックエンド・サーバーに提供することです。Keepalivedは、HAProxyのステータスの監視と代替ルーティング・メカニズムの提供のみを実行します。 両方のツールを組み合せて使用すると、可用性が高く、自己回復性を備えたロード・バランシング・ソリューションが得られます。
次の手順は「NATモードでのロード・バランシングの設定」と似ていますが、この場合、HAProxyはKeepalivedプライマリ・サーバーとKeepalivedバックアップ・サーバーの両方にインストールされます。
この手順では、外部仮想IPアドレスは192.168.1.0/24外部ネットワーク上の192.168.1.1です。 このIPアドレスは、NATを介して、IPアドレスが192.168.1.10のKeepalivedプライマリ・サーバーと外部IPアドレスが192.168.1.11のKeepalivedバックアップ・サーバーの間に動的に割り当てられます。
内部ネットワークは、10.0.0.0/24サブネットでホストされます。 IPアドレスの場合、websvr1には10.0.0.71、websvr2には10.0.0.72があります。
図3-2 高可用性ロード・バランシングのためのKeepalivedおよびHAProxy構成
