Ldirectord

「Ldirectord」の動作

「Ldirectord」は、実サーバの故障の監視と故障したサーバを切り離す役割を持っています。「Ldirectord」は「LVS」によるロードバランサ上で動作するPerlスクリプトです。「Ldirectord」は「Ldirectord」起動時や、実サーバの故障・復旧を検出した時にipvsadmコマンドを内部から呼び出すことで「LVS」の初期設定や設定変更を行います。

故障監視

Ldirectordでは実サーバが正しく機能しているかどうかをチェックするための方法とし て、以下の1、2、3のいずれかを選択することができます。

 

  1. 実サーバ上のサーバプロセスに何らかのリクエストを発行し、サーバの応答に指定した文字列が含まれるかどうかをチェック
  2. 実サーバ上のサーバプロセスに対しコネクションを張れるかどうかをチェック
  3. 1 と 2 の組み合わせ。2 によるチェックをn回行ったあと、1回 1 によるチェックを行う。

チェック方法からわかる通り、「ldirectord」では実サーバの生死を監視するのではなく、実サーバ上で動作しているサービスが正しく提供されているかを監視します。
1 による故障監視の方法は、監視するサーバのプロトコルごとに、違った監視方法が必要となり、監視可能なサービスの種類が限られています。しかし、2 の方法に比べ、サーバが正しく動作しているかをより厳密に監視することが可能です。1 の監視方法としてHTTPおよびHTTPSもサポートされているので、実サーバがWebサーバである場合には、1 による監視方法を用いることができます。
2 による監視方法は、1 による監視方法よりも精度の面で劣るものの、実サーバへの負荷が小さい監視方法です。さらに、基本的にほとんどのTCPを用いたサービスに対して使用することが可能になっています。

故障切り離し

「Ldirectord」による故障サーバの切り離し処理は、「Ldirectord」がipvsadmコマンドを実行することによって実行されます。「Ldirectord」は、故障が検出された実サーバにクライアントからのリクエストを、スケジュールに組み込まないようにします。一度故障が検出され、切り離された実サーバは継続して監視されます。実サーバが故障から復旧し、正常動作に戻った際に「Ldirectord」は、復旧した事を検出し、再度その実サーバにがスケジュールに組み込まれるように、ipvsadmコマンドを用いて設定を変更します。