2020年8月2日日曜日

Pacemakerでメンテナンスモードを使って、クラスタリソースのフェイルオーバーを抑止する

Pacmekaerでは、Pacmekaer自身の計画的なバージョンアップやリソースの設定変更時などにおいて、予期せぬリソースのフェイルオーバーやSTONITH発動を抑止することを目的として「メンテナンスモード」という機能が用意されている。

メンテナンスモード実行方法

クラスタ全体をメンテナンスモードにする場合

クラスタ全体をメンテナンスモードにする場合は、以下を実行する。「maintenance」のスペルが長くて面倒くさいが、頑張って入力する

# pcs node maintenance --all

クラスタ全体をメンテナンスモードから通常状態に戻すには、以下を実行する。

# pcs node unmaintenance --all

各ノード単位でメンテナンスモードにする場合

ノード単位でメンテナンスモードにする場合は、以下を実行する。対象ノード名を省略した場合は、コマンドを実行したノードがメンテナンスモードになる。

# pcs node maintenance <対象ノード名>

ノード単位でメンテナンスモードから通常状態に戻すには、以下を実行する。対象ノード名を省略した場合は、コマンドを実行したノードが通常状態に戻る。

# pcs node unmaintenance <対象ノード名>

実際にメンテナンスモードを試してみた

実際にクラスタをメンテナンスモードにした際の動作を確認してみよう。

ノード#1 (t3021cent) をメンテナンスモードにした状態で、手動でSquidのサービスを停止しても、リソースのフェイルオーバーが発生しないことを確認する。

まずは、ノード#1をメンテナンスモードにする。ノードのステータスが「maintenance」となり(★1箇所)、各リソースは「unmanaged」と表示される(★2箇所)。

# pcs node maintenance t3021cent
# pcs status
Cluster name: clst-01
Cluster Summary:
  * Stack: corosync
  * Current DC: t3021cent (version 2.0.3-5.el8_2.1-4b1f869f0f) - partition with quorum
  * Last updated: Wed Jul 29 08:50:02 2020
  * Last change:  Wed Jul 29 08:49:57 2020 by root via cibadmin on t3021cent
  * 2 nodes configured
  * 8 resource instances configured

Node List:
  * Node t3021cent: maintenance ★1
  * Online: [ t3022cent ]

Full List of Resources:
  * Resource Group: rg-01:
    * rs-vip-33 (ocf::heartbeat:IPaddr2):       Started t3021cent (unmanaged) ★2
    * rs-systemd-squid  (systemd:squid):        Started t3021cent (unmanaged) ★2
  * Clone Set: rs-systemd-unbound-clone [rs-systemd-unbound]:
    * rs-systemd-unbound        (systemd:unbound):      Started t3021cent (unmanaged) ★2
    * Started: [ t3022cent ]
  * Clone Set: rs-ping-33-clone [rs-ping-33]:
    * rs-ping-33        (ocf::pacemaker:ping):  Started t3021cent (unmanaged) ★2
    * Started: [ t3022cent ]
  * rs-stonith-01       (stonith:fence_ESXi):   Started t3021cent (unmanaged) ★2
  * rs-stonith-02       (stonith:fence_ESXi):   Started t3022cent

Daemon Status:
  corosync: active/disabled
  pacemaker: active/disabled
  pcsd: active/enabled

この状態でsquidを手動で停止させてみる。

# systemctl status squid | grep Active
   Active: active (running) since Sat 2020-07-25 15:45:49 JST; 3 days ago
# systemctl stop squid
# systemctl status squid | grep Active
   Active: inactive (dead)

Squidを停止させても、Squidのリソースである「rs-systemd-squid」のステータスは「Started t3021cent (unmanaged)」となっており(★箇所)、フェイルオーバーが発生しないことがわかる。

# pcs status
Cluster name: clst-01
Cluster Summary:
  * Stack: corosync
  * Current DC: t3021cent (version 2.0.3-5.el8_2.1-4b1f869f0f) - partition with quorum
  * Last updated: Wed Jul 29 08:55:31 2020
  * Last change:  Wed Jul 29 08:49:57 2020 by root via cibadmin on t3021cent
  * 2 nodes configured
  * 8 resource instances configured

Node List:
  * Node t3021cent: maintenance
  * Online: [ t3022cent ]

Full List of Resources:
  * Resource Group: rg-01:
    * rs-vip-33 (ocf::heartbeat:IPaddr2):       Started t3021cent (unmanaged)
    * rs-systemd-squid  (systemd:squid):        Started t3021cent (unmanaged) ★
  * Clone Set: rs-systemd-unbound-clone [rs-systemd-unbound]:
    * rs-systemd-unbound        (systemd:unbound):      Started t3021cent (unmanaged)
    * Started: [ t3022cent ]
  * Clone Set: rs-ping-33-clone [rs-ping-33]:
    * rs-ping-33        (ocf::pacemaker:ping):  Started t3021cent (unmanaged)
    * Started: [ t3022cent ]
  * rs-stonith-01       (stonith:fence_ESXi):   Started t3021cent (unmanaged)
  * rs-stonith-02       (stonith:fence_ESXi):   Started t3022cent

Daemon Status:
  corosync: active/disabled
  pacemaker: active/disabled
  pcsd: active/enabled

Squidを停止したままメンテナンスモードを解除するとフェイルオーバーしてしまうので、Squidを起動した後、メンテナンスモード解除を行う。

# systemctl start squid
# pcs node unmaintenance t3021cent
# pcs status
Cluster name: clst-01
Cluster Summary:
  * Stack: corosync
  * Current DC: t3021cent (version 2.0.3-5.el8_2.1-4b1f869f0f) - partition with quorum
  * Last updated: Wed Jul 29 08:56:52 2020
  * Last change:  Wed Jul 29 08:56:48 2020 by root via cibadmin on t3021cent
  * 2 nodes configured
  * 8 resource instances configured

Node List:
  * Online: [ t3021cent t3022cent ]

Full List of Resources:
  * Resource Group: rg-01:
    * rs-vip-33 (ocf::heartbeat:IPaddr2):       Started t3021cent
    * rs-systemd-squid  (systemd:squid):        Started t3021cent
  * Clone Set: rs-systemd-unbound-clone [rs-systemd-unbound]:
    * Started: [ t3021cent t3022cent ]
  * Clone Set: rs-ping-33-clone [rs-ping-33]:
    * Started: [ t3021cent t3022cent ]
  * rs-stonith-01       (stonith:fence_ESXi):   Started t3021cent
  * rs-stonith-02       (stonith:fence_ESXi):   Started t3022cent

Daemon Status:
  corosync: active/disabled
  pacemaker: active/disabled
  pcsd: active/enabled

以上でメンテナンスモードの動作確認は完了となる。

0 件のコメント:

コメントを投稿

人気の投稿