corosync 和 pacemaker实现高可用

1.在server4和server5上安装pacemaker和corosync
yum install pacemaker yum install corosync -y
2.修改配置文件
cd /etc/corosync/
cp corosync.conf.example corosync.conf
vim corosync.conf

# Please read the corosync.conf.5 manual page
compatibility: whitetank
totem {
        version: 2
        secauth: off
        threads: 0
        interface {
                ringnumber: 0
                bindnetaddr: 172.25.70.0  # 集群工作的网段
                mcastaddr: 226.94.1.3   # 多播ip
                mcastport: 5405   # 多播端口号
                ttl: 1
        }
}
logging {
        fileline: off
        to_stderr: no
        to_logfile: yes
        to_syslog: yes
        logfile: /var/log/cluster/corosync.log
        debug: off
        timestamp: on
        logger_subsys {
                subsys: AMF
                debug: off
        }
}

amf {
        mode: disabled
}
service {           #启动corosync完成后,就启动pacemaker
        name: pacemaker
        ver: 0
}           

3.将修改好的节点发送给另一个节点
scp corosync.conf server5:/etc/corosync/
在servr5和server4上打开corosync
/etc/init.d/corosync start
4.在两个节点处查看日志,看是否有错误
5.在server4和server5上
yum install crmsh-1.2.6-0.rc2.2.1.x86_64.rpm pssh-2.3.1-2.1.x86_64.rpm
6.两个节点均crm_verify -VL 校验 ,刚开始会报错添加下面这条策略后,就会没错了
这里写图片描述
7.在server4上

[root@server4 ~]# crm
crm(live)# configure
crm(live)configure# show
node server1
node server4
property $id="cib-bootstrap-options" \
    dc-version="1.1.10-14.el6-368c726" \
    cluster-infrastructure="classic openais (with plugin)" \
    expected-quorum-votes="2"
crm(live)configure# property stonith-enabled=false
# Stonith 即shoot the other node in the head使Heartbeat软件包的一部分,
该组件允许系统自动地复位一个失败的服务器使用连接到一个健康的服务器的遥远电源设备。
Stonith设备是一种能够自动关闭电源来响应软件命令的设备 
crm(live)configure# commit
crm(live)configure# show
node server1
node server4
property $id="cib-bootstrap-options" \
    dc-version="1.1.10-14.el6-368c726" \
    cluster-infrastructure="classic openais (with plugin)" \
    expected-quorum-votes="2" \
    stonith-enabled="false"

在server4上:

# crm
crm(live)# configure 
crm(live)configure# primitive vip ocf:heartbeat:IPaddr2 params ip=172.25.70.100 cidr_netmask=24 op monitor interval=1min  ###添加vip,监控时间间隔1分钟
crm(live)configure# commit

这里写图片描述
查看虚拟ip会添加上
这里写图片描述
这里写图片描述

crm(live)configure# property no-quorum-policy=ignore   
###忽略节点数的检测,当一台主机挂掉后会立即接管
# 关闭集群对节点数量的检查,节点server1如果故障,节点server4收不到心跳请求,直接接管程序,保证正常运行,不至于一个节点崩掉而使整个集群崩掉
crm(live)configure# commit  

这里写图片描述

将server4中的haproxy服务配置好
scp rpmbuild/RPMS/x86_64/haproxy-1.6.11-1.x86_64.rpm  server5:/root
在server1和server4上rpm -ivh haproxy-1.6.11-1.x86_64.rpm 
scp /etc/haproxy/haproxy.cfg   server5:/etc/haproxy  ###将配置文件发过去
这个rpm包在/root/haproxy-1.6.11/rpmbuild/RPMS/x86_64
.两端均打开haproxy:/etc/init.d/haproxy start

这里写图片描述
这里写图片描述

crm(live)configure# primitive haporxy lsb:haproxy op monitor interval=1min   ###
crm(live)configure# commit    
crm(live)configure# group hagroup vip haporxy  ###添加资源管理组
crm(live)configure# commit
crm(live)configure# exit
bye

这里写图片描述
9.crm_mon监控命令
这里写图片描述
10.crm node standby 在server1或server4停止服务。在另一端用监控命令查看,发现已经下线。
这里写图片描述
11.crm node online 在server1或server4开启服务
这里写图片描述

添加fence设备

在物理机上:
sysytemctl status fence_virtd  ###查看fence服务是否开启
在server4上:
 stonith_admin -I   
 ###查看有没有fence_xvm文件,如果没有的话安装fence-virt-0.2.3-15.el6.x86_64即可
 fence_xvm
 fence_wti
 fence_vmware_soap
 fence_vmware_helper
 fence_vmware
 fence_virt
stonith_admin -M -a fence_xvm   ###查看之前对fence的设置,是否正常
crm(live)configure# primitive vmfence stonith:fence_xvm params pcmk_host_map="server1:test1;server4:test4" op monitor interval=1min
# 添加fence服务处理故障的节点server1:test1  server1是主机名,test1是真实的虚拟机名称
crm(live)configure# commit
crm(live)configure# property stonith-enabled=true    ###将禁用的stonith打开
crm(live)configure# commit   ##添加一次提交一次
crm(live)configure# exit

这里写图片描述
crm_mon ###监控下
添加成功话,fence设备会工作在对立的server4上
这里写图片描述

[root@server4 ~]# echo c > /proc/sysrq-trigger    ###把server4的系统搞奔溃,server4会自动重启
fence设备会自动切到server1上,这样高可用就配置成功了

这里写图片描述

猜你喜欢

转载自blog.csdn.net/xbw_linux123/article/details/81461258
今日推荐