30.2. 使用 Pacemaker 配置多站点集群
您可以使用以下流程配置使用 Booth 票据管理器的多站点配置。
这些示例命令使用以下协议:
-
集群 1 由节点
cluster1-node1
和cluster1-node2
组成 - 集群 1 具有为其分配的浮动 IP 地址 192.168.11.100
-
集群 2 由
cluster2-node1
和cluster2-node2
组成 - 集群 2 具有为其分配的浮动 IP 地址 192.168.22.100
-
仲裁节点是
arbitrator-node
,其 IP 地址为 192.168.99.100 -
此配置使用的 Booth ticket 的名称是
apacheticket
这些示例命令假定已将 Apache 服务的集群资源配置为每个集群的资源组 apachegroup
的一部分。不需要每个集群上的资源和资源组为这些资源配置一个 ticket 约束,因为每个集群的 Pacemaker 实例都是独立的,但这是一个常见故障转移的场景。
请注意,在配置过程中,您可以随时输入 pcs booth config
命令来显示当前节点或集群的 booth 配置,或输入 pcs booth status
命令来显示本地节点上 booth 的当前状态。
步骤
在两个集群的每个节点上都安装
booth-site
Booth ticket manager 软件包。[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
守护进程,请在两个集群的所有节点上以及仲裁程序节点上执行以下命令,以启用红帽高可用性附加组件所需的端口。# firewall-cmd --permanent --add-service=high-availability # firewall-cmd --add-service=high-availability
您可能需要修改开放端口以适合本地条件。有关红帽高可用性附加组件所需端口的更多信息,请参阅 为高可用性附加组件启用端口。
在一个集群的一个节点上创建 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 配置创建 ticket。这是您要用来定义资源约束的票据,允许仅在向集群授予这个票据时运行资源。
这个基本故障转移配置过程只使用一个 ticket,但您可以为每个复杂情况创建额外的 ticket,因为每个 ticket 都与不同的资源或资源关联。
[cluster1-node1 ~] # pcs booth ticket add apacheticket
将 Booth 配置同步至当前集群中的所有节点。
[cluster1-node1 ~] # pcs booth sync
在仲裁机构(arbitrator)节点中,将 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,因为 Booth 作为这些集群中的 Pacemaker 资源运行。
[arbitrator-node ~] # pcs booth start [arbitrator-node ~] # pcs booth enable
使用分配给每个集群的浮动 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
为您为每个集群定义的资源组添加一个 ticket 约束。
[cluster1-node1 ~] # pcs constraint ticket add apacheticket apachegroup [cluster2-node1 ~] # pcs constraint ticket add apacheticket apachegroup
您可以输入以下命令来显示当前配置的 ticket 约束。
pcs constraint ticket [show]
为第一个集群授予您为此设置创建的 ticket。
请注意,在授予 ticket 前不需要定义 ticket 约束。一旦您最初向集群授予了一个票据,Booth 会接管票据管理,除非您使用
pcs booth ticket revoke
命令手动覆盖了此票据。有关pcs booth
管理命令的详情,请查看pcs booth
命令的 PCS 帮助屏幕。[cluster1-node1 ~] # pcs booth ticket grant apacheticket
可在任何时间添加或删除票据,即使完成此步骤后也是如此。但是,添加或删除一个 ticket 后,您必须将配置文件同步到其他节点和集群,并赋予这个问题单。
有关可用于清理和删除 Booth 配置文件、票据和资源的其他 Booth 管理命令的详情,请参考 pcs booth
命令的 PCS 帮助屏幕。