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 状態を表示できます。
手順
booth-site
Booth チケットマネージャーパッケージを、両方のクラスターの各ノードにインストールします。[root@cluster1-node1 ~]# dnf install -y booth-site [root@cluster1-node2 ~]# dnf install -y booth-site [root@cluster2-node1 ~]# dnf install -y booth-site [root@cluster2-node2 ~]# dnf install -y booth-site
pcs
パッケージ、booth-core
パッケージ、およびbooth-arbitrator
パッケージを仲裁ノードにインストールします。[root@arbitrator-node ~]# dnf install -y pcs booth-core booth-arbitrator
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 のポートの有効化 を参照してください。
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
がノードに作成されます。Booth 設定のチケットを作成します。このチケットは、このチケットがクラスターに付与された場合のみリソースの実行を許可するリソース抑制を定義するのに使用します。
このフェイルオーバー設定手順は基本的な手順で、チケットを 1 つだけ使用します。各チケットが別の 1 つ以上のリソースに関連付けられる、より複雑な事例では追加のチケットを作成します。
[cluster1-node1 ~] # pcs booth ticket add apacheticket
現在のクラスターのすべてのノードに対して Booth 設定を同期します。
[cluster1-node1 ~] # pcs booth sync
仲裁ノードから、Booth 設定を仲裁者へプルします。この作業をこれまで行ったことがない場合は、最初に、設定をプルするノードに
pcs
を認証する必要があります。[arbitrator-node ~] # pcs host auth cluster1-node1 [arbitrator-node ~] # pcs booth pull cluster1-node1
Booth 設定を別のクラスターにプルし、そのクラスターのすべてのノードを同期します。仲裁ノードでこの作業を行ったことがない場合は、最初に、設定をプルするノードに
pcs
を認証する必要があります。[cluster2-node1 ~] # pcs host auth cluster1-node1 [cluster2-node1 ~] # pcs booth pull cluster1-node1 [cluster2-node1 ~] # pcs booth sync
仲裁ノードで Booth を開始して有効にします。
注記Booth はクラスターで Pacemaker リソースとして実行するため、クラスターのノードで Booth を手動で開始したり有効にしたりしないでください。
[arbitrator-node ~] # pcs booth start [arbitrator-node ~] # pcs booth enable
各クラスターに割り当てられた 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
各クラスターに定義したリソースグループにチケット制約を追加します。
[cluster1-node1 ~] # pcs constraint ticket add apacheticket apachegroup [cluster2-node1 ~] # pcs constraint ticket add apacheticket apachegroup
次のコマンドを実行すると、現在設定されているチケット制約を表示できます。
pcs constraint ticket [show]
この設定用に作成したチケットを最初のクラスターに付与します。
チケットを付与する前にチケット抑制を定義する必要はありません。最初にチケットをクラスターに付与した後、
pcs booth ticket revoke
コマンドで手動でオーバーライドしない限り、Booth はチケットの管理を引き継ぎます。pcs booth
管理コマンドの詳細は、pcs booth
コマンドの PCS ヘルプ画面を参照してください。[cluster1-node1 ~] # pcs booth ticket grant apacheticket
チケットは、いつでも (この手順の完了後でも) 追加および削除できます。ただし、チケットを追加または削除した後、この手順の説明どおりに、他のノード、クラスター、および仲裁ノードに対して設定ファイルを同期し、チケットを付与する必要があります。
Booth 設定ファイル、チケット、およびリソースのクリーンアップや削除に使用できるその他の Booth 管理コマンドに関する情報は、pcs booth
コマンドの PCS ヘルプ画面を参照してください。