前回の構成にActive/Passive Clusterの作成します。
◇リソースの追加
[root@pcmk-1 ~]# pcs resource create ClusterIP ocf:heartbeat:IPaddr2 \
ip=10.0.1.103 cidr_netmask=24 op monitor interval=30s
「ocf:heartbeat:IPaddr2」は追加したい3つのリソースを伝えています。
最初のフィールド(上記ではocf)はリソースの基準となるもの
2つ目のフィールド(上記ではheartbeat)はプロバイダーと呼ばれ現在OCFリソースのみでサポートされています。
3つ目のフィールド(上記ではIPaddr2)はリソースエージェントの名前。
フィールドごとのリソースについて詳細を見て行きます。
最初のフィールドのリソース標準のリストを取得するには以下のコマンドを入力します。
[root@pcmk-1 ~]# pcs resource standards
lsb
ocf
service
systemd
2つ目のフィールドのプロバイダーのリソースのリストを取得するには以下のコマンドを入力します。
[root@pcmk-1 ~]# pcs resource providers
heartbeat
openstack
pacemaker
3つ目のフィールドの利用可能な全てのリソースエージェントを取得するには以下のコマンドを入力します。
root@pcmk-1 ~]# pcs resource agents ocf:heartbeat
apache
conntrackd
corosync-qnetd
(中略)
IPaddr2
(略)
システム上で利用可能なすべてのリソースエージェントをリストアップしたい場合は、以下のコマンドを入力します。
[root@pcmk-1 ~]# pcs resource list
ocf:heartbeat:CTDB - CTDB Resource Agent
ocf:heartbeat:Delay - Waits for a defined timespan
ocf:heartbeat:Dummy - Example stateless resource agent
ocf:heartbeat:Filesystem - Manages filesystem mounts
ocf:heartbeat:IPaddr2 - Manages virtual IPv4 and IPv6 addresses (Linux specific
version)
(略)
「Full List of Resources」の「ClusterIP (ocf:heartbeat:IPaddr2)」が追加されている事を確認します。
[root@pcmk-1 ~]# pcs status
Cluster name: mycluster
Cluster Summary:
* Stack: corosync (Pacemaker is running)
* Current DC: pcmk-2 (version 2.1.10-1.1.el9_7-5693eaeee) - partition with quorum
* Last updated: Wed Apr 1 01:46:45 2026 on pcmk-1
* Last change: Wed Apr 1 01:34:06 2026 by root via root on pcmk-1
* 2 nodes configured
* 1 resource instance configured
Node List:
* Online: [ pcmk-1 pcmk-2 ]
Full List of Resources:
* ClusterIP (ocf:heartbeat:IPaddr2): Started pcmk-1
Daemon Status:
corosync: active/disabled
pacemaker: active/disabled
pcsd: active/enabled
リソースが実行されているノードでIPアドレスが追加されているのを確認します。
以下の場合、「enp0s8」の行に「inet 10.0.1.103/24」が追加されています。
[root@pcmk-1 ~]# ip -o addr show
1: lo inet 127.0.0.1/8 scope host lo\ valid_lft forever preferred_lft forever
1: lo inet6 ::1/128 scope host \ valid_lft forever preferred_lft forever
2: enp0s3 inet 192.168.128.101/24 brd 192.168.128.255 scope global noprefixroute enp0s3\ valid_lft forever preferred_lft forever
2: enp0s3 inet6 2400:2200:5be:5f91:a00:27ff:fec5:4ceb/64 scope global dynamic mngtmpaddr \ valid_lft 86208sec preferred_lft 14208sec
2: enp0s3 inet6 fe80::a00:27ff:fec5:4ceb/64 scope link \ valid_lft forever preferred_lft forever
3: enp0s8 inet 10.0.1.101/24 brd 10.0.1.255 scope global noprefixroute enp0s8\ valid_lft forever preferred_lft forever
3: enp0s8 inet 10.0.1.103/24 brd 10.0.1.255 scope global secondary enp0s8\ valid_lft forever preferred_lft forever
3: enp0s8 inet6 fe80::a00:27ff:fe16:428/64 scope link \ valid_lft forever preferred_lft forever
◇フェイルオーバーを実行する
高可用性を確認する為に、リソース実行中のマシンを止めてフェイルオーバーをトリガーします。
[root@pcmk-1 ~]# pcs cluster stop pcmk-1
pcmk-1: Stopping Cluster (pacemaker)...
pcmk-1: Stopping Cluster (corosync)...
稼働していない事を確認します。
[root@pcmk-1 ~]# pcs status
Error: error running crm_mon, is pacemaker running?
crm_mon: Connection to cluster failed: Connection refused
別のノードでクラスタ状態を確認します。
[root@pcmk-2 ~]# pcs status
Cluster name: mycluster
Cluster Summary:
* Stack: corosync (Pacemaker is running)
* Current DC: pcmk-2 (version 2.1.10-1.1.el9_7-5693eaeee) - partition with quorum
* Last updated: Wed Apr 1 01:59:53 2026 on pcmk-2
* Last change: Wed Apr 1 01:34:06 2026 by root via root on pcmk-1
* 2 nodes configured
* 1 resource instance configured
Node List:
* Online: [ pcmk-2 ]
* OFFLINE: [ pcmk-1 ]
Full List of Resources:
* ClusterIP (ocf:heartbeat:IPaddr2): Started pcmk-2
Daemon Status:
corosync: active/disabled
pacemaker: active/disabled
pcsd: active/enabled
上記の様にフェイルオーバーが起きたことを確認できます。
次に止めたノードを再起動して、暫くしてからクラスタの状態を確認します。
[root@pcmk-1 ~]# pcs cluster start pcmk-1
pcmk-1: Starting Cluster...
[root@pcmk-2 ~]# pcs status
Cluster name: mycluster
Cluster Summary:
* Stack: corosync (Pacemaker is running)
* Current DC: pcmk-2 (version 2.1.10-1.1.el9_7-5693eaeee) - partition with quorum
* Last updated: Wed Apr 1 02:07:12 2026 on pcmk-2
* Last change: Wed Apr 1 01:34:06 2026 by root via root on pcmk-1
* 2 nodes configured
* 1 resource instance configured
Node List:
* Online: [ pcmk-1 pcmk-2 ]
Full List of Resources:
* ClusterIP (ocf:heartbeat:IPaddr2): Started pcmk-2
Daemon Status:
corosync: active/disabled
pacemaker: active/disabled
pcsd: active/enabled
ノードリストでマシンが2台ともOnlineになっていることが確認出来ます。
逆のノードでも同じことを試してみます。
(内容省略)
◇回復後のリソース移動を防ぐ
AlmaLinux 9では、クラスタのセットアッププロセスが自動的に行われます デフォルトのリソース粘着度スコア
[root@pcmk-1 ~]# pcs resource defaults
Meta Attrs: build-resource-defaults
resource-stickiness=1
以下の例ではデフォルトのリソースの固定度を100に上げています
[root@pcmk-1 ~]# pcs resource defaults update resource-stickiness=100
Warning: Defaults do not apply to resources which override them with their own defined values
[root@pcmk-1 ~]# pcs resource defaults
Meta Attrs: build-resource-defaults
resource-stickiness=100