Red Hat Training

A Red Hat training course is available for RHEL 8

11.3. リソースのメタオプションの設定

リソースには、リソース固有のパラメーターの他に、リソースオプションを設定できます。このような追加オプションは、クラスターがリソースの動作を決定する際に使用されます。

以下の表は、リソースのメタオプションを示しています。

表11.3 リソースのメタオプション

フィールドデフォルト説明

priority

0

すべてのリソースをアクティブにできない場合に、クラスターは優先度の低いリソースを停止して、優先度が高いリソースを実行し続けます。

target-role

Started

クラスターがこのリソースを維持しようとする状態を示します。設定できる値は以下のとおりです。

* Stopped - リソースの強制停止

* Started - リソースの起動を許可 (昇格可能なクローンの場合、適切であればマスターロールに昇格される)

* Master - リソースの起動を許可し、適切であれば昇格を許可

* Slave - リソースの起動を許可、ただしリソースが昇格可能な場合、スレーブモードに限る

RHEL 8.5 では、Pacemaker 設定でロールが指定される場合、pcs コマンドラインインターフェイスが Promoted および Unpromoted を受け入れます。これらのロール名は、Master および Slave Pacemaker ロールと機能的に同等です。

is-managed

true

クラスターによるリソースの起動および停止を許可するかどうかを示します。使用できる値は true または false です。

resource-stickiness

0

リソースを同じ場所に残すための優先度の値です。この属性の詳細は、現在のノードを優先するリソースの設定 を参照してください。

requires

Calculated

リソースを起動できる条件を示します。

以下の条件を除き、fencing がデフォルトに設定されます。以下の値が使用できます。

* nothing - クラスターは常にリソースを開始できます。

* quorum - クラスターは、設定されているノードの過半数がアクティブな場合に限りこのリソースを起動できます。stonith-enabledfalse に設定されている場合、またはリソースの standardstonith の場合は、このオプションがデフォルト値となります。

* fencing -設定されているノードの過半数がアクティブ、かつ 障害が発生しているノードや不明なノードがフェンスになっている場合に限り、クラスターはこのリソースを起動できます。

* unfencing - 設定されているノードの過半数がアクティブで、かつ 障害が発生しているノードや不明なノードがすべてフェンスされており、フェンシング されていないノードに 限り、クラスターはこのリソースを起動できます。provides=unfencing stonith メタオプションがフェンシングデバイスに設定されている場合のデフォルト値です。

migration-threshold

INFINITY

指定したリソースが任意のノードで失敗した回数です。この回数を超えると、そのノードには、このリソースのホストとして不適格とするマークが付けられます。値を 0 にするとこの機能は無効になり、ノードに不適格マークが付けられることはありません。INFINITY (デフォルト) に設定すると、クラスターは、これを非常に大きい有限数として扱います。このオプションは、失敗した操作に on-fail=restart (デフォルト) が設定されていて、かつ失敗した起動操作のクラスタープロパティー start-failure-is-fatalfalse に設定されている場合に限り有効です。

failure-timeout

0 (無効)

migration-threshold オプションと併用されます。障害が発生していないかのように動作し、障害が発生したノードにリソースを戻せるようになるまで待機する秒数を示します。

multiple-active

stop_start

リソースが複数のノードでアクティブであることが検出された場合に、クラスターが実行すべき動作を示します。設定できる値は以下のとおりです。

* block - リソースに unmanaged のマークを付けます。

* stop_only - 実行中のインスタンスをすべて停止し、以降の動作は行いません。

* stop_start - 実行中のインスタンスをすべて停止してから、リソースを 1 カ所でのみ起動します。

* stop_unexpected - (RHEL 8.7 以降) リソースの予期しないインスタンスのみを停止し、完全な再起動は必要ありません。ユーザーは、サービスとそのリソースエージェントが、完全に再起動しなくても追加のアクティブインスタンスで機能することを確認する必要があります。

critical

true

(RHEL 8.4 以降) リソースがリソースグループに含まれる場合に作成された暗黙的なコロケーションの成約など、従属リソース (target_resource) としてリソース関連のコロケーション成約すべてに、influence オプションのデフォルト値を設定します。influence コロケーション制約オプションは、従属リソースが移行のしきい値に達して失敗した場合に、クラスターで別のノードにプライマリーリソースと従属リソースを移行するか、クラスターでサーバーの切り替えなしに従属リソースをオフラインのままにするかを決定します。critical リソースのメタオプションには、true または false の値を指定できます。デフォルト値は true です。

allow-unhealthy-nodes

false

(RHEL 8.7 以降) true に設定されている場合、ノードの正常性が低下したことでリソースがノードから強制的に切り離されることはありません。正常性リソースにこの属性が設定されている場合、クラスターはノードの正常性が回復したかどうかを自動的に検出し、リソースをノードに戻すことができます。ノードの正常性は、ローカルの状態に基づいて正常性リソースエージェントによって設定された正常性属性と、クラスターがそれらの状態にどのように反応するかを決定する戦略関連のオプションの組み合わせによって決定されます。

11.3.1. リソースオプションのデフォルト値の変更

Red Hat Enterprise Linux 8.3 では、pcs resource defaults update コマンドを使用して、全リソースのリソースオプションのデフォルト値を変更できます。たとえば、次のコマンドは、resource-stickiness のデフォルト値を 100 にリセットします。

# pcs resource defaults update resource-stickiness=100

以前のリリースのすべてのリソースのデフォルトを設定する元の pcs resource defaults name=value コマンドは、複数のデフォルトが設定されない限りサポートされます。ただし、pcs resource defaults update が、コマンドの推奨されるバージョンになりました。

11.3.2. リソースセットのリソースオプションのデフォルト値の変更

Red Hat Enterprise Linux 8.3 では、pcs resource defaults set create コマンドを使用して、複数のリソースのデフォルトセットを作成できます。これにより、resource 式を含むルールを指定できます。RHEL 8.3 では、このコマンドで指定したルールは、andor および括弧を含め、resource 式のみを使用できます。RHEL 8.4 では、このコマンドで指定したルールは、 andor および括弧など、resourcedate 式のみを使用できます。

pcs resource defaults set create コマンドを使用して、特定タイプの全リソースにデフォルトのリソース値を設定できます。たとえば、停止に時間がかかるデータベースを実行している場合は、データベースタイプの全リソースで resource-stickiness のデフォルト値を増やすことで、想定している頻度よりも多く、このようなリソースが他のノードに移動されるのを回避できます。

以下のコマンドは、pqsql タイプの全リソースに、resource-stickiness のデフォルト値を 100 に設定します。

  • リソースのデフォルトセット名を指定する id オプションは必須ではありません。このオプションを設定すると、pcs が自動的に ID を生成します。この値を設定すると、より分かりやすい名前に設定できます。
  • この例では、::pgsql は、クラスやプロバイダーは任意でタイプが pgsql を指定します。

    • ocf:heartbeat:pgsql を指定すると、クラスが ocf、プロバイダーが heartbeat、タイプが pgsql に指定されます。
    • ocf:pacemaker: を指定すると、タイプは任意でクラスが ocf、プロバイダーが pacemaker に指定されます。
# pcs resource defaults set create id=pgsql-stickiness meta resource-stickiness=100 rule resource ::pgsql

既存セットのデフォルト値を変更する場合は、pcs resource defaults set update コマンドを使用します。

11.3.3. 現在設定されているリソースのデフォルトの表示

pcs resource defaults コマンドは、指定したルールなど、現在設定されているリソースオプションのデフォルト値のリストを表示します。

次の例では resource-stickiness のデフォルト値を 100 にリセットした後のコマンド出力を示しています。

# pcs resource defaults
Meta Attrs: rsc_defaults-meta_attributes
  resource-stickiness=100

以下の例では、タイプが pqsql の全リソースの resource-stickiness のデフォルト値を 100 にリセットし、id オプションを id=pgsql-stickiness に設定します。

# pcs resource defaults
Meta Attrs: pgsql-stickiness
  resource-stickiness=100
  Rule: boolean-op=and score=INFINITY
    Expression: resource ::pgsql

11.3.4. リソース作成でメタオプションの設定

リソースのメタオプションにおけるデフォルト値のリセットの有無に関わらず、リソースを作成する際に、特定リソースのリソースオプションをデフォルト以外の値に設定できます。以下は、リソースのメタオプションの値を指定する際に使用する pcs resource create コマンドの形式です。

pcs resource create resource_id [standard:[provider:]]type [resource options] [meta meta_options...]

たとえば、以下のコマンドでは resource-stickiness の値を 50 に設定したリソースを作成します。

# pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.120 meta resource-stickiness=50

また、次のコマンドを使用すると既存のリソース、グループ、クローン作成したリソースなどのリソースメタオプションの値を作成することもできます。

pcs resource meta resource_id | group_id | clone_id meta_options

以下の例では、dummy_resource という名前の既存リソースがあります。このコマンドは、failure-timeout メタオプションの値を 20 秒に設定します。これにより 20 秒でリソースが同じノード上で再起動を試行できるようになります。

# pcs resource meta dummy_resource failure-timeout=20s

上記のコマンドを実行した後、リソースの値を表示して、failure-timeout=20s が設定されているかどうかを確認できます。

# pcs resource config dummy_resource
 Resource: dummy_resource (class=ocf provider=heartbeat type=Dummy)
  Meta Attrs: failure-timeout=20s
  ...