第22章 ノードの正常なシャットダウン時に停止したままになるようにリソースを設定 (RHEL 8.2 以降)

クラスターノードがシャットダウンしたときの Pacemaker のデフォルトの応答は、シャットダウンが正常なシャットダウンであっても、そのノードで実行中のすべてのリソースを停止し、別の場所でリソースを復元することです。RHEL 8.2 以降では、ノードが正常にシャットダウンすると、ノードに接続されているリソースがノードにロックされ、シャットダウンしたノードがクラスターに再度参加するときに再び起動するまで、他の場所で起動できないように、Pacemaker を設定できます。これにより、ノードのリソースをクラスター内の他のノードにフェールオーバーせずに、サービスの停止が許容できるメンテナンスウィンドウ中にノードの電源を切ることができます。

22.1. ノードの正常なシャットダウン時に停止したままになるようにリソースを設定するためのクラスタープロパティー

ノードの正常なシャットダウンでリソースがフェイルオーバーしないようにする機能は、以下のクラスタープロパティーで実装されます。

shutdown-lock

このクラスタープロパティーをデフォルト値の false に設定すると、クラスターは、ノードで適切にシャットダウンしているノードでアクティブなリソースを復旧します。このプロパティーを true に設定すると、適切にシャットダウンしているノードでアクティブなリソースは、クラスターに再参加した後にノードで再起動するまで別の場所で起動できなくなります。

shutdown-lock プロパティーはクラスターノードまたはリモートノードのいずれかで機能しますが、ゲストノードは機能しません。

shutdown-locktrue に設定すると、ノードがダウンした場合にクラスターリソースのロックを削除し、以下のコマンドを実行してノードで手動更新を実行してリソースを別の場所で起動できるようになります。

pcs resource refresh resource node=nodename

リソースのロックが解除されると、クラスターはリソースを別の場所に移動できるようになることに注意してください。リソースのスティッキネスの値または場所の設定を使用することにより、これが発生する可能性を抑制できます。

注記

手動更新は、最初に次のコマンドを実行するとリモートノードで機能します。

  1. リモートノードで systemctl stop pacemaker_remote コマンドを実行してノードを停止します。
  2. pcs resource disable remote-connection-resource コマンドを実行します。

その後、リモートノードで手動更新を実行できます。

shutdown-lock-limit

このクラスタープロパティーをデフォルト値の 0 以外の値に設定すると、シャットダウンを開始してから指定した時間内にノードが再参加しない場合に、他のノードの復旧にリソースが利用可能になります。

注記

shutdown-lock-limit プロパティーは、以下のコマンドを最初に実行した場合に限りリモートノードで動作します。

  1. リモートノードで systemctl stop pacemaker_remote コマンドを実行してノードを停止します。
  2. pcs resource disable remote-connection-resource コマンドを実行します。

このコマンドの実行後、shutdown-lock-limit で指定した時間が経過すると、リモートノード上で実行しているリソースが他のノードの復旧に利用できます。

22.2. shutdown-lock クラスタープロパティーの設定

以下の例では、サンプルのクラスターで shutdown-lock クラスタープロパティーを true に設定し、ノードをシャットダウンして再起動したときの影響を示しています。この例のクラスターは、z1.example.comz2.example.com、および z3.example.com の 3 つのノードで構成されます。

  1. shutdown-lock プロパティーを true に設定し、その値を確認します。この例では、shutdown-lock-limit プロパティーはデフォルト値 0 を維持します。

    [root@z3.example.com ~]# pcs property set shutdown-lock=true
    [root@z3.example.com ~]# pcs property list --all | grep shutdown-lock
     shutdown-lock: true
     shutdown-lock-limit: 0
  2. クラスターのステータスを確認します。この例では、3 番目と 5 番目のリソースが z1.example.com で実行しています。

    [root@z3.example.com ~]# pcs status
    ...
    Full List of Resources:
    ...
     * first	(ocf::pacemaker:Dummy):	Started z3.example.com
     * second	(ocf::pacemaker:Dummy):	Started z2.example.com
     * third	(ocf::pacemaker:Dummy):	Started z1.example.com
     * fourth	(ocf::pacemaker:Dummy):	Started z2.example.com
     * fifth	(ocf::pacemaker:Dummy):	Started z1.example.com
    ...
  3. z1.example.com をシャットダウンします。これにより、そのノードで実行中のリソースを停止します。

    [root@z3.example.com ~] # pcs cluster stop z1.example.com
    Stopping Cluster (pacemaker)...
    Stopping Cluster (corosync)...
  4. pcs status コマンドを実行すると、ノードの z1.example.com がオフラインであることを示し、z1.example.com で実行していたリソースは、ノードの停止時に LOCKED になります。

    [root@z3.example.com ~]# pcs status
    ...
    
    Node List:
     * Online: [ z2.example.com z3.example.com ]
     * OFFLINE: [ z1.example.com ]
    
    Full List of Resources:
    ...
     * first	(ocf::pacemaker:Dummy):	Started z3.example.com
     * second	(ocf::pacemaker:Dummy):	Started z2.example.com
     * third	(ocf::pacemaker:Dummy):	Stopped z1.example.com (LOCKED)
     * fourth	(ocf::pacemaker:Dummy):	Started z3.example.com
     * fifth	(ocf::pacemaker:Dummy):	Stopped z1.example.com (LOCKED)
    
    ...
  5. クラスターサービスを z1.example.com で再度起動し、クラスターに再参加できるようにします。ロックされたリソースは、そのノードで開始する必要がありますが、いったん起動すると、必ずしも同じノードに留まるわけではありません。

    [root@z3.example.com ~]# pcs cluster start z1.example.com
    Starting Cluster...
  6. この例では、3 番目および 5 番目のリソースが、z1.example.com ノードで復元されます。

    [root@z3.example.com ~]# pcs status
    ...
    
    Node List:
     * Online: [ z1.example.com z2.example.com z3.example.com ]
    
    Full List of Resources:
    ..
     * first	(ocf::pacemaker:Dummy):	Started z3.example.com
     * second	(ocf::pacemaker:Dummy):	Started z2.example.com
     * third	(ocf::pacemaker:Dummy):	Started z1.example.com
     * fourth	(ocf::pacemaker:Dummy):	Started z3.example.com
     * fifth	(ocf::pacemaker:Dummy):	Started z1.example.com
    
    ...

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