LVSルータは、プログラムの集合体を使用して、クラスタメンバーとクラスタサービスを監視します。図9-4は、これらのプログラムが、アクティブLVSルータとバックアップLVSルータの両方で一緒に機能することにより、クラスタの管理を実現する仕組みを示しています。
pulseデーモンは、アクティブLVSルータとバックアップLVSルータの両方で稼働します。バックアップルータ上では、pulseデーモンは、ハートビートをアクティブルータの公衆ネットワーク用インターフェイス宛に送信し、アクティブルータが正常に機能し続けているか確認します。アクティブルータ上では、pulseデーモンはlvsデーモンを起動し、バックアップLVSルータからのハートビート照会に応答します。
起動されると、lvsデーモンは、ipvsadmユーティリティを呼び出してカーネル内のIPVSルーティングテーブルを構築および保守し、各リアルサーバー上の各仮想サーバー用のnannyプロセスを起動します。各nannyプロセスは、リアルサーバー上に設定されている1つのサービスの状態を検査し、リアルサーバー上のサービスが正常に機能していない場合は、lvsデーモンに通知します。機能不全が検出された場合、lvsデーモンはipvsadmに対し、 IPVSルーティングテーブルからそのリアルサーバーを削除するよう命令します。
バックアップルータは、アクティブルータから応答を受信しなかった場合、send_arpを呼び出すことによりフェイルオーバーを初期化し、すべての仮想IPアドレスを、バックアップノードのNICハードウェアアドレス(MACアドレス)に再割り当てします。続いて、公衆ネットワークインターフェイス経由と私設ネットワークインターフェイス経由の両方でアクティブルータにコマンドを送信して、アクティブルータ上のlvsデーモンを停止させ、バックアップノード上のlvsデーモンを起動して、仮想サーバーに設定されている要求を受け付けます。
項9.6.1.1は、LVSルータの各ソフトウェアコンポーネントの詳細一覧です。
LVSルータに関連する他のすべてのデーモンを起動する制御プロセスです。ブート時に、pulseデーモンは/etc/rc.d/init.d/pulseスクリプトによって起動されます。起動されると、設定ファイル/etc/sysconfig/ha/lvs.cfを読み込みます。アクティブルータ上では、pulseデーモンはLVSデーモンを起動します。バックアップルータ上では、pulseデーモンはアクティブルータの稼働状況を、単純なハートビートをユーザー設定可能な間隔で実行することにより調べます。アクティブルータが、ユーザー設定された時間が経過した後も応答しない場合、pulseデーモンはフェイルオーバーを初期化します。フェイルオーバー処理時に、バックアップルータ上のpulseデーモンは、アクティブルータ上のpulseデーモンに、すべてのLVSサービスの停止を命令し、send_arpプログラムを起動して浮動IPアドレスをバックアップルータのMACアドレスに再割り当てしてからlvsデーモンを起動します。
lvsデーモンは、pulseデーモンによって1度 呼び出されるとアクティブLVSルータ上で起動します。設定ファイル/etc/sysconfig/ha/lvs.cfを読み込んでipvsadmユーティリティを呼び出し、IPVSルーティングテーブルを構築および保守し、 設定されている各LVSサービスにnannyプロセスを割り当てます。 nannyがリアルサーバーの停止状態をレポートした場合、 lvsはipvsadmユーティリティに、その リアルサーバをIPVSルーティングテーブルから削除するよう命令します。
このサービスは、カーネル内のIPVSルーティングテーブルを更新します。lvsデーモンは、ipvsadmを呼び出してIPSルーティングテーブル内のエントリを追加、変更、削除することにより、LVSクラスタのセットアップと管理を行います。
監視デーモンnannyは、アクティブLVSルータ上で稼働します。このデーモンを使って、アクティブルータは各リアルサーバーの稼働状況を調べ、設定されている場合はリアルサーバーの負荷も監視します。各リアルサーバーに定義されているサービスごとに、別のプロセスが稼働します。
Webベースのツールで、LVSクラスタの監視、設定、管理に使用します。 このツールが/etc/sysconfig/ha/lvs.cf LVSクラスタ設定ファイルを保守するデフォルトのツールです。
このプログラムは、浮動IPアドレスがフェイルオーバー処理時に1つのノードから別のノードに変わった時点で、ARPブロードキャストを送信します。
第10章では、LVSルータとしてRed Hat Enterprise Linuxを設定する前に、 行う必要があるインストール後の設定ステップについて検討します。