第18章 クラスターノードの管理

次のセクションでは、クラスターサービスの起動や停止、クラスターノードの追加や削除など、クラスターノードの管理で使用するコマンドを説明します。

18.1. クラスターサービスの停止

次のコマンドで、指定ノード (複数指定可) のクラスターサービスを停止します。pcs cluster start と同様、--all オプションを使用すると、全ノードのクラスターサービスが停止します。ノードを指定しないと、ローカルノードのクラスターサービスのみが停止します。

pcs cluster stop [--all | node] [...]

次のコマンドで、ローカルノードのクラスターサービスを強制的に停止できます。このコマンドは、kill -9 コマンドを実行します。

pcs cluster kill

18.2. クラスターサービスの有効化および無効化

次のコマンドを使用して、クラスターサービスを有効にします。これにより、指定した 1 つまたは複数のノードで、システムの起動時にクラスターサービスが実行するように設定されます。ノードがフェンスされた後にクラスターに自動的に再参加するようになり、クラスターが最大強度を下回る時間が最小限に抑えられます。クラスターサービスを有効にしていないと、クラスターサービスを手動で開始する前に、管理者が問題を調査できます。これにより、たとえばハードウェアに問題があるノードで再度問題が発生する可能性がある場合は、クラスターに戻さないようにできます。

  • --all オプションを使用すると、全ノードでクラスターサービスが有効になります。
  • ノードを指定しないと、ローカルノードでのみクラスターサービスが有効になります。
pcs cluster enable [--all | node] [...]

指定した 1 つまたは複数のノードの起動時に、クラスターサービスが実行されないよう設定する場合は、次のコマンドを使用します。

  • --all オプションを指定すると、全ノードでクラスターサービスが無効になります。
  • ノードを指定しないと、ローカルノードでのみクラスターサービスが無効になります。
pcs cluster disable [--all | node] [...]

18.3. クラスターノードの追加

注記

運用保守期間中に、既存のクラスターにノードを追加することが強く推奨されます。これにより、新しいノードとそのフェンシング設定に対して、適切なリソースとデプロイメントのテストを実行できます。

既存クラスターに新しいノードを追加する場合は、以下の手順に従ってください。この手順は、corosync を実行している標準クラスターを追加します。corosync 以外のノードをクラスターに統合する方法は「corosync 以外のノードのクラスターへの統合: pacemaker_remote サービス」を参照してください。

この例では、clusternode-01.example.comclusternode-02.example.com、および clusternode-03.example.com が既存のクラスターノードになります。新たに追加するノードは newnode.example.com になります。

クラスターに追加する新しいノードで、以下の作業を行います。

  1. クラスターパッケージをインストールします。クラスターで SBD、Booth チケットマネージャー、またはクォーラムデバイスを使用する場合は、対応するパッケージ (sbdbooth-sitecorosync-qdevice) を、新しいノードにも手動でインストールする必要があります。

    [root@newnode ~]# yum install -y pcs fence-agents-all

    クラスターパッケージに加えて、既存のクラスターノードにインストールしたクラスターで実行しているすべてのサービスをインストールおよび構成する必要があります。たとえば、Red Hat の高可用性クラスターで Apache HTTP サーバーを実行している場合は、追加するノードにサーバーをインストールする必要があります。また、サーバーのステータスを確認する wget ツールも必要です。

  2. firewalld デーモンを実行している場合は、次のコマンドを実行して、Red Hat High Availability Add-On で必要なポートを有効にします。

    # firewall-cmd --permanent --add-service=high-availability
    # firewall-cmd --add-service=high-availability
  3. ユーザー ID hacluster のパスワードを設定します。クラスターの各ノードで、同じパスワードを使用することが推奨されます。

    [root@newnode ~]# passwd hacluster
    Changing password for user hacluster.
    New password:
    Retype new password:
    passwd: all authentication tokens updated successfully.
  4. 次のコマンドを実行して pcsd サービスを開始し、システムの起動時に pcsd が有効になるようにします。

    # systemctl start pcsd.service
    # systemctl enable pcsd.service

既存クラスターのノードの 1 つで、以下の作業を行います。

  1. 新しいクラスターノードで hacluster ユーザーを認証します。

    [root@clusternode-01 ~]# pcs host auth newnode.example.com
    Username: hacluster
    Password:
    newnode.example.com: Authorized
  2. 新しいノードを既存のクラスターに追加します。さらに、このコマンドは corosync.conf クラスター設定ファイルを、クラスターのすべてのノード (追加する新しいノードを含む) に同期させます。

    [root@clusternode-01 ~]# pcs cluster node add newnode.example.com

クラスターに追加する新しいノードで、以下の作業を行います。

  1. 新しいノードで、クラスターサービスを開始して有効にします。

    [root@newnode ~]# pcs cluster start
    Starting Cluster...
    [root@newnode ~]# pcs cluster enable
  2. 新しいクラスターノードに対して、フェンシングデバイスを設定してテストします。

18.4. クラスターノードの削除

次のコマンドは、指定したノードをシャットダウンして、クラスター内のその他のすべてのノードで、クラスターの設定ファイル corosync.conf からそのノードを削除します。

pcs cluster node remove node

18.5. 複数のリンクを持つクラスターへのノードの追加

複数のリンクを持つクラスターにノードを追加する場合は、すべてのリンクにアドレスを指定する必要があります。以下の例では、ノード rh80-node3 をクラスターに追加し、最初のリンクに IP アドレス 192.168.122.203 を指定し、192.168.123.203 を次のリンクとして指定します。

# pcs cluster node add rh80-node3 addr=192.168.122.203 addr=192.168.123.203

18.7. 多くのリソースを使用する大規模なクラスターの設定

デプロイするクラスターが多数のノードとリソースで構成される場合は、クラスターの以下のパラメーターのデフォルト値を変更する必要があります。

cluster-ipc-limit クラスタープロパティー

cluster-ipc-limit クラスタープロパティーは、あるクラスターデーモンが別のクラスターデーモンの接続を切断するまでの、IPC メッセージバックログの上限です。大規模なクラスターで、多数のリソースをクリーンアップしたり、その他の方法で同時に修正したりすると、大量の CIB 更新が 1 回で到達します。これにより、CIB イベントキューのしきい値に到達する前に Pacemaker サービスが設定更新をすべて処理する時間がない場合は、クライアントの動作が遅くなる可能性があります。

大規模クラスターで推奨される cluster-ipc-limit の値は、クラスター内のリソース数にノード数を乗算したものです。この値は、クラスターデーモンの PID に関する「Evicting client」メッセージがログに表示された場合に発生します。

pcs property set コマンドを使用すると、cluster-ipc-limit のデフォルト値の 500 から増やすことができます。たとえば、リソースが 200 個ある 10 ノードクラスターの場合は、次のコマンドを使用して cluster-ipc-limit を 2000 に設定できます。

# pcs property set cluster-ipc-limit=2000
PCMK_ipc_buffer Pacemaker パラメーター

大規模なデプロイメントでは、内部の Pacemaker メッセージがメッセージバッファーのサイズを超える可能性があります。これが発生すると、以下の形式のシステムログにメッセージが表示されます。

Compressed message exceeds X設定されている IPC 制限 (X バイト) の割合。PCMK_ipc_buffer を X 以上に設定することを検討してください。

このメッセージが表示されたら、各ノードの /etc/sysconfig/pacemaker 設定ファイルの PCMK_ipc_buffer を大きくできます。たとえば、PCMK_ipc_buffer の値をデフォルト値から 13396332 バイトに上げるには、クラスター内の各ノードの/etc/sysconfig/pacemaker ファイルでコメント解除されている PCMK_ipc_buffer フィールドを以下のように変更します。

PCMK_ipc_buffer=13396332

この変更を適用するには、次のコマンドを実行します。

# systemctl restart pacemaker

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