第21章 リソースの監視操作

リソースを健全な状態に保つために、リソースの定義に監視操作を追加できます。リソースの監視動作を指定しないと、デフォルトでは、pcs コマンドにより監視動作が作成されします。監視の間隔はリソースエージェントにより決定します。リソースエージェントでデフォルトの監視間隔が提供されない場合は、pcs コマンドにより 60 秒間隔の監視動作が作成されます。

以下の表には、リソースの監視動作のプロパティーをまとめています。

表21.1 動作のプロパティー

フィールド説明

id

動作の一意の名前。システムは、操作を設定する際に、これを割り当てます。

name

実行する動作。一般的な値は、monitorstartstop です。

interval

値をゼロ以外に設定すると、この周波数で繰り返される反復操作 (秒単位) が作成されます。ゼロ以外の値は、アクション monitor に設定されている場合に限り有効になります。監視の反復アクションは、リソースの起動が完了するとすぐに実行し、その後の監視アクションの開始は、前の監視アクションが完了した時点でスケジュールされます。たとえば、interval=20s の監視アクションを 01:00:00 に実行すると、次の監視アクションは 01:00:20 ではなく、最初の監視アクションが完了してから 20 秒後に発生します。

この値を、デフォルト値であるゼロに設定すると、このパラメーターで、クラスターが作成した操作に使用する値を指定できます。たとえば、interval をゼロに設定し、操作の namestart に設定し、timeout 値を 40 に設定すると、Pacemaker がこのリソースを開始する場合に 40 秒のタイムアウトを使用します。monitor 操作の間隔をゼロに設定した場合は、システムの起動時に Pacemaker が行うプローブの timeout/on-fail/enabled を設定して、デフォルトが望ましくない場合に、すべてのリソースの現在のステータスを取得できます。

timeout

このパラメーターで設定された時間内に操作が完了しないと、操作を中止し、失敗したと見なします。デフォルト値は、pcs resource op defaults コマンドで設定した場合は timeout 値、設定していない場合は 20 秒 です。システムで操作 (startstopmonitor など) の実行に許可されている時間よりも長い時間が必要なリソースがシステムに含まれている場合は、原因を調査して、実行時間が長いと予想される場合は、この値を増やすことができます。

timeout 値はいかなる遅延でもありません。また、タイムアウト期間が完了する前に操作が戻ると、クラスターはタイムアウト期間が終わる前に待機を終了します。

on-fail

この動作が失敗した場合に実行する動作。設定できる値は以下のとおりです。

* ignore - リソースが失敗していなかったように振る舞う

* block - リソースでこれ以上、一切の操作を行わない

* stop - リソースを停止して別の場所で起動しない

* restart - リソースを停止して、(おそらく別の場所で) 再起動する

* fence - 失敗したリソースがあるノードを STONITH する

* standby - 失敗したリソースがあるノード上の すべて のリソースを移行する

* demote - リソースの promote アクションに失敗した場合にリソースは降格されますが、完全に停止されません。リソースの monitor アクションが失敗した場合、interval がゼロ以外の値に設定され、rolePromoted に設定されている場合、リソースは降格されますが、完全に停止されません。

STONITH が有効な場合、stop 動作のデフォルトは fence になります。そうでない場合は block となります。その他のすべての操作は、デフォルトで restart です。

enabled

false の場合、操作は存在しないものとして処理されます。使用できる値は true または false です。

21.1. リソースの監視動作の設定

次のコマンドでリソースを作成すると、モニタリング操作を設定できます。

pcs resource create resource_id standard:provider:type|type [resource_options] [op operation_action operation_options [operation_type operation_options]...]

たとえば、次のコマンドは、監視操作付きの IPaddr2 リソースを作成します。新しいリソースには VirtualIP という名前が付けられ、eth2 で IP アドレス 192.168.0.99、ネットマスク 24 になります。監視操作は、30 秒ごとに実施されます。

# pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.99 cidr_netmask=24 nic=eth2 op monitor interval=30s

また、次のコマンドで既存のリソースに監視操作を追加することもできます。

pcs resource op add resource_id operation_action [operation_properties]

設定されているリソース操作を削除する場合は、次のコマンドを使用します。

pcs resource op remove resource_id operation_name operation_properties
注記

操作プロパティーを正しく指定して、既存の操作を適切に削除する必要があります。

監視オプションの値を変更する場合は、リソースを更新します。たとえば、以下のコマンドで VirtualIP を作成できます。

# pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.99 cidr_netmask=24 nic=eth2

デフォルトでは、次の操作が作成されます。

Operations: start interval=0s timeout=20s (VirtualIP-start-timeout-20s)
            stop interval=0s timeout=20s (VirtualIP-stop-timeout-20s)
            monitor interval=10s timeout=20s (VirtualIP-monitor-interval-10s)

stop の timeout 操作を変更するには、以下のコマンドを実行します。

# pcs resource update VirtualIP op stop interval=0s timeout=40s

# pcs resource config VirtualIP
 Resource: VirtualIP (class=ocf provider=heartbeat type=IPaddr2)
  Attributes: ip=192.168.0.99 cidr_netmask=24 nic=eth2
  Operations: start interval=0s timeout=20s (VirtualIP-start-timeout-20s)
              monitor interval=10s timeout=20s (VirtualIP-monitor-interval-10s)
              stop interval=0s timeout=40s (VirtualIP-name-stop-interval-0s-timeout-40s)