9.2 High Availability

可用性の高いLinux Virtual Serverクラススタを構築するには、このソフトウェアの内蔵機能を使用できます。一般に、ロードバランサでサービスモニタデーモンが実行され、定期的にサーバヘルスをチェックします。特定時間内に、サーバからサービスアクセス要求またはICMP ECHO_REQUESTに対する応答がない場合、サービスモニタは、サーバがダウンしたとみなし、ロードバランサにある使用可能なサーバのリストから、そのサーバを削除します。したがって、この機能しないサーバには新しい要求が送信されなくなります。サービスモニタは、ダウンしていたサーバが回復し、再度機能していることを検出すると、そのサーバを使用可能サーバリストに戻します。したがって、ロードバランサは、自動的に、サービスデーモンまたはサーバの障害をマスクできます。

さらに、管理者は、システムサービス全体を停止することなく、システムツールを使用して、システムスループットの増大のために新しいサーバを追加したり、システム保守のためにサーバを削除したりできます。

ロードバランサをシステム全体のシングルポイント障害にしないためには、ロードバランサのバックアップ(場合によっては複数のバックアップ)をセットアップする必要があります。そこで、2つのハートビートデーモンがプライマリとバックアップで実行されます。それらは、定期的に、シリアル回線および/またはネットワークインタフェースを介して、I'm aliveメッセージをハートビートとして交換します。バックアップのハートビートデーモンは、特定時間内にプライマリからの ハートビートメッセージを聞くことができないと、負荷分散サービスを提供するため、仮想IPアドレスを引き継ぎます。

障害の発生したロードバランサが回復した場合は、その結果として、2つの可能性があります。つまり、障害から回復したロードバランサが自動的にバックアップロードバランサになるか、アクティブなロードバランサがVIPアドレスを解放し、回復したロードバランサがそのVIPアドレスを引き継いで再びプライマリロードバランサになるかです。プライマリロードバランサは、接続の状態を保持しています。つまり、プライマリは、接続の転送先サーバを知っています。その接続情報なしで、バックアップのロードバランサが処理を引き継ぐと、クライアントは、サービスにアクセスするため、要求を再度送信しなければなりません。クライアントアプリケーションに対してロードバランサのフェールオーバーをトランスペアレントにするため、IPVSでは接続の同期を行います。つまり、プライマリのIPVSロードバランサが、UDPマルチキャストを介して、バックアップのロードバランサと接続情報を同期します。プライマリロードバランサに障害発生後、バックアップロードバランサが処理を引き継いだ場合、バックアップロードバランサには大半の接続の状態が保持されています。したがって、ほとんどすべての接続が、バックアップロードバランサを介して、引き続きサービスにアクセスできます。