高可用负载均衡集群Heartbeat+Ldirectord+lvs-DR的搭建

时间:2021-08-20 00:47:52

实验环境:redhat6.5
server1:172.25.20.1 server2:172.25.20.2
server3:172.25.20.3 server4:172.25.20.4

一、hearbeat

1.安装<不支持健康检查>
server1:

heartbeat-3.0.4-2.el6.x86_64.rpm
heartbeat-devel-3.0.4-2.el6.x86_64.rpm
heartbeat-libs-3.0.4-2.el6.x86_64.rpm
rpm -q heartbeat -d #查看配置文件所在位置

2.

[root@server1 mnt]# cd /usr/share/doc/heartbeat-3.0.4
cp ha.cf haresources authkeys/etc/ha.d/ #拷贝主配置文件、资源配置文件、认证文件到指定目录
cd /etc/ha.d/
vim ha.cf #进入主配置文件
34 logfacility local0
48 keepalive 2
56 deadtime 30
61 warntime 10
71 initdead 60
76 udpport 719 #udp协议端口号
91 bcast eth0
157 auto_failback on
211 node server1.example.com #主
212 node server4.example.com #备
220 ping 172.25.25.250
253 respawn hacluster /usr/lib64/heartbeat/ipfail
259 apiauth ipfail gid=haclient uid=hacluster
vim haresources
150 server1 IPaddr::172.25.20.100/24/eth0 httpd #主结点的主机名、添加虚拟ip、httpd服务
vim authkeys #认证文件
23 auth 1
24 1 c #认证方式crc
chmod 600 authkeys
/etc/init.d/heartbeat start #开启heartbeat
tail -f /var/log/messages

3.server4 server1的配置完全相同,在server4安装好heartbeat的情况下,将server1配置好的文件拷过去

[root@server1 ha.d]# scp ha.cf haresources authkeys
[root@server4 ha.d]# /etc/init.d/heartbeat start
tail -f /var/log/messages

4.测试:server1和server4要安装httpd且有内容不同的测试页,httpd会自动重启,不用手工开启
浏览器输入 172.25.20.100,显示server1主页
高可用负载均衡集群Heartbeat+Ldirectord+lvs-DR的搭建
[root@server1 ha.d]# /etc/init.d/heartbeat stop
ip addr #vip在server4上
高可用负载均衡集群Heartbeat+Ldirectord+lvs-DR的搭建

二.安装ldirectord
yum install -y ldirectord-3.9.5-3.1.x86_64.rpm #server1 server4

[root@server1 ~]# yum install -y ipvsadm
[root@server1 ~]# cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d/

三.DR模式,负载均衡(VS的vip可以被正常访问。RS上的vip禁止被正常访问,mac地址转换)

1.用ipvsadm工具将策略写进内核

[root@server1 ~]# ip addr add 172.25.20.100/24 dev eth0 #添加一个vip
[root@server1 ~]# ipvsadm -C
[root@server1 ~]# ipvsadm -A -t 172.25.20.100:80 -s rr #写策略,添加httpd服务,机制轮叫
[root@server1 ~]# ipvsadm -a -t 172.25.20.100:80 -r 172.25.20.2:80 -g #添加服务器
[root@server1 ~]# ipvsadm -a -t 172.25.20.100:80 -r 172.25.20.3:80 -g
[root@server1 ~]# ipvsadm -l

高可用负载均衡集群Heartbeat+Ldirectord+lvs-DR的搭建

[root@server1 ~]# /etc/init.d/ipvsadm save

2.用arptables工具添加火墙策略

[root@server2 ~]# yum install arptables_jf -y #安装arptables_jf工具
[root@server2 ~]# ip addr add 172.25.25.200/32 dev eth0 #添加虚拟ip
#添加arp火墙策略(禁止从172.25.20.100进来的访问,允许从172.25.20.100出去的访问且经出去的ip变成自己的ip172.25.20.2)
[root@server2 ~]# arptables -A IN -d 172.25.20.100 -j DROP
[root@server2 ~]# arptables -A OUT -s 172.25.20.100 -j mangle--mangle-ip-s 172.25.20.2
[root@server2 ~]# /etc/init.d/arptables_jf save
Saving current rules to /etc/sysconfig/arptables #保存路径
[root@server2 ~]# arptables -L #查看
[root@server2 ~]# /etc/init.d/arptables_jf start

server3同理。

3.测试:
高可用负载均衡集群Heartbeat+Ldirectord+lvs-DR的搭建

四.为了避免单点故障,要将DR添加到高可用集群(HA)中,下面介绍的是添加到HA的heartbeat中。由于heartheat对后端没有健康检查,这就需要借助ldirectord对heartbeat进行后端检查。即将DR添加到ldirectord中,再将ldirectord服务添加到heartbeat中

[root@server1 ~]# ipvsadm -C
[root@server1 ~]# vim
25virtual=172.25.20.100:80 #虚拟ip
26 real=172.25.20.2:80 gate #真正的服务端
27 real=172.25.20.3:80 gate
28 fallback=127.0.0.1:80 gate #当所有服务端都出故障之后,使用本地回环
29 service=http #服务httpd
30 scheduler=rr #机制轮询
31 #persistent=600
32 #netmask=255.255.255.255
33 protocol=tcp #协议
34 checktype=negotiate
35 checkport=80 端口
36 request="index.html" #服务的测试页名称
37 # receive="Test Page"
38 # virtualhost=www.x.y.z

高可用负载均衡集群Heartbeat+Ldirectord+lvs-DR的搭建

高可用负载均衡集群Heartbeat+Ldirectord+lvs-DR的搭建

[root@server1 ~]# ip addr del 172.25.5.100/24 dev eth0
[root@server1 ~]# vim /etc/ha.d/haresources
server1 IPaddr::172.25.20.100/24/eth0 httpd ldirectord
[root@server1 ~]# scp /etc/ha.d/haresources /etc/ha.d/ldirectord.cf root@172.25.20.2:/etc/ha.d/

测试:
[root@server1 ha.d]# /etc/init.d/heartbeat stop
server4顶上,依旧正常轮询

高可用负载均衡集群Heartbeat+Ldirectord+lvs-DR的搭建

ip addr 查看工作的是server4
高可用负载均衡集群Heartbeat+Ldirectord+lvs-DR的搭建
高可用负载均衡集群Heartbeat+Ldirectord+lvs-DR的搭建

[root@server2 ~]# /etc/init.d/httpd stop
[root@server3 ~]# /etc/init.d/httpd stop
server2 server3相继关闭http服务,本地回环

高可用负载均衡集群Heartbeat+Ldirectord+lvs-DR的搭建