Haproxy+Fence+Pacemaker实现高可用

一.概念

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

实现 HAProxy+Keepalived 高可用需要按照以下步骤进行: 1. 安装 HAProxy 和 Keepalived 在主服务器和备份服务器上安装 HAProxy 和 Keepalived。 2. 配置 HAProxy 编辑 HAProxy 配置文件,配置监听端口和后端服务器信息,并启用统计页面。例如: ``` global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon defaults log global mode http option httplog option dontlognull option forwardfor option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout check 10s listen webfarm bind 0.0.0.0:80 mode http stats enable stats uri /haproxy balance roundrobin option httpchk HEAD / HTTP/1.1\r\nHost:localhost server web1 192.168.0.1:80 check server web2 192.168.0.2:80 check ``` 3. 配置 Keepalived 编辑 Keepalived 配置文件,配置虚拟 IP 地址、HAProxy 的状态检测方式和状态转移时的优先级。例如: ``` vrrp_script chk_haproxy { script "killall -0 haproxy" interval 2 weight 2 } vrrp_instance VI_1 { interface eth0 state MASTER virtual_router_id 51 priority 101 virtual_ipaddress { 192.168.0.100/24 } track_script { chk_haproxy } } ``` 4. 启动 HAProxy 和 Keepalived 在两台服务器上分别启动 HAProxy 和 Keepalived。 5. 测试高可用 访问虚拟 IP 地址,检查是否能够正常访问,并手动切换主备服务器,检查是否能够自动切换。 注意:以上仅为简单示例,请根据实际情况进行配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值