8.3. 接続状態変更によるリソースの移動

以下の 2 つのステップにしたがって、外部の接続が失われた場合にリソースが移動するようクラスターを設定します。
  1. ping リソースをクラスターに追加します。ping リソースは同じ名前のシステムユーティリティーを使用して、マシン (DNS ホスト名または IPv4/IPv6 アドレスによって指定される) にアクセス可能であるかをテストし、その結果を使用して pingd と呼ばれるノード属性を維持します。
  2. 接続が失われたときに別のノードにリソースを移動させるためのリソース場所制約を設定します。
表6.1「リソースのプロパティー」 では ping リソースに設定できるプロパティを示します。

表8.1 ping リソースのプロパティ

フィールド説明
dampen
さらに変化が起こった場合に備えて待機させる時間 (dampen)、ノードによって接続が失われたことを認識する時間にずれが生じた場合にクラスター内のノード間で何度も移動が行われないようにするための待機時間です
multiplier
接続している ping ノード数にこの値をかけてスコアを取得、ping ノードが複数設定されている場合に役立ちます
host_list
現在の接続状態を判断するために通信するマシン。許可される値には解決可能な DNS ホスト名、IPv4 および IPv6 アドレスが含まれます。ホストリストのエントリーはスペース区切りです。
次のコマンド例は、gateway.example.com への接続を検証する ping リソースを作成します。実際には、ネットワークゲートウェイやルーターへの接続を検証します。リソースがすべてのクラスターノードで実行されるよう、ping リソースをクローンとして設定します。
# pcs resource create ping ocf:pacemaker:ping dampen=5s multiplier=1000 host_list=gateway.example.com clone
以下の例は、Webserver という既存のリソースの場所制約ルールを設定します。これにより、Webserver リソースが現在実行されているホストが www.example.com へ ping できない場合に、 Webserver リソースを www.example.com へ ping できるホストに移動します。
# pcs constraint location Webserver rule score=-INFINITY pingd lt 1 or not_defined pingd