多站点高可用部署

多站点高可用部署,第1张

多站点高可用部署

集群跨越多个站点时,站点之间的网络连接问题可能会导致脑裂情况。当连接断开时,一个站点上的节点无法确定另一个站点上的节点是否发生故障或仍在使用发生故障的站点互连运行。此外,在两个相距太远而无法保持同步的站点之间提供高可用性服务可能会出现问题。为了解决这些问题,Pacemaker通过使用Booth集群票证管理器,全面支持配置跨多个站点的高可用性集群的能力。

Booth 集群票务管理器概述

Booth票证管理器是一种分布式服务,旨在运行在与连接特定站点的集群节点的网络不同的物理网络上。它产生了另一个松散的集群,即Booth 结构,位于站点的常规集群之上。这个聚合的通信层促进了基于共识的单个展位票的决策过程。

Booth票是 Booth 结构中的一个单例,代表一个时间敏感的、可移动的授权单元。可以将资源配置为需要特定票证才能运行。这可以确保资源一次仅在一个站点上运行,并且已为其授予一张或多张票。

您可以将 Booth 结构视为由运行在不同站点的集群组成的覆盖集群,其中所有原始集群相互独立。是 Booth 服务与集群通信它们是否已获得票证,并且是 Pacemaker 根据 Pacemaker 票证约束确定是否在集群中运行资源。这意味着在使用票证管理器时,每个集群都可以运行自己的资源以及共享资源。例如,可以有资源 A、B 和 C 仅在一个集群中运行,资源 D、E 和 F 仅在另一个集群中运行,以及资源 G 和 H 在两个集群中的任何一个中运行,由票证确定。

使用 Pacemaker 配置多站点集群

预计需要五台机器(根据实际情况而定),其中集群一和集群二各需要两台机器,Booth站点(仲裁节点)需要一台机器,并且这五台机器都安装HA安装包。

1. 创建集群

集群一(主集群)包括cluster1-node1和cluster1-node2,集群二(备用集群)包括cluster2-node1和cluster2-node2。

说明:
两个集群名称不要相同,如用于测试目的可关闭这五台机器防火墙,若实际项目中使用应根据实际情况而定。

2. 安装Booth票证管理器包

在两个集群的每个节点都安装booth-core及booth-site
Booth站点安装booth-core及booth-arbitrator

3. 创建Booth配置

[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配置(如集群一的cluster1-node1节点)

4. 创建票证(ticket)

[cluster1-node1 ~] # pcs booth ticket add superticket
为Booth配置创建票证(superticket为自定义票证名称)。这是您将用于定义资源约束的票证,该限制将允许资源仅在此票证被授予集群时运行。

说明:
增加票证约束后,两个集群的所有节点资源都变更为停止状态(参考后面约束相关内容),假如在cluster1-node1创建票证,cluster1-node1集群内的资源可以正常启动(通常情况下只为所有集群中的某一个节点创建票证,当这个节点异常或者这个节点所在的集群异常(两台集群机器关机),将会在另一个节点或者另一个集群中的某个节点启动资源)。

5. 配置同步

[cluster1-node1 ~] # pcs booth sync
将 Booth 配置同步到当前集群中的所有节点

[仲裁节点 ~] # pcs host auth cluster1-node1
[仲裁节点 ~] # pcs booth pull cluster1-node1
将Booth配置发送仲裁节点

[cluster2-node1 ~] # pcs host auth cluster1-node1
[cluster2-node1 ~] # pcs booth pull cluster1-node1
[cluster2-node1 ~] # pcs booth sync
将Booth配置发送另一个集群并同步到该集群的所有节点

6. 在仲裁节点启动并启用Booth

[仲裁节点 ~] # pcs booth start
[仲裁节点 ~] # pcs booth enable
将Booth配置为在两个集群站点上作为集群资源运行。这将创建一个资源组,booth-ip及booth-service作为该组的成员。
不要在集群的任何节点上手动启动或启用Booth,因为Booth在这些集群中作为Pacemaker资源运行。

7. 为每个集群创建浮动IP(虚拟IP)

[cluster1-node1 ~] # pcs booth create ip 192.168.11.100
[cluster2-node1 ~] # pcs booth create ip 192.168.22.100
在每个集群的其中一个节点上创建Booth浮动IP(使用《3. 创建Booth配置》中的IP)

8. 增加票证约束

[cluster1-node1 ~] # pcs constraint ticket add superticket newgroup
[cluster2-node1 ~] # pcs constraint ticket add superticket newgroup
将票证约束添加到您为每个集群定义的资源组。

9. 常用指令

[cluster1-node1 ~] # pcs constraint ticket
查看票证组名称

[cluster1-node1 ~] # pcs booth config
查看票证组信息

[cluster1-node1 ~] # pcs booth status
查看booth节点之间通讯状态

[cluster1-node1 ~] # pcs booth ticket grant superticket
在某个节点票证授权(增加约束后,通过票证授权启动节点内资源)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5715465.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存