Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第2章 Keepalived の概要

Keepalived はアクティブ LVS ルーター や 1 つ以上の任意の バックアップ LVS ルーター で実行されます。アクティブ LVS ルーターには 2 つのロールがあります。
  • 複数の実サーバー全体の負荷分散
  • それぞれの実サーバー上にあるサービスの整合性チェック
アクティブ (マスター) ルーターは、Virtual Router Redundancy Protocol (VRRP) を使用してアクティブな状態をバックアップルーターに通知します。マスタールーターは、通常の間隔でアドバタイズメントを送信する必要があります。アクティブルーターがアドバタイズメントの送信を停止すると、新しいマスターが選出されます。
注記
Red Hat は、使用する VRRP バージョンをその設定が変更する keepalived のローリング更新をサポートしていません。すべてのルーターは、keepalived ロードバランサー設定で同じバージョンの VRRP を実行している必要があります。VRRP バージョンの不一致により、次のメッセージが表示されます。
Aug  3 17:07:19 hostname Keepalived_vrrp[123]: receive an invalid ip number count associated with VRID!
Aug  3 17:07:19 hostname Keepalived_vrrp[123]: bogus VRRP packet received on em2 !!!
Aug  3 17:07:19 hostname Keepalived_vrrp[123]: VRRP_Instance(vrrp_ipv6) ignoring received advertisment...
Red Hat は、互換性の問題を回避するために、すべてのシステムで同じ keepalived バージョンを実行し、可能であれば keepalived 設定を同一にする必要があります。

2.1. 基本的な Keepalived ロードバランサーの設定

図2.1「基本的なロードバランサー設定」 は、2 層で設定されるシンプルな Keepalived ロードバランサー設定を示しています。第 1 層には、1 つのアクティブ LVS ルーターと、複数のバックアップ LVS ルーターがあります。各 LVS ルーターには、インターネット上とプライベートネットワーク上にそれぞれ 1 つのネットワークインターフェイスがあり、これらのネットワーク間のトラフィックを調整できるようになっています。この図の例では、アクティブルーターはネットワークアドレス変換 (Netowrk Address Translation、NAT) を使用してインターネットから第 2 層にある実サーバーへトラフィックを移動し、必要なサービスを提供します。そのため、この例の実サーバーは専用のプライベートネットワークセグメントに接続され、アクティブ LVS ルーターを介してすべてのパブリックトラフィックを送受信します。外部では、サーバーは 1 つのエンティティーのように見えます。

図2.1 基本的なロードバランサー設定

基本的なロードバランサー設定
LVS ルーターへ送信されたサービス要求は仮想 IP アドレス (VIP) 宛になります。このアドレスはパブリックにルーティング可能なアドレスで、サイトの管理者が www.example.com などの完全修飾ドメイン名を関連付けし、1 つ以上の仮想サーバーへ割り当てます。仮想サーバーは、特定の仮想 IP でリッスンするよう設定されたサービスです。VIP アドレスはフェイルオーバー中に、ある LVS ルーターから別の LVS ルーターに移行するため、その IP アドレスで存在を維持します。VIP はフローティング IP アドレスとも呼ばれます。
LVS ルーターをインターネットに接続するデバイスに VIP アドレスが割り当てられることがあります。たとえば、eth0 がインターネットに接続されている場合、複数の仮想サーバーを eth0 に割り当てることができます。この代わりに、各仮想サーバーをサービスごとに個別のデバイスへ関連付けることができます。たとえば、HTTP トラフィックを 192.168.1.111 の eth0 で処理し、FTP トラフィックを 192.168.1.222 の eth0 で処理することができます。
1 つのアクティブなルーターと 1 つのパッシブなルーターが関係するデプロイメントの場合、アクティブサーバーの役目は仮想 IP アドレスから実サーバーへサービス要求をリダイレクトすることです。リダイレクトは、「keepalived スケジューリングの概要」 で詳しく説明している 8 つの負荷分散アルゴリズムのいずれかを基にしています。
アクティブルーターは、シンプルな TCP 接続、HTTP、および HTTPS の 3 つのビルトインヘルスチェックを使用して実サーバーで特定サービスの全体的な健全性を動的に監視します。TCP 接続では、アクティブルーターは特定のポートで実サーバーに接続できることを周期的にチェックします。HTTP および HTTPS では、アクティブルーターは周期的に実サーバーの URL をフェッチし、コンテンツを検証します。
バックアップルーターはスタンバイシステムのロールを担います。ルーターのフェイルオーバーは VRRP によって処理されます。起動時、すべてのルーターはマルチキャストグループに参加します。このマルチキャストグループは、VRRP アドバタイズメントの送受信に使用されます。VRRP は優先度ベースのプロトコルであるため、優先度が最も高いルーターがマスターとして選出されます。ルーターがマスターとして選出されると、定期的な間隔で VRRP アドバタイズメントをマルチキャストグループへ送信します。
一定の期間内 (アドバタイズメントの間隔を基にした) にバックアップルーターがアドバタイズメントを受信しなかった場合、新しいマスターが選出されます。新しいマスターは VIP を引き継ぎ、アドレス解決プロトコル (Address Resolution Protocol、ARP) メッセージを送信します。ルーターがアクティブなサービスを返すと、バックアップまたはマスターになります。この動作はルーターの優先度によって決まります。
図2.1「基本的なロードバランサー設定」 で使われているシンプルな 2 層設定は、静的な Web ページのように頻繁に変更されないデータに適しています。これは、個別の実サーバーは各ノード間で自動的にデータを同期しないためです。