29.2. 使用 Pacemaker 配置多站点集群

您可以使用以下流程配置使用 Booth 票据管理器的多站点配置。

这些示例命令使用以下协议:

  • 集群 1 由节点 cluster1-node1cluster1-node2 组成
  • 集群 1 具有为其分配的浮动 IP 地址 192.168.11.100
  • 集群 2 由 cluster2-node1cluster2-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 的当前状态。

步骤

  1. 在两个集群的每个节点上都安装 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
  2. 在仲裁节点上安装 pcsbooth-corebooth-arbitrator 软件包。

    [root@arbitrator-node ~]# dnf install -y pcs booth-core booth-arbitrator
  3. 如果您正在运行 firewalld 守护进程,请在两个集群的所有节点上以及仲裁程序节点上执行以下命令,以启用红帽高可用性附加组件所需的端口。

    # firewall-cmd --permanent --add-service=high-availability
    # firewall-cmd --add-service=high-availability

    您可能需要修改开放端口以适合本地条件。有关红帽高可用性附加组件所需端口的更多信息,请参阅 为高可用性附加组件启用端口

  4. 在一个集群的一个节点上创建 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

  5. 为 Booth 配置创建 ticket。这是您要用来定义资源约束的票据,允许仅在向集群授予这个票据时运行资源。

    这个基本故障转移配置过程只使用一个 ticket,但您可以为每个复杂情况创建额外的 ticket,因为每个 ticket 都与不同的资源或资源关联。

    [cluster1-node1 ~] # pcs booth ticket add apacheticket
  6. 将 Booth 配置同步至当前集群中的所有节点。

    [cluster1-node1 ~] # pcs booth sync
  7. 在仲裁机构(arbitrator)节点中,将 Booth 配置拉取到仲裁机构中。如果您之前还没有这样做,则必须首先向要提取配置的节点验证 pcs

    [arbitrator-node ~] # pcs host auth cluster1-node1
    [arbitrator-node ~] # pcs booth pull cluster1-node1
  8. 将 Booth 配置拉取到其他集群,并同步到该集群的所有节点。与仲裁节点一样,如果您之前还没有这样做,您必须首先向要提取配置的节点验证 pcs

    [cluster2-node1 ~] # pcs host auth cluster1-node1
    [cluster2-node1 ~] # pcs booth pull cluster1-node1
    [cluster2-node1 ~] # pcs booth sync
  9. 在仲裁机构中开启并启动 Booth。

    注意

    您不能在集群的任何节点上手动启动或启用 Booth,因为 Booth 作为这些集群中的 Pacemaker 资源运行。

    [arbitrator-node ~] # pcs booth start
    [arbitrator-node ~] # pcs booth enable
  10. 使用分配给每个集群的浮动 IP 地址,将 Booth 配置为在两个集群站点上作为集群资源运行。这将创建一个资源组,并将 booth-ipbooth-service 作为该组的成员。

    [cluster1-node1 ~] # pcs booth create ip 192.168.11.100
    [cluster2-node1 ~] # pcs booth create ip 192.168.22.100
  11. 为您为每个集群定义的资源组添加一个 ticket 约束。

    [cluster1-node1 ~] # pcs constraint ticket add apacheticket apachegroup
    [cluster2-node1 ~] # pcs constraint ticket add apacheticket apachegroup

    您可以输入以下命令来显示当前配置的 ticket 约束。

    pcs constraint ticket [show]
  12. 为第一个集群授予您为此设置创建的 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 帮助屏幕。