30.3. 删除 Booth 票据
使用 pcs booth ticket remove 命令删除 Booth 集群票据后,Booth 票据的状态会在 Cluster Information Base (CIB)中保持 loaded 。在从一个站点上的 Booth 配置中删除一个票据,并使用 pcs booth pull 命令将 Booth 配置拉取到另一个站点后,也会出现这种情况。当您配置一个票据约束时,这可能会导致问题,因为即使票据约束被删除后,也可以授予票据约束。因此,集群可能冻结或隔离一个节点。在 RHEL 9.6 及更高版本中,您可以使用 pcs booth ticket cleanup 命令从 CIB 中删除 Booth ticket 来防止这种情况。
先决条件
- 您已设置了一个使用 Booth 票据管理器的多站点配置。具体说明请参阅 使用 Pacemaker 配置多站点集群。
配置的示例使用以下安排:
-
集群 1 由节点
cluster1-node1和cluster1-node2组成。 -
集群 2 由节点
cluster2-node1和cluster2-node2组成。 -
仲裁节点被命名为
arbitrator-node。 -
此配置使用的 Booth 票据的名称是
apacheticket。
-
集群 1 由节点
流程
要删除 Booth 票据,请执行以下步骤。
从 Booth 配置的一个集群站点中的一个集群节点:
将要删除的票据置于
standby模式。这个示例使用的票据名为apacheticket。[cluster1-node1 ~]# pcs booth ticket standby apacheticket从 Booth 配置中删除票据。
[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 apacheticket
从 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 apacheticket
在仲裁节点中,使用更新的配置从节点下载更新的 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要检查 Booth 票据是否已从集群节点上的 CIB 中删除,请在集群中的任何节点上使用
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/>