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 软件包。yum install -y booth-site yum install -y booth-site yum install -y booth-site yum install -y booth-site
[root@cluster1-node1 ~]# yum install -y booth-site [root@cluster1-node2 ~]# yum install -y booth-site [root@cluster2-node1 ~]# yum install -y booth-site [root@cluster2-node2 ~]# yum install -y booth-site
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在仲裁节点上安装
pcs
、booth-core
和booth-arbitrator
软件包。yum install -y pcs booth-core booth-arbitrator
[root@arbitrator-node ~]# yum install -y pcs booth-core booth-arbitrator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您正在运行
firewalld
守护进程,请在两个集群的所有节点上以及仲裁程序节点上执行以下命令,以启用红帽高可用性附加组件所需的端口。firewall-cmd --permanent --add-service=high-availability firewall-cmd --add-service=high-availability
# firewall-cmd --permanent --add-service=high-availability # firewall-cmd --add-service=high-availability
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可能需要修改开放端口以适合本地条件。有关红帽高可用性附加组件所需端口的更多信息,请参阅 为高可用性附加组件启用端口。
在一个集群的一个节点上创建 Booth 配置。您为每个集群和地区指定的地址必须是 IP 地址。对于每个集群,您可以指定一个浮动 IP 地址。
[cluster1-node1 ~] # pcs booth setup sites 192.168.11.100 192.168.22.100 arbitrators 192.168.99.100
[cluster1-node1 ~] # pcs booth setup sites 192.168.11.100 192.168.22.100 arbitrators 192.168.99.100
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个命令会在其运行的节点上创建配置文件
/etc/booth/booth.conf
和/etc/booth/booth.key
。为 Booth 配置创建 ticket。这是您要用来定义资源约束的票据,允许仅在向集群授予这个票据时运行资源。
这个基本故障转移配置过程只使用一个 ticket,但您可以为每个复杂情况创建额外的 ticket,因为每个 ticket 都与不同的资源或资源关联。
[cluster1-node1 ~] # pcs booth ticket add apacheticket
[cluster1-node1 ~] # pcs booth ticket add apacheticket
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 Booth 配置同步至当前集群中的所有节点。
[cluster1-node1 ~] # pcs booth sync
[cluster1-node1 ~] # pcs booth sync
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在仲裁机构(arbitrator)节点中,将 Booth 配置拉取到仲裁机构中。如果您之前还没有这样做,则必须首先向要提取配置的节点验证
pcs
。[arbitrator-node ~] # pcs host auth cluster1-node1 [arbitrator-node ~] # pcs booth pull cluster1-node1
[arbitrator-node ~] # pcs host auth cluster1-node1 [arbitrator-node ~] # pcs booth pull cluster1-node1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 Booth 配置拉取到其他集群,并同步到该集群的所有节点。与仲裁节点一样,如果您之前还没有这样做,您必须首先向要提取配置的节点验证
pcs
。[cluster2-node1 ~] # pcs host auth cluster1-node1 [cluster2-node1 ~] # pcs booth pull cluster1-node1 [cluster2-node1 ~] # pcs booth sync
[cluster2-node1 ~] # pcs host auth cluster1-node1 [cluster2-node1 ~] # pcs booth pull cluster1-node1 [cluster2-node1 ~] # pcs booth sync
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在仲裁机构中开启并启动 Booth。
注意您不能在集群的任何节点上手动启动或启用 Booth,因为 Booth 作为这些集群中的 Pacemaker 资源运行。
[arbitrator-node ~] # pcs booth start [arbitrator-node ~] # pcs booth enable
[arbitrator-node ~] # pcs booth start [arbitrator-node ~] # pcs booth enable
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用分配给每个集群的浮动 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 booth create ip 192.168.11.100 [cluster2-node1 ~] # pcs booth create ip 192.168.22.100
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为您为每个集群定义的资源组添加一个 ticket 约束。
[cluster1-node1 ~] # pcs constraint ticket add apacheticket apachegroup [cluster2-node1 ~] # pcs constraint ticket add apacheticket apachegroup
[cluster1-node1 ~] # pcs constraint ticket add apacheticket apachegroup [cluster2-node1 ~] # pcs constraint ticket add apacheticket apachegroup
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以输入以下命令来显示当前配置的 ticket 约束。
pcs constraint ticket [show]
pcs constraint ticket [show]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为第一个集群授予您为此设置创建的 ticket。
请注意,在授予 ticket 前不需要定义 ticket 约束。最初为集群授予一个票据后,Booth 会接管票据管理,除非您使用
pcs booth ticket revoke
命令手动覆盖了它。有关pcs booth
管理命令的详情,请使用pcs boot --help
命令。[cluster1-node1 ~] # pcs booth ticket grant apacheticket
[cluster1-node1 ~] # pcs booth ticket grant apacheticket
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
可在任何时间添加或删除票据,即使完成此步骤后也是如此。但是,添加或删除一个 ticket 后,您必须将配置文件同步到其他节点和集群,并赋予这个问题单。
有关可用于清理和删除 Booth 配置文件、票据和资源的其他 Booth 管理命令的信息,请使用 pcs booth --help
命令。