Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

6.6. リソースの動作

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

表6.4 動作のプロパティー

フィールド説明
id
動作の一意の名前。システムは、操作を設定する際に、これを割り当てます。
name
実行する動作。一般的な値: monitorstartstop
interval
値をゼロ以外に設定すると、この周波数で繰り返される反復操作 (秒単位) が作成されます。ゼロ以外の値は、アクション monitor に設定されている場合にのみ有効です。監視の反復アクションは、リソースの起動が完了するとすぐに実行し、その後の監視アクションの開始は、前の監視アクションが完了した時点でスケジュールされます。たとえば、interval=20s を持つ monitor アクションが 01:00:00 で実行されている場合、01:00:20 では次の監視アクションは発生しませんが、最初の監視アクションの完了後に 20 秒後に実行されます。
この値を、デフォルト値であるゼロに設定すると、このパラメーターで、クラスターが作成した操作に使用する値を指定できます。たとえば、interval をゼロに設定し、操作の 名前start に設定され、タイムアウト 値が 40 に設定されている場合、Pacemaker はこのリソースの起動時に 40 秒のタイムアウトを使用します。monitor 操作の間隔がゼロの場合、起動時に Pacemaker が行うプローブの タイムアウト/on-fail/enabled 値を設定し、デフォルトが望ましくない場合に、すべてのリソースの現在のステータスを取得できます。
timeout
このパラメーターで設定された時間内に操作が完了しないと、操作を中止し、失敗したと見なします。デフォルト値は、pcs resource op defaults コマンドで設定した場合は timeout の値です。設定されていない場合は 20 秒になります。システムが操作( startstop、または monitorなど)の実行を許可する時間よりも長い時間を必要とするリソースがシステムに含まれている場合は、原因を調査し、実行時間が長い場合はこの値を増やすことができます。
timeout 値はいずれの遅延でもなく、タイムアウト期間が完了する前に操作が戻ると、クラスターはタイムアウト期間全体を待つことはありません。
on-fail
この動作が失敗した場合に実行する動作。設定できる値は以下のとおりです。
* ignore - リソースが失敗しなかったことを追加します。
* block - リソースに対してそれ以上の操作を実行しません。
* stop - リソースを停止し、別の場所で起動しないようにします
起動 - リソースを停止し、再起動します(別のノードにある可能性があります)。
* fence - リソースが失敗したノードである STONITH
* standby - リソースが失敗したノードから すべて のリソースを移動します。
migrate: 可能であれば、リソースを別のノードに移行します。これは、migration-threshold リソースのメタオプションを 1 に設定するのと同じです。
STONITH が有効な場合は、stop 操作のデフォルトは fence で、それ以外は block となります。その他のすべての操作は、デフォルトで restart です。
enabled
false の場合、操作は存在しないものとして処理されます。使用できる値は truefalseです。

6.6.1. リソース操作の設定

次のコマンドでリソースを作成すると、監視操作を設定できます。
pcs resource create resource_id standard:provider:type|type [resource_options] [op operation_action operation_options [operation_type operation_options]...]
たとえば、次のコマンドは、監視操作で IPaddr2 リソースを作成します。新しいリソースは、eth2 で IP アドレス 192.168.0.99、ネットマスクが 24 の VirtualIP と呼ばれます。監視操作は、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 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 update コマンドでリソースの操作を更新すると、特に呼び出しのないオプションはデフォルト値にリセットされます。

6.6.2. グローバルリソース操作のデフォルトの設定

次のコマンドを使用して、監視操作のグローバルデフォルト値を設定できます。
pcs resource op defaults [options]
たとえば、次のコマンドは、すべての監視操作に対して、timeout 値のグローバルデフォルトを 240 秒に設定します。
# pcs resource op defaults timeout=240s
監視操作に現在設定されているデフォルト値を表示するには、オプションを指定せずに pcs resource op defaults コマンドを実行します。
たとえば、以下のコマンドは、タイムアウト 値 240 秒で設定されたクラスターのデフォルトの監視操作値を表示します。
# pcs resource op defaults
timeout: 240s
クラスターリソース定義でオプションが指定されていない場合に限り、クラスターリソースがグローバルデフォルトを使用することに注意してください。デフォルトでは、リソースエージェントはすべての操作に timeout オプションを定義します。グローバル操作のタイムアウト値を有効にするには、timeout オプションを明示的に指定せずにクラスターリソースを作成するか、以下のコマンドのように、クラスターリソースを更新して timeout オプションを削除する必要があります。
# pcs resource update VirtualIP op monitor interval=10s
たとえば、すべての監視操作にグローバルなデフォルトの タイムアウト 値を 240 秒に設定し、クラスターリソース VirtualIP を更新して monitor 操作のタイムアウト値を削除すると、リソース VirtualIP には、startstop、および monitor の操作のタイムアウト値がそれぞれ 20s、40s、および 240s になります。タイムアウト操作のグローバルデフォルト値は、ここでは monitor 操作にのみ適用されます。ここでは、前のコマンドでデフォルトの timeout オプションが削除されました。
# 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 (VirtualIP-monitor-interval-10s)
               stop interval=0s timeout=40s (VirtualIP-name-stop-interval-0s-timeout-40s)