一.概念
Fence主要在架构的作用为防止二个服务器同时向资源写数据,破坏了资源的安全性和一致性从而导致脑裂的发生。通过Haproxy实现对web服务的负载均衡及健康检查,pacemaker实现haproxy的高可用。
Haproxy八种负载均衡算法(balance):
1.balance roundrobin ###轮询,软负载均衡基本都具备这种算法
2.balance static-rr ###根据权重
3.balance leastconn ###最少连接数先处理
4.balance source ###分局请求的IP
5.balance uri ###分局请求的uri
6.balance url_param ###根据请求的URL参数
7.banlance hdr(name) ###根据HTTP请求头来锁定每一次HTTP请求
8.balance rbp-cookie(name) ###根据cookie来锁定hash每一次TCP请求
二.配置
1.yum源:(server1和server4中)
2.安装haproxy(server1/4中),编辑配置文件haproxy.cfg,实现轮询
3.Pacemaker搭建与配置(server1/4中)
1)安装: pacemaker corosync
yum install crmsh-1.2.6-0.rc2.2.1.x86_64.rpm pssh-2.3.1-2.1.x86_64.rpm
2)编辑文件corosync.conf
指定服务及网络地址段
重新启动服务,并查看服务状态crm_mon
3)查看当前集群系统所支持的类:
4)禁用stonith(可在2/4任何一台执行)
5)、crm配置Haproxy(关闭两台主机的haproxy)
添加vip
添加haproxy,忽略节点数
添加服务组,vip和haproxy绑定
查看服务状态crm_con
6)测试,关闭其中某个节点
查看vip
节点挂掉可以实现转移,但是当服务器挂掉不能实现转移
虽然server4挂掉了,但是VIP并没有转移到server1上去,因此下面我们加入Fence来实现即使是服务器挂了也可以实现VIP转移
用下面的命令来模拟内核崩溃:echo c >/proc/sysrq-trigger
4.Fence安装
1)安装yum install fence-virt -y
执行命令stonith_admin -I,可看见有fence代理
2)生成fence_xvm.key后传给1和4(前面已经配置过)
启动fence服务
3)配置fence_xvm
添加fence服务处理故障的节点server1:server1 第一个server1是主机名,第二个server1是真实的虚拟机名称
查看集群状态
将fence添加成功以后,如果一台机器出现内核崩溃或者是网络断开的时候,这台机器就会进行重新启动,并且另外一台机器会顶替他来作为vip, 这台机器重新启动以后会重新加入到集群当中
4)测试server1执行以下命令
echo c >/proc/sysrq-trigger