概述
本文档实现的beegfs高可用方案,前提是beegfs的management、metadata、storage三种服务的工作目录均是使用共享存储挂载到本地。
把beegfs集群的所有节点通过pacemaker+corosync实现一个pacemaker集群。
首先如图所示:mgmt1和mgmt2两个节点划分一个组提供给management使用; Node1和Node2划分一个组提供给提供给storage作为存储节点,Node3和Node4划分一个组提供给metadata作为元数据节点。
为management服务创建一个浮动ip,其他节点都通过管理浮动ip和management进行通信。
然后把management、meta和storage三种服务的配置信息和数据都存放在挂载到本地的共享存储中,这样就把服务数据和节点解耦。
使用pacemaker来管理beegfs集群中的management、meta和storage三种服务:挂载目录文件系统的接管和systemd服务的接管;对于management还有浮动ip的接管。
当一个节点挂掉之后,pacemaker可以根据提前设置的规则把挂掉节点上的服务在其他同组内节点重新启动,因为服务的配置信息和数据都放在共享存储,所以接管节点首先会把被接管服务的共享存储挂载到指定目录,然后在本机启动被接管服务。
准备工作
1、关闭防火墙
systemctl stop firewalld
搭建pacemaker集群
1、安装相关rpm包(每个节点)
yum -y install corosync pacemaker pcs
2、修改 hacluster 用户密码(每个节点)
sudo echo hacluster:hacluster | sudo chpasswd
3、启动pcsd服务(每个节点)
systemctl start pcsd; systemctl enable pcsd
4、修改hosts文件,添加节点和主机名的映射关系(每个节点)
例如:
192.168.1.1 manangement
5、进行pacemaker集群的节点认证
pcs cluster auth nodeMM1 nodeMM2 nodeSS1 nodeSS2
6、创建集群
pcs cluster setup --name beegfs_cluster nodeMM1 nodeMM2 nodeSS1 nodeSS2 –p hacluster –u hacluster
7、设置集群服务为开机自启
pcs cluster enable –all
8、开始运行集群
pcs cluster start –-all
9、其他相关集群配置
1、pcs property set symmetric-cluster=false
2、设置资源Stickiness属性,使得资源不会出现在发生故障的节点上
pcs resource defaults resource-stickiness=15000
3、pcs property set stonith-enabled=false
Beegfs HA配置
1、mgmtd配置
1、设置pcs服务管理mgmtd的虚拟IP
pcs resource create mgmt1_ip ocf:heartbeat:IPaddr2 ip=192.168.100.244 iflabel=manageme