packmaker和haproxy实现的负载均衡和高可用集群

pacemaker实现高可用集群:

两个节点的部署完全相同
server3—–>节点1—->haproxy—->pacemaker/corosync(心跳)
server4—–>节点2—->haproxy—->pacemaker/corosync(心跳)
server3:
节点上安装corosync心跳

yum install packmaker corosync -y
cd /etc/corosync/
cp corosync.conf.example corosync.conf
vim corosync.conf
totem {
        version: 2
        secauth: off
        threads: 0
        interface {
                ringnumber: 0
                bindnetaddr: 172.25.30.0 #子网段
                mcastaddr: 226.94.1.30 #广播地址修改每个人都要不一样否则会出现错乱
                mcastport: 5435 #修改广播地址端口
                ttl: 1 #生存时间值
        }
}
service {
        name: pacemaker
        var: 0 #开启服务只需要开一个如果是1就要开启corosync还需要开启pacemaker服务
}

/etc/init.d/corosync start
scp corosync.conf server4:/etc/corosync/ #两个节点必须保证广播地址和端口一致



安装交互式管理软件

yum install pssh-2.3.1-2.1.x86_64.rpm crmsh-1.2.6-0.rc2.2.1.x86_64.rpm -y
#安装交互式管理软件
crm_verfiy -VL #检查语法错误会发现没有fence高级群检测如果只有两个节点就不构成集群也会报错因此我们需要关闭fence;忽略检测

测试两个节点状态:

crm_mon #在此之前查看两个节点之间的心跳是否保持连接
[root@server3 corosync]# crm_verify -VL
crm(live)configure# property stonith-enabled=false
crm(live)configure# primitive vip ocf:heartbeat:IPad
dr2 params ip=172.25.30.100 cidr_netmask=24 op monitor interval=1min
当两个节点有一个坏掉就不够集群com_mon会发现节点状态没有online
crm(live)configure# property no-quorum-policy=ignore
添加haproxy资源
crm(live)configure# primitive haproxy lsb:haproxy op monitor interval=1min
因为可能会出现haproxy在节点1 VIP在另一个节点就会出现资源分离因此我们需要把他们绑定在一个组里
crm(live)configure# group hagroup vip haproxy 
standby让该节点歇菜谁执行谁歇菜
crm node standby
online 让改节点重新开启服务
crm node online

[root@server3 corosync]# crm_verify -VL


物理机上开启fence服务:把fence_xvm.key传给节点/etc/cluster

systemctl start fence_virtd.service
cd /etc/cluster/
scp fence_xvm.key root@172.25.30.3:/etc/cluster/

节点上安装fence:

yum install /usr/sbin/fence_xvm
mkdir /etc/cluster
ls /etc/cluster/ #查看有没有fence_xvm.key
 stonith_admin -I
stonith_admin -M -a fence_xvm #激活fence_xvm服务
crm(live)configure# property stonith-enabled=true #在集群中开启fence
crm(live)configure# primitive vmfence stonith:fence_xvm params pcmk_host_map="server3:test3;server4:test4" op monitor interval=1min #在节点添加fence_xvm服务 pcmk_host_map节点映射 monitor监控 interval=1min每隔一分钟监控一次如果有节点坏掉直接爆头
fence是在对立的一边服务和VIP在哪边fence就在他对立的一边
测试当一个节点trash掉(执行 echo c > /etc/sysrq_trigger 内核崩溃)
fence就会跑到坏掉的节点上
fence_xvm -H test4 #test1让test4重启断电

crm_mon #监控节点工作状态

重启之后将心跳服务打开从而建立节点之间的联系
/ect/init.d/corosync start
crm node online #让节点上线

所有节点配置:

猜你喜欢

转载自blog.csdn.net/dreamer_xixixi/article/details/81413879