29.3. Booth チケットの削除
pcs booth ticket remove コマンドを使用して Booth クラスターチケットを削除した後も、Booth チケットの状態は Cluster Information Base (CIB) にロードされたままになります。これは、1 つのサイトの Booth 設定からチケットを削除し、pcs booth pull コマンドを使用して Booth 設定を別のサイトにプルした後も同様です。
これは、チケット制約を設定する際に問題が発生する可能性があります。チケット制約は、チケットが削除された後でも付与される可能性があるためです。その結果、クラスターがノードをフリーズまたはフェンスする可能性があります。これを防ぐには、pcs booth ticket cleanup コマンドを使用して、CIB から Booth チケットを削除します。
前提条件
- Booth チケットマネージャーを使用するマルチサイト設定を設定した。手順については、Pacemaker を使用したマルチサイトクラスターの設定 を参照してください。
設定された例では、以下が適用されています。
-
Cluster 1 は、ノード
cluster1-node1とcluster1-node2で構成されます。 -
Cluster 2 は、ノード
cluster2-node1とcluster2-node2で構成されます。 -
仲裁ノードの名前は
arbitrator-nodeです。 -
この設定が使用する Booth チケットの名前は
apacheticketです。
-
Cluster 1 は、ノード
手順
Booth 設定の 1 つのクラスターサイト内のクラスターノードから、以下を実行します。
削除するチケットを
standbyモードにします。この例で使用するチケットの名前はapacheticketです。[cluster1-node1 ~]# pcs booth ticket standby apacheticketBooth 設定からチケットを削除します。
[cluster1-node1 ~]# pcs booth ticket remove apacheticket現在のクラスターのすべてのノードに対して Booth 設定を同期します。
[cluster1-node1 ~]# pcs booth sync現在のクラスター内の Booth リソースを再起動します。
[cluster1-node1 ~]# pcs booth restart現在のクラスター内の CIB からチケットを削除します。
[cluster1-node1 ~]# pcs booth ticket cleanup
Booth 設定に残存する各クラスターサイトのクラスターノードから以下を実行します。
削除するチケットを
standbyモードにします。[cluster2-node1 ~]# pcs booth ticket standby apacheticket更新された設定を持つノードから Booth 設定ファイルをダウンロードします。
[cluster2-node1 ~]# pcs booth pull cluster1-node1現在のクラスターのすべてのノードに対して Booth 設定を同期します。
[cluster2-node1 ~]# pcs booth sync現在のクラスター内の Booth リソースを再起動します。
[cluster2-node1 ~]# pcs booth restart現在のクラスター内の CIB からチケットを削除します。
[cluster2-node1 ~]# pcs booth ticket cleanup
仲裁ノードで、更新された設定を持つノードから更新された Booth 設定ファイルをダウンロードします。
[arbitrator-node ~]# pcs booth pull clusternode-node1
検証
Booth チケットが Booth 設定から削除されたかどうかを確認するには、各クラスターノードと仲裁ノードで
pcs booth configコマンドを実行します。たとえば、Pacemaker を用いたマルチサイトクラスターの設定 で説明されている手順を使用して
apacheticketという名前のチケットを設定すると、コマンドによって次の出力が表示されます。[cluster1-node1 ~]# pcs booth config authfile = /etc/booth/booth.key/ site = 192.168.11.100 site = 192.168.22.100 arbitrator = 192.168.99.100 ticket = "apacheticket"Booth 設定からチケットを削除すると、コマンドを実行しても
ticket= "apacheticket"が表示されなくなります。[cluster1-node1 ~]# pcs booth config authfile = /etc/booth/booth.key site = 192.168.11.100 site = 192.168.22.100 arbitrator = 192.168.99.100クラスターノード上の CIB から Booth チケットが削除されたかどうかを確認するには、クラスター内の任意のノードで
crm_ticketユーティリティーの--query-xmlオプションを使用します。たとえば、apacheticketという名前の Booth チケットを設定すると、ユーティリティーによって次の出力が表示されます。[cluster1-node1 ~]# crm_ticket --query-xml State XML: <tickets> <ticket_state id="apacheticket" granted="true" booth-cfg-name="booth" owner="0" expires="1740986835" term="0" standby="false"/> </tickets>CIB からチケットを削除すると、出力に
id="apacheticket"のticket_state要素が表示されなくなります。[cluster1-node1 ~]# crm_ticket --query-xml State XML: <tickets/>