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

实验环境: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主页

[root@server1 ha.d]# /etc/init.d/heartbeat stop
ip addr #vip在server4上

二.安装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的搭建_第1张图片

[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的搭建_第2张图片

四.为了避免单点故障,要将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的搭建_第3张图片

高可用负载均衡集群Heartbeat+Ldirectord+lvs-DR的搭建_第4张图片

[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 [email protected]:/etc/ha.d/

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

高可用负载均衡集群Heartbeat+Ldirectord+lvs-DR的搭建_第5张图片

ip addr 查看工作的是server4

高可用负载均衡集群Heartbeat+Ldirectord+lvs-DR的搭建_第6张图片

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

高可用负载均衡集群Heartbeat+Ldirectord+lvs-DR的搭建_第7张图片

你可能感兴趣的:(linux运维企业部分)