######################相关概念
1.什么是pacemaker?
Pacemaker是一个集群资源管理器。它利用集群基础构件(OpenAIS 、heartbeat或corosync)提供的消息和成员管理能力来探测并从节点或资源级别的故障中恢复,以实现群集服务(亦称资源)的最大可用性。
pacemaker就是Heartbeat 到了V3版本后拆分出来的资源管理器(CRM),用来管理整个HA的控制中心,要想使用pacemaker配置的话需要安装一个pacemaker的接口,它的这个程序的接口叫crmshell,它在新版本的pacemaker已经被独立出来了,不再是pacemaker的组成部分。
2.什么是haproxy?
HAProxy 提供高可用负载均衡以及基于TCP 和 HTTP 应用的代理,haproxy是轻量级的擅长处理并发。
但与nginx不同的是Haproxy并不是Http服务器。很多带反向代理均衡负载的产品,如nginx,apacheproxy,都是清一色是WEB服务器。简单说,就是他们能自身提供静态(html,jpg,gif..)或动态(PHP,cgi..)文件的传输以及处理。而Haproxy仅仅专门是一款的用于均衡负载的应用代理。其自身并不能提供http服务。
#######################高可用的实现
实验环境准备:
server2: 172.25.9.2 httpd
server3: 172.25.9.3 httpd
server1: 172.25.9.1 haproxy corosync pacemaker crmsh
server4: 172.25.9.4 haproxy corosync pacemaker crmsh
步骤:
(1)pacemaker corosync的安装(server1和server4安装 crmsh.x86_64 和 pssh.x86_64)
[root@server2 ~]#yum install -y pacemaker corosync
[root@server2 ~]#ls
crmsh-.-.rc2..x86_64.rpm pssh-.-.x86_64.rpm
[root@server2 ~]#yum install * -y
[root@server2 ~]# cd /etc/corosync/

注意:在rhel6.5中有crmsh和pssh的安装包,但会因为版本过低导致实验失败。因此我们不用yum源自身提供的包。
(2)更改配置文件
[[email protected] corosync]# ls
corosync.conf.example corosync.conf.example.udpu service.d uidgid.d
[[email protected] corosync]# cp corosync.conf.example corosync.conf
[[email protected] corosync]# vim corosync.conf
/etc/init.d/corosync start ###1,4上都开启
scp corosync.conf server4:/etc/corosync/ ###1发给4
(3)crm_verify -LV 有报错
(4)在server1上:
property stonith-enabled=false 表示资源不会迁移
再次crm_verify -LV没有报错表示正常
(5)加入vip
(6)crm_mon监控集群和vip信息
property no-quorum-policy=ignore关闭集群对节点数量的检查,节点server1如果故障,节点server4收不到心跳请求,直接接管程序,保证正常运行,不至于一个节点崩掉而使整个集群崩掉
实现haproxy服务高可用,先编辑上面更改过的配置文件如下图 :
向集群添加haproxy 服务;并绑定在一台主机上,避免资源飘移,将他们绑定在一个组上 。
监控查看
测试:开启server1、server4上的haproxy ,关闭此时ip在的主机上的corosync,发现服务仍能正常访问,实现了集群高可用。
开启fence功能,检查有没有fence_xvm服务 。
添加fence资源,写入集群节点名和真实server的名字映射 。
真机打开fence_virtd服务;成功加入监控查看。
crm_mon