30.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 チケットマネージャーのパッケージである
booth-siteを、両方のクラスターの各ノードにインストールします。[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-sitepcsパッケージ、booth-coreパッケージ、およびbooth-arbitratorパッケージをアービトレーターノードにインストールします。[root@arbitrator-node ~]# dnf install -y pcs booth-core booth-arbitratorfirewalldデーモンを実行している場合は、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 アドレスである必要があります。各クラスターにフローティング 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 apacheticketBooth の設定を現在のクラスター内の全ノードに同期します。
[cluster1-node1 ~] # pcs booth syncアービトレーターノードから、Booth 設定をアービトレーターに取得します。以前に認証を行っていない場合は、まず設定の取得元のノードに対して
pcsを認証する必要があります。[arbitrator-node ~] # pcs host auth cluster1-node1 [arbitrator-node ~] # pcs booth pull cluster1-node1Booth 設定を別のクラスターに取得し、そのクラスターの全ノードを同期します。アービトレーターノードの場合と同様に、以前に認証を行っていない場合は、まず設定の取得元のノードに対して
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 [config]この設定用に作成したチケットを最初のクラスターに付与します。
注記チケットを付与する前に、あらかじめチケット制約を定義しておく必要はありません。最初にクラスターにチケットを付与すると、
pcs booth ticket revokeコマンドを使用して手動でオーバーライドしない限り、Booth がチケット管理を引き継ぎます。pcs booth管理コマンドの詳細は、システムでpcs booth --helpコマンドで確認してください。[cluster1-node1 ~] # pcs booth ticket grant apacheticketチケットは、いつでも (この手順の完了後でも) 追加および削除できます。ただし、チケットを追加または削除した後、この手順の説明どおりに、他のノード、クラスター、およびアービトレーターノードに対して設定ファイルを同期し、チケットを付与する必要があります。
Booth チケットを削除する詳細な手順については、Booth チケットの削除 を参照してください。追加の Booth 管理コマンドの詳細は、
pcs booth --helpコマンドで確認してください。