4 Pacemakerリソースおよびリソース・グループの構成

Pacemakerでは、データベース・サービスやファイル・システム・サービスなどのリソース・グループを作成できるため、指定した順序で起動し、その順序とは逆に停止します。また、同じリソース・グループにリソースを追加すると、同じノード上で実行されます。

Pacemakerリソースとリソース・グループについて

Pacemakerリソースは、基本的にPacemakerが管理するサービスです。リソースの例には、次のサービスが含まれます:

  • IPアドレス

  • ファイル・システム

  • Webサイト

  • データベース

前述のリストのリソースは、プリミティブ・リソースと呼ばれます。プリミティブ・リソースをグループ化して、グループおよびクローンと呼ばれるより複雑なリソースにクローニングできます。

リソース・エージェント

各プリミティブ・リソースは、Pacemakerに標準化されたインタフェースを介してリソースへのアクセスを提供するリソース・エージェント・スクリプトによって管理されます。Pacemakerと互換性のある標準の一部を次のリストに示します:

  • Open Cluster Framework (OCF)

  • Systemd

  • システム・サービス

  • STONITH

  • Linux Standard Base (LSB)

警告:

LSBスクリプトが常に標準に準拠しているとはかぎりません。詳細は、https://clusterlabs.org/を参照してください。

システム上のリソース・エージェントを表示するには、次の例に示すようにpcs resource agentsコマンドを実行します(簡潔にするために、サンプル出力から多数の行が省略されています):

pcs resource agents
.
.
.
apache
.
.
.
IPaddr
IPaddr2
.
.
.
oracle
oralsnr
pacemaker
pacemaker
.
.
.
pcsd
pcsd
.
.
.

システムでインタフェース標準を表示するには、次の例に示すようにpcs resource standardsコマンドを実行します:

pcs resource standards
lsb
ocf
service
systemd

リソース・プロパティ

リソース・プロパティは、リソースを管理するリソース・エージェント、そのリソース・エージェントが存在する場所、およびリソース・エージェントが準拠する標準を決定します。次のリストでは、プリミティブ・リソースのプロパティについて説明します:

ID

これは選択したリソース名です。

クラス

リソース・エージェントが準拠する標準。

たとえば、ocfstonithまたはsystemdです。

説明

リソース・エージェントの説明。

タイプ

使用する必要があるリソース・エージェントのタイプ。

たとえば、IPaddr2FilesystemまたはWebsiteです。

プロバイダ

OCFエージェントを使用すると、リソースに使用するプロバイダを指定できます(OCF仕様では、複数のベンダーが同じリソース・エージェントを提供できます)。

値の例: heartbeatpacemaker

リソースの作成

次の例に示すように、仮想IPアドレスのリソースを作成するpcs resource createコマンドを使用してリソースを作成できます:

sudo pcs resource create MyVirtualIP ocf:heartbeat:IPaddr2 ip=192.0.2.3 \
cidr_netmask=24 nic=eth1 \
op monitor interval=1s --group myapachegroup

上記の例で注目すべき点は以下のとおりです。

  • MyVirtualIPは、ID (リソースの名前)です。

  • ocfは、リソース・エージェントが準拠するクラス(標準)です。

  • heartbeatは、リソースのプロバイダです。

  • IPaddr2は、作成するリソースのタイプです。

    IPaddr2リソースには、次のオプションを指定します:

    • ip=192.0.2.3は、仮想IPアドレスに使用するIPアドレスを指定します。

    • cidr_netmask=24は、インタフェースのネットマスクをCIDR形式で指定します。

    • nic=eth1 IPアドレスがオンラインになるベース・ネットワーク・インタフェース。

    IPaddr2リソースには、次の操作を指定します:

    • op monitor interval=1sは、リソースが実行されているかどうかが毎秒チェックされるように指定します。

  • --groupmyapachegroupは、リソースを追加するリソース・グループを指定します。グループが存在しない場合は作成されます。

前述の例に続いて、次の例に示すように、apacheタイプの2番目のリソースを作成して追加できます:

sudo pcs resource create MyApacheWebsite ocf:heartbeat:apache \
configfile="/etc/httpd/conf/httpd.conf" \
statusurl="http://192.0.2.3/server-status" --group myapachegroup

pcs statusコマンドを実行して、リソースのステータスを確認できます。構成に応じて、rコマンドの出力は、次のサンプル・コード・ブロックのようになります:

sudo pcs status
Cluster name: my_cluster
Cluster Summary:
* Stack: corosync (Pacemaker is running)
* Current DC: node1 (version 2.1.6-9.1.0.1.el8_9-
6fdc9deea29) - partition with quorum
* Last updated: Sat Feb 3 22:35:58 2024 on node1
* Last change: Sat Feb 3 22:33:37 2024 by root via
cibadmin on node1
* 2 nodes configured
* 4 resource instances configured
Node List:
* Online: [ node1 ]
* OFFLINE: [ node2 ]
Full List of Resources:
* Resource Group: myapachegroup:
 * MyVirtualIP (ocf::heartbeat:IPaddr2): Started node1
 * MyApacheWebsite (ocf::heartbeat:apache): Started node1
...
...
Daemon Status:
corosync: active/disabled
pacemaker: active/enabled
pcsd: active/enabled

リソース・グループ内のリソースの起動および停止順序

前述の例のリソース・グループmyapachegroupが停止ステータスから起動された場合、リソースはグループに追加された順序で起動されます:

  1. リソース・グループに追加される最初のリソースであるMyVirtualIPが最初に起動されます。

  2. リソース・グループに追加される2番目のリソースであるMyApacheWebsiteが2番目に起動されます。

逆に、リソース・グループが停止すると、リソースはグループに追加されたリソースとは逆の順序で停止されます:

  1. 前述の例でリソース・グループに追加された最後のリソースであるMyApacheWebsiteが最初に停止されます。

  2. 前述の例でリソース・グループに追加された最初のリソースであるMyVirtualIPが最後に停止されます。

pcs resource createコマンドを使用してリソースを作成するときにオプション--beforeまたは--afterを使用して、グループにすでに存在するリソースに相対的な作成リソースの位置を指定することによって、起動順序を明示的に設定することもできます。

pcs resource group addコマンドを使用して、リソース順序を指定することもできます。詳細は、「リソース・グループの作成」を参照してください。

リソース・グループの作成

前述の項で説明したように、pcs resource createコマンドを使用すると、--groupオプションで指定したグループ(存在しない場合)が作成されます。リソース・グループを作成する2つ目の方法は、次の例に示すように、pcs resource group addコマンドを使用することです:

sudo pcs resource group add mygroup MyVirtualIP MyApacheWebsite

前述のコマンドは、グループmygroupを作成します(存在しない場合)。既存のリソースMyVirtualIPおよびMyApacheWebsiteをグループに追加します。コマンドで指定されたリソースが別のグループにある場合は、新しいグループmygroupに移動されます。

pcs resource group addコマンドでオプション--beforeまたは--afterを使用して、グループにすでに存在するリソースに相対的な作成リソースの位置を指定することもできます。

リソースおよびリソース・グループの構成の詳細は、pcs(8)およびhttps://clusterlabs.org/を参照してください。