第1章 ロードバランサーの概要

ロードバランサーは、複数の実サーバーの間で IP トラフィックを分散する統合されたソフトウェアコンポーネントです。Keepalived と HAProxy の 2 つの技術を使用してクラスターメンバーとクラスターサービスを監視します。Keepalived は Linux 仮想サーバー (LVS) を使用して負荷分散とフェイルオーバーのタスクをアティブルーターとパッシブルーターで実行します。一方、HAProxy は TCP および HTTP アプリケーションに対して負荷分散および高可用性サービスを実行します。

1.1. keepalived

keepalived デーモンは、アクティブおよびパッシブ LVS ルーターの両方で実行されます。keepalived で実行されるすべてのルーターは Virtual Redundancy Routing Protocol (VRRP) を使用します。アクティブルーターは定期的な間隔で VRRP アドバタイズメントを送信します。バックアップルーターが VRRP アドバタイズメントを正常に受信しなかった場合、新しいアクティブルーターが選出されます。
アクティブルーターでは、keepalived は実サーバーの負荷分散タスクも実行できます。
Keepalived は LVS ルーターに関連する制御プロセスです。起動時、デーモンは /etc/keepalived/keepalived.conf 設定ファイルを読み取る systemctl コマンドによって起動されます。アクティブルーターでは、keepalived デーモンは LVS サービスを開始し、設定されたトポロジーを基にサービスの健全性を監視します。アクティブルーターは VRRP を使用して周期的なアドバタイズメントをバックアップルーターへ送信します。バックアップルーターでは、VRRP インスタンスがアクティブルーターの稼働状況を判断します。ユーザーが設定した間隔の後にアクティブルーターのアドバタイズメントが失敗すると、Keepalived はフェイルオーバーを開始します。フェイルオーバー中に仮想サーバーがクリアになります。新しいアクティブルーターは 仮想 IP アドレス (VIP) を制御して、ARP メッセージを送信し、IPVS テーブルエントリー (仮想サーバー) を設定します。さらに、ヘルスチェックを開始し、VRRP アドバタイズメントの送信を開始します。
Keepalived は、TCP が接続ベースのデータ送信を実行するレイヤー4 (トランスポート層) でフェイルオーバーを実行します。実サーバーが単純なタイムアウト TCP 接続に応答しなかった場合、keepalived はサーバーの失敗を検出し、そのサーバーをサーバープールから削除します。