Pacemaker是一个集群资源管理器。它利用集群基础构件(OpenAIS、heartbeat或corosync)提供的消息和成员管理能力来探测并从节点或资源级别的故障中恢复,以实现群集服务(亦称资源)的最大可用性。
pacemaker和corosync,后者用于心跳检测,前者用于资源转移。两个结合起来使用,可以实现对高可用架构的自动管理。 心跳检测是用来检测服务器是否还在提供服务,只要出现异常不能提供服务了,就认为它挂掉了。 当检测出服务器挂掉之后,就要对服务资源进行转移。
CoroSync是运行于心跳曾的开源软件。 PaceMaker是运行于资源转移层的开源软件。
corosync是集群框架引擎程序,pacemaker是高可用集群资源管理器,crmsh是pacemaker的命令行工具。
1.在server2和server3(两个节点,相互感应彼此的服务开启状态,实现双机热备)上安装pacemaker和corosync首先配置yum源才能下载东西
634 yum install -y pacemaker
yum install -y corosync #一般系统自带,不用下载
636 cd /etc/corosync
637 ls
638 cp corosync.conf.example corosync.conf #复制到官方文档中
640 ls
641 vi corosync.conf
totem {
version: 2
secauth: off
threads: 0
interface {
ringnumber: 0
bindnetaddr: 172.25.17.0 #更改此处为你主机的网段
mcastaddr: 226.94.1.17 ##更改多播地址
mcastport: 5405
ttl: 1
}
}
其他的不变在最后加
service{
name:pacemaker ##corosync开启的时候pacemaker也自动加载
ver:0
}
645 scp corosync.conf [email protected]:/etc/corosync #复制到4里面
646 /etc/init.d/corosync start
647 ps ax #可以看见pacemaker也在进程里面
648 cat /var/log/messages #产看日至一般没有错误
649 crm_verify -LV #检查语法,会有错误,因为我们没有开启fence集群,接下来的步骤是为了语法正确
650 cd /pub
651 ls ##此处有检查语法的软件
653 yum install pssh-2.3.1-2.1.x86_64.rpm crmsh-1.2.6-0.rc2.2.1.x86_64.rpm
654 rpm -q crmsh #检查有没有crmsh这个软件
655 scp crmsh-1.2.6-0.rc2.2.1.x86_64.rpm pssh-2.3.1-2.1.x86_64.rpm [email protected]:/pub ##把这两个软件包考到4里面去
656 crm
configure
show
657 crm configure show ##此命令同上
658 crm
configure
property stonith-enabled=false ##把fence禁掉,语法才不会错误
commit #每次 更改完成后都要提交,否则不生效
659 crm_verify -LV #此时语法不会出错
660 crm
configure
show
primitive vip ocf:heartbeat:IPaddr2 params ip=172.25.17.100 cidr_netmask=24 op monitor interval=1min
commit
661 /etc/init.d/corosync stop ## crm node stanby也是停掉服务的意思
在server4里面监控 可以看见vip crm_mon 但是server1停掉了,大家都听掉了,不符合常规
662 /etc/init.d/corosync start
663 crm
configure
property no-quorum-policy=ignore
commit
664 /etc/init.d/corosync stop ##server1停掉了,但server4还在运行中
在server1做fence和haproxy
666 cd /etc/corosync/
667 ls
668 vi corosync.conf
669 vi /etc/haproxy/haproxy.cfg
将前端公共节点 bind 改为 *:80 name clear 注释 use_backend dynamic if write
将两个后端节点荣为一体
backend static
balance roundrobin
server dynsrv2 172.25.17.13:80 check inter 1000
server dynsrv1 172.25.17.12:80 check inter 1000
打开server2和server3的httpd 清空里面的环境,只有index.html里
670 ps ax ##查看进程
671 cd /pub
672 ls
673 cd haproxy-1.6.11
676 ls
680 cd rpmbuild/
681 ls
682 cd RPMS/
683 ls
684 cd x86_64/
685 ls
scp haproxy-1.6.11-1.x86_64.rpm [email protected]:/pub #在server4/pub里面进行下载haproxy
687 cd /etc/haproxy/
688 ls
689 scp haproxy.cfg [email protected]:/etc/haproxy #把文加考到server4里面,进入/etc/haproxy里面看以下 开启haproxy服务
690 crm
configure
primitive haproxy lsb:haproxy op monitor interval=30s ##去监控里面看,两者vip和haproxy是分离的,需要做下面的步骤
commit
group hagroup vip haproxy
commit 在server4里面/etc/init.d/corosync stop 可以看见转换了
691 ps ax
692 /etc/init.d/corosync status
693 /etc/init.d/corosync start
695 /etc/init.d/haproxy start
##加fence,看有没有fence这个软件包
703 rpm -q fence-virt
yum install fence-virt-*
704 stonith_admin -I
705 stonith_admin -M -a fence_xvm
##在真机开启 systemctl status fence_virtd systemctl start fence_virtd
cat /etc/fence_virt.conf 看是不是br0
brctl show ##主要看是不是br0
706 cd /etc/cluster/ ##server4里面也要进
707 ls ##有一个fence_xvm.key这个文件
708 crm
configure
show
primitive vmfence stonith:fence_xvm params pcmk_host_map="server1:vm1;server4:vm4" op monitor interval=1min
property stonith-enabled=true ##开启fence服务
commit #监控里面vip haproxy vmfence 都有