第10章 クラスターリソースの設定

クラスターリソースを作成するコマンドの形式は、以下のとおりです。

pcs resource create resource_id [standard:[provider:]]type [resource_options] [op operation_action operation_options [operation_action operation options]...] [meta meta_options...] [clone [clone_options] | master [master_options] | --group group_name [--before resource_id | --after resource_id] | [bundle bundle_id] [--disabled] [--wait[=n]]

主なクラスターリソースの作成オプションには、以下が含まれます。

  • --group オプションを指定すると、名前付きのリソースグループにリソースが追加されます。グループが存在しない場合は作成され、そのグループにリソースが追加されます。
  • --before および --after オプションは、リソースグループに含まれるリソースを基準にして、追加するリソースの位置を指定します。
  • --disabled オプションは、リソースが自動的に起動しないことを示しています。

リソースの制約を設定して、クラスター内のそのリソースの動作を指定できます。

リソース作成の例

以下のコマンドは、仕様 ocf、プロバイダー heartbeat、およびタイプ IPaddr2 で、リソース VirtualIP を作成します。このリソースのフローティングアドレスは 192.168.0.120 であり、システムは、30 秒間隔で、リソースが実行しているかどうかを確認します。

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

または、以下のように、standard フィールドおよび provider フィールドを省略できます。規格とプロバイダーはそれぞれ ocfheartbeat にデフォルト設定されます。

# pcs resource create VirtualIP IPaddr2 ip=192.168.0.120 cidr_netmask=24 op monitor interval=30s

設定済みリソースの削除

設定したリソースを削除する場合は、次のコマンドを実行します。

pcs resource delete resource_id

たとえば、次のコマンドは、リソース ID が VirtualIP の既存リソースを削除します。

# pcs resource delete VirtualIP

10.1. リソースエージェント識別子

リソースに定義する識別子は、リソースに使用するエージェント、そのエージェントを検索する場所、およびそれが準拠する仕様をクラスターに指示します。表10.1「リソースエージェント識別子」 では、これらのプロパティーを説明します。

表10.1 リソースエージェント識別子

フィールド説明

standard

エージェントが準拠する規格。使用できる値とその意味は以下のとおりです。

* ocf - 指定した type は、Open Cluster Framework Resource Agent API に準拠した実行可能ファイルの名前で、/usr/lib/ocf/resource.d/provider の下に置かれます。

* lsb - 指定した type は、Linux Standard Base Init Script Actions に準拠する実行ファイルの名前です。type で完全パスを指定しないと、システムは /etc/init.d ディレクトリーを探します。

* systemd - 指定した type は、インストール済み systemd ユニットの名前です。

* service - Pacemaker は、指定した type を選択します (まずは lsb エージェントとして、次に systemd エージェントとして)。

* nagios - 指定した type は、Nagios Plugin API に準拠する実行可能ファイルの名前で、/usr/libexec/nagios/plugins ディレクトリーに置かれます。OCF スタイルのメタデータは、/usr/share/nagios/plugins-metadata ディレクトリーに置かれます (一般的なプラグインは nagios-agents-metadata パッケージで入手可能)。

type

使用するリソースエージェントの名前 (例: IPaddr または Filesystem)

provider

OCF 仕様により、複数のベンダーで同じリソースエージェントを指定できます。Red Hat が提供するエージェントのほとんどは、プロバイダーに heartbeat を使用しています。

表10.2「リソースプロパティーを表示させるコマンド」 は、利用可能なリソースプロパティーを表示するコマンドの概要を示しています。

表10.2 リソースプロパティーを表示させるコマンド

pcs 表示コマンド出力

pcs resource list

利用できる全リソースの一覧を表示

pcs resource standards

利用できるリソースエージェントの一覧を表示

pcs resource providers

利用できるリソースエージェントプロバイダーの一覧を表示

pcs resource list string

利用できるリソースを指定文字列でフィルターした一覧を表示。仕様名、プロバイダー名、タイプ名などでフィルターを指定して、リソースを表示できます。

10.2. リソース固有のパラメーターの表示

各リソースで以下のコマンドを使用すると、リソースの説明、そのリソースに設定できるパラメーター、およびそのリソースに設定されるデフォルト値が表示されます。

pcs resource describe [standard:[provider:]]type

たとえば、以下のコマンドは、apache タイプのリソース情報を表示します。

# pcs resource describe ocf:heartbeat:apache
This is the resource agent for the Apache Web server.
This resource agent operates both version 1.x and version 2.x Apache
servers.

...

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

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

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

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

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

priority

0

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

target-role

Started

クラスターが維持するリソースのステータスです。使用できる値は以下のようになります。

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

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

* Master - リソースの起動を許可し、必要に応じて昇格

* Slave - リソースが昇格可能な場合は、リソースの開始は可能だが、スレーブモードでのみ可能

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 オプションと併用されます。障害が発生していないかのように動作し、障害が発生したノードにリソースを戻せるようになるまで待機する秒数を示します。タイムベースのアクションと同様、これが、cluster-recheck-interval クラスターパラメーターの値よりも頻繁に確認される保証はありません。

multiple-active

stop_start

リソースが複数のノードでアクティブであることが検出された場合に、クラスターが実行する動作です。使用できる値は以下のようになります。

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

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

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

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

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

# pcs resource defaults update resource-stickiness=100

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

10.3.2. リソースセットのリソースオプションのデフォルト値変更 (RHEL 8.3 以降)

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

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 コマンドを使用します。

10.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

10.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
  ...

10.4. リソースグループの設定

クラスターの最も一般的な構成要素の 1 つがリソースセットです。リソースセットはまとめて配置し、順番に起動し、その逆順で停止する必要があります。この設定を簡単にするため、Pacemaker はリソースグループの概念をサポートします。

10.4.1. リソースグループの作成

以下のコマンドを使用してリソースグループを作成し、グループに追加するリソースを指定します。グループが存在しない場合は、このコマンドによりグループが作成されます。グループが存在する場合は、このコマンドにより別のリソースがグループに追加されます。リソースは、このコマンドで指定された順序で起動し、その逆順で停止します。

pcs resource group add group_name resource_id [resource_id] ... [resource_id] [--before resource_id | --after resource_id]

このコマンドの --before オプションおよび --after オプションを使用して、追加するリソースの位置を、そのグループにすでに含まれるリソースを基準にして指定できます。

以下のコマンドを使用して、リソースを作成するときに、既存のグループに新しいリソースを追加することもできます。以下のコマンドでは、作成するリソースが group_name グループに追加されます。group_name グループが存在しない場合は作成されます。

pcs resource create resource_id [standard:[provider:]]type [resource_options] [op operation_action operation_options] --group group_name

グループに含まれるリソースの数に制限はありません。グループの基本的なプロパティーは以下のとおりです。

  • グループ内に、複数のリソースが置かれています。
  • リソースは、指定した順序で起動します。グループ内に実行できないリソースがあると、そのリソースの後に指定されたリソースは実行できません。
  • リソースは、指定した順序と逆の順序で停止します。

以下の例では、既存リソースの IPaddrEmail が含まれるリソースグループ shortcut が作成されます。

# pcs resource group add shortcut IPaddr Email

この例では、以下のように設定されています。

  • IPaddr が起動してから、Email が起動します。
  • Email リソースが停止してから、IPAddr が停止します。
  • IPaddr を実行できない場合は、Email も実行できません。
  • Email を実行できなくても、IPaddr には影響ありません。

10.4.2. リソースグループの削除

以下のコマンドを使用して、グループからリソースを削除します。グループにリソースが残っていないと、このコマンドによりグループ自体が削除されます。

pcs resource group remove group_name resource_id...

10.4.3. リソースグループの表示

以下のコマンドは、現在設定されているリソースグループを一覧表示します。

pcs resource group list

10.4.4. グループオプション

リソースグループには、priority オプション、target-role オプション、または is-managed オプションを設定できます。このオプションは、1 つのリソースに設定されている場合と同じ意味を維持します。リソースのメタオプションの詳細は、「リソースメタオプションの設定」を参照してください。

10.4.5. グループの粘着性

粘着性は、リソースを現在の場所に留ませる優先度の度合いを示し、グループで加算されます。グループのアクティブなリソースが持つ stickness 値の合計が、グループの合計になります。そのため、resource-stickiness のデフォルト値が 100 で、グループに 7 つのメンバーがあり、そのメンバーの 5 つがアクティブな場合は、グループ全体でスコアが 500 の現在の場所が優先されます。

10.5. リソース動作の決定

リソースの制約を設定して、クラスター内のそのリソースの動作を指定できます。以下の制約のカテゴリーを設定できます。

複数リソースをまとめて配置して、順番に起動するまたは逆順で停止する一連の制約を簡単に設定する方法として、Pacemaker ではリソースグループという概念に対応しています。リソースグループの作成後に、個別のリソースの制約を設定するようにグループ自体に制約を設定できます。リソースグループの情報は「リソースグループの設定」を参照してください。


このページには機械翻訳が使用されている場合があります (詳細はこちら)。