一、Pacemaker介绍:
Pacemaker是 Linux环境中使用最为广泛的开源集群资源管理器, Pacemaker利用集群基础架构
(Corosync或者 Heartbeat)提供的消息和集群成员管理功能,实现节点和资源级别的故障检测和资源恢复,
从而最大程度保证集群服务的高可用。
二、环境部署
server1 server2 作为haproxy 服务器,用pacemaker实现负载均衡服务器高可用
server3 server4 作为httpd 服务器
1.配置yum源,安装pacemaker:
vim /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.60.250/iso/
enabled=1
gpgcheck=0
[HighAvailability]
name=HighAvailability
baseurl=http://172.25.60.250/iso/HighAvailability
gpgcheck=0
[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.60.250/iso/LoadBalancer
gpgcheck=0
[ResilientStorage]
name=ResilientStorage
baseurl=http://172.25.60.250/iso/ResilientStorage
gpgcheck=0
[ScalableFileSystem]
name=ScalableFileSystem
baseurl=http://172.25.60.250/iso/ScalableFileSystem
gpgcheck=0
yum install -y pacemaker corosync
yum install crmsh-1.2.6-0.rc2.2.1.x86_64.rpm pssh-2.3.1-5.el6.noarch.rpm
cd /etc/corosync/
ls
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.60.0 #更改广播域
mcastaddr: 226.94.1.1
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 {
ver: 0
name:pacemaker
}
2.配置server2:
yum install -y pacemaker corosync
rpm -ivh crmsh-1.2.6-0.rc2.2.1.x86_64.rpm --nodeps --force
主配置文件同server1
3.开启服务:
server1/2: /etc/init.d/corosync start
4.在server1: 查看节点状态:
crm status
5.检测文件:
crm_verify -VL
有报错 ,解决办法:
crm configure property no-quorum-policy="ignore"
crm configure property stonith-enabled=false
添加虚拟ip:
[root@server1 corosync]# crm
crm(live)# configure
crm(live)configure# show
node server1
node server2
property $id="cib-bootstrap-options" \
dc-version="1.1.10-14.el6-368c726" \
cluster-infrastructure="classic openais (with plugin)" \
expected-quorum-votes="2" \
no-quorum-policy="ignore" \
stonith-enabled="false"
crm(live)configure# primitive vip ocf:heartbeat:IPaddr2 params ip=172.25.60.100 cidr_netmask=24 op monitor interval=1min
crm(live)configure# commit
crm(live)configure# exit
bye
[root@server1 corosync]#
6.在server2上监控:
crm_mon
7.测试:关闭server1的corosync
在server2上查看:server1宕机时,服务会自动跳转到server2上。
三、实现负载均衡
1.在server1, server2上配置好haproxy
设置server3,4轮循
2.server1:
[root@server1 ~]# crm
crm(live)# configure
crm(live)configure# primitive haproxy lsb:haproxy op monitor interval=1min
crm(live)configure# commit
crm(live)configure# exit
bye
3.在server2上监控
crm_mon
4.测试:
关闭server1 corosync
在server2 上监控可以看到:
检测功能是否正常:
在客户端(真机)访问172.25.60.100: