5.5. リソースの動作

リソースに健全性を維持させるためリソースの定義にモニタリングの動作を追加することができます。モニタリングの動作を指定しないと、pcs コマンドはデフォルトでモニタリングの動作を作成します。モニタリングの間隔はリソースエージェントで確定されます。リソースエージェントでデフォルトのモニタリング間隔が提供されない場合は pcs コマンドにより 60 秒間隔のモニタリング動作が作成されます。
表5.4「動作のプロパティ」 にリソースのモニタリング動作のプロパティを示します。

表5.4 動作のプロパティ

フィールド説明
id
動作に固有となる名前、動作を設定するとシステムによって割り当てられる
name
実行する動作、一般的な値:monitorstartstop
interval
動作実行の頻度 (秒単位)、デフォルト値:0 (なし)
timeout
動作が失敗したことを示すまでの待機時間 (起動、停止および起動時の反復性のないモニタリング動作の実行などに時間がかかるリソースがシステムに含まれていることが確認され、起動動作に失敗したことを示すまでにシステムが許容している以上に時間を要する場合にはこの値をデフォルト値 20 または "op defaults" に指定されている timeout 値から増やします)
on-fail
この動作が失敗した場合に実行する動作、使用できる値:
* ignore - リソースが失敗していなかったように振る舞う
* block - リソースでこれ以上、一切の動作を行わない
* stop - リソースを停止して別の場所で起動しない
* restart - リソースを停止してから再起動する (おそらく別の場所)
* fence - 失敗したリソースがあるノードを STONITH する
* standby - 失敗したリソースがあるノード上の すべてのリソース を移動させる
STONITH が有効でblock に設定されていると stop 動作のデフォルトは fence になります。これ以外は restart にデフォルト設定されます。
enabled
false に設定するとその動作はないものとして処理される、使用できる値: truefalse
次のコマンドでリソースを作成するとモニタリングの動作を設定することができます。
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 create my_address IPaddr2 ip=10.20.30.40 cidr_netmask=24 op monitor 
また、次のコマンドで既存のリソースにモニタリング動作を追加することもできます。
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 op remove VirtualIP stop interval=0s timeout=20s
# pcs resource op add VirtualIP stop interval=0s timeout=40s

# pcs resource show 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)
モニタリング動作にグローバルのデフォルト値を設定する場合は次のコマンドを使用します。
pcs resource op defaults [options]
例えば、次のコマンドはすべてのモニタリング動作にグローバルデフォルトの timeout 値を 240s で設定しています。
# pcs resource op defaults timeout=240s
現在設定されているモニタリング動作のデフォルト値を表示させる場合はオプションを付けずに pcs resource op defaults コマンドを実行します。
例えば、次のコマンドは timeout が 240s で設定されているクラスターのモニタリング動作のデフォルト値を表示しています。
# pcs resource op defaults
timeout: 240s