Red Hat Training

A Red Hat training course is available for RHEL 8

29.2. Pacemaker を用いたマルチサイトクラスターの設定

次の手順で Booth チケットマネージャーを使用したマルチサイト設定を構築できます。

ここで使用するコマンド例は以下を前提とします。

  • Cluster 1 は、ノード cluster1-node1 および cluster1-node2 で構成されます。
  • Cluster 1 に割り当てられた Floating IP アドレスは 192.168.11.100 です。
  • Cluster 2 は、cluster2-node1 および cluster2-node2 で構成されます。
  • Cluster 2 に割り当てられた Floating IP アドレスは 192.168.22.100 です。
  • 仲裁ノードは arbitrator-node で、IP アドレスは 192.168.99.100 です。
  • この設定が使用する Booth チケットの名前は apacheticket です。

ここで使用するコマンド例は、Apache サービスのクラスターリソースが、各クラスターの apachegroup リソースグループの一部として設定されていることを前提としています。各クラスターの Pacemaker インスタンスは独立しているため、このリソースのチケット制約を設定するために、各クラスターでリソースとリソースグループが同じである必要はありませんが、これはフェイルオーバーの一般的な事例になります。

設定手順のどの時点でも、pcs booth config コマンドを実行すると、現在のノードまたはクラスターの Booth 設定を表示できます。また、pcs booth status コマンドを実行すると、ローカルノードの現在の Booth 状態を表示できます。

手順

  1. booth-site Booth チケットマネージャーパッケージを、両方のクラスターの各ノードにインストールします。

    [root@cluster1-node1 ~]# yum install -y booth-site
    [root@cluster1-node2 ~]# yum install -y booth-site
    [root@cluster2-node1 ~]# yum install -y booth-site
    [root@cluster2-node2 ~]# yum install -y booth-site
  2. pcs パッケージ、booth-core パッケージ、および booth-arbitrator パッケージを仲裁ノードにインストールします。

    [root@arbitrator-node ~]# yum install -y pcs booth-core booth-arbitrator
  3. firewalld デーモンを実行している場合は、両方のクラスターの全ノードと、仲裁ノードで以下のコマンドを実行し、Red Hat High Availability Add-On で必要なポートを有効にします。

    # firewall-cmd --permanent --add-service=high-availability
    # firewall-cmd --add-service=high-availability

    ローカルの状況に合わせて開くポートを変更することが必要になる場合があります。Red Hat High-Availability Add-On で必要なポートの詳細は、High Availability Add-On のポートの有効化 を参照してください。

  4. 1 つのクラスターの 1 つのノードで Booth 設定を作成します。各クラスターおよび仲裁ノードに指定するアドレスは IP アドレスでなければなりません。各クラスターには Floating IP アドレスを指定します。

    [cluster1-node1 ~] # pcs booth setup sites 192.168.11.100 192.168.22.100 arbitrators 192.168.99.100

    このコマンドを実行すると、設定ファイルの /etc/booth/booth.conf および /etc/booth/booth.key がノードに作成されます。

  5. Booth 設定のチケットを作成します。このチケットは、このチケットがクラスターに付与された場合のみリソースの実行を許可するリソース抑制を定義するのに使用します。

    このフェイルオーバー設定手順は基本的な手順で、チケットを 1 つだけ使用します。各チケットが別の 1 つ以上のリソースに関連付けられる、より複雑な事例では追加のチケットを作成します。

    [cluster1-node1 ~] # pcs booth ticket add apacheticket
  6. 現在のクラスターのすべてのノードに対して Booth 設定を同期します。

    [cluster1-node1 ~] # pcs booth sync
  7. 仲裁ノードから、Booth 設定を仲裁者へプルします。この作業をこれまで行ったことがない場合は、最初に、設定をプルするノードに pcs を認証する必要があります。

    [arbitrator-node ~] # pcs host auth cluster1-node1
    [arbitrator-node ~] # pcs booth pull cluster1-node1
  8. Booth 設定を別のクラスターにプルし、そのクラスターのすべてのノードを同期します。仲裁ノードでこの作業を行ったことがない場合は、最初に、設定をプルするノードに pcs を認証する必要があります。

    [cluster2-node1 ~] # pcs host auth cluster1-node1
    [cluster2-node1 ~] # pcs booth pull cluster1-node1
    [cluster2-node1 ~] # pcs booth sync
  9. 仲裁ノードで Booth を開始して有効にします。

    注記

    Booth はクラスターで Pacemaker リソースとして実行するため、クラスターのノードで Booth を手動で開始したり有効にしたりしないでください。

    [arbitrator-node ~] # pcs booth start
    [arbitrator-node ~] # pcs booth enable
  10. 各クラスターに割り当てられた Floating IP アドレスを使用して、両方のクラスターサイトでクラスターリソースとして実行されるように Booth を設定します。booth-ip および booth-service をグループのメンバーとするリソースグループが作成されます。

    [cluster1-node1 ~] # pcs booth create ip 192.168.11.100
    [cluster2-node1 ~] # pcs booth create ip 192.168.22.100
  11. 各クラスターに定義したリソースグループにチケット制約を追加します。

    [cluster1-node1 ~] # pcs constraint ticket add apacheticket apachegroup
    [cluster2-node1 ~] # pcs constraint ticket add apacheticket apachegroup

    次のコマンドを実行すると、現在設定されているチケット制約を表示できます。

    pcs constraint ticket [show]
  12. この設定用に作成したチケットを最初のクラスターに付与します。

    チケットを付与する前にチケット抑制を定義する必要はありません。最初にチケットをクラスターに付与した後、pcs booth ticket revoke コマンドで手動でオーバーライドしない限り、Booth はチケットの管理を引き継ぎます。pcs booth 管理コマンドの詳細は、pcs booth コマンドの PCS ヘルプ画面を参照してください。

    [cluster1-node1 ~] # pcs booth ticket grant apacheticket

チケットは、いつでも (この手順の完了後でも) 追加および削除できます。ただし、チケットを追加または削除した後、この手順の説明どおりに、他のノード、クラスター、および仲裁ノードに対して設定ファイルを同期し、チケットを付与する必要があります。

Booth 設定ファイル、チケット、およびリソースのクリーンアップや削除に使用できるその他の Booth 管理コマンドに関する情報は、pcs booth コマンドの PCS ヘルプ画面を参照してください。