1.6. Load Balancer Add-On — ブロックダイアグラム
LVS ルーターは複数プログラムの集合を使用してクラスターメンバーやクラスターサービスを監視します。図1.5「Load Balancer Add-On のコンポーネント」 では、各種プログラムがアクティブ LVS ルーターとバックアップ LVS ルーターの両方でクラスターを管理するためどのように動作しているかを示します。
図1.5 Load Balancer Add-On のコンポーネント
pulse
デーモンはアクティブ LVS ルーターとバックアップ LVS ルーターの両方で実行させます。バックアップルーター側の pulse
からアクティブルーターのパブリックインターフェースに対して ハートビート が送信され、アクティブルーターが正しく動作しているか確認が行われます。アクティブルーター側の pulse
は lvs
デーモンを開始してバックアップルーターからの ハートビート クエリーに応答します。
lvs
デーモンが開始されると、ipvsadm
ユーティリティが呼び出されカーネル内で IPVS ルーティングテーブルを設定し管理します。また、各実サーバーで設定されている各仮想サーバーに nanny
プロセスが開始されます。nanny
の各プロセスは任意の実サーバーで設定されている任意のサービスの状態をチェックし、そのサービスが誤動作していないか lvs
デーモンに伝えます。誤動作が検出されると、lvs
デーモンは IPVS ルーティングテーブルからその実サーバーを取り除くよう ipvsadm
に指示を出します。
バックアップルーター側でアクティブルーターから応答が受信できないと、バックアップルーターは
send_arp
を呼び出してすべての仮想 IP アドレスをバックアップノードの NIC ハードウェアアドレス (MAC アドレス) に再割り当てしてフェイルオーバーを開始します。アクティブルーターの lvs
デーモンをシャットダウンするコマンドがパブリックネットワークインターフェースとプライベートネットワークインターフェースの両方を経由してアクティブルーターに送信され、バックアップノードの lvs
デーモンが起動、設定されている仮想サーバーの要求の受け取りを開始します。
1.6.1. Load Balancer Add-On のコンポーネント
LVS ルーター内の各ソフトウェアコンポーネントの詳細を 「
pulse
」 に示します。
1.6.1.1. pulse
LVS ルーターに関連する他のすべてのデーモンを開始する制御プロセスです。このデーモンは起動時に
/etc/rc.d/init.d/pulse
スクリプトで起動され、設定ファイル /etc/sysconfig/ha/lvs.cf
を読み込みます。アクティブルーター側の pulse
により LVS デーモンが起動されます。バックアップルーター側の pulse
からユーザー設定が可能な間隔でシンプルなハートビートが実行されアクティブルーター側の健全性が確認されます。ユーザー設定された間隔を過ぎてもアクティブルーター側が応答できない場合、フェイルオーバーが開始されます。フェイルオーバー中、バックアップルーター側の pulse
からアクティブルーター側の pulse
デーモンに対してすべての LVS サービスをシャットダウンするよう指示が出され、フローティング IP アドレスをバックアップルーターの MAC アドレスに再割り当てするため send_arp
プログラムが開始、lvs
デーモンが起動されます。
1.6.1.2. lvs
lvs
デーモンは pulse
に呼び出されるとアクティブ LVS ルーターで稼働します。設定ファイル /etc/sysconfig/ha/lvs.cf
を読み込み、ipvsadm
ユーティリティを呼び出して IPVS ルーティングテーブルを構築し管理を行います。また、設定されている Load Balancer Add-Onの各サービスにそれぞれ nanny
プロセスを割り当てます。nanny
により実サーバーがダウンしていることが報告されると、lvs
より ipvsadm
ユーティリティに IPVS ルーティングテーブルからその実サーバーを削除するよう指示が出されます。
1.6.1.3. ipvsadm
カーネル内の IPVS ルーティングテーブルの更新を行います。
ipvsadm
を呼び出し IPVS ルーティングテーブル内のエントリーの追加、変更、削除を行うことで lvs
デーモンは Load Balancer Add-On の設定および管理を行っています。
1.6.1.4. nanny
nanny
監視デーモンはアクティブ LVS ルーター上で稼働します。このデーモンを使ってアクティブルーターは各実サーバーの健全性を確認、オプションでその負荷も監視します。各実サーバーで定義されているサービスごとに個別のプロセスが実行されます。
1.6.1.5. /etc/sysconfig/ha/lvs.cf
Load Balancer Add-On の設定ファイルです。直接または間接的にすべてのデーモンが設定情報をこのファイルから取得することになります。
1.6.1.6. Piranha Configuration Tool
Load Balancer Add-On の監視、設定、管理を行う Web ベースのツールです。Load Balancer Add-On の設定ファイル
/etc/sysconfig/ha/lvs.cf
管理用のデフォルトツールになります。
1.6.1.7. send_arp
フェイルオーバーの際、フローティング IP アドレスがあるノードから別のノードに変更されるとき、このプログラムにより ARP ブロードキャストが送信されます。
Red Hat Enterprise Linux を LVS ルーターに設定する前に行うべきインストール後の重要な設定手順については 2章Load Balancer Add-On の初期設定 で説明します。