实验:实现DR模式的LVS:
环境:五台主机,一台客户端,一台充当路由器,一台vs服务器,两台rs服务器;
客户端:外网地址;172.18.77.66
路由器:两个网卡,内网和外网都有
内网:192.168.77.74
外网:172.18.77.74
vs服务器: 仅主机模式,一个网卡绑定两个ip,一个是vip一个是dip
vip:192.168.77.99
dip:192.168.77.77
rs服务器:rs1:192.168.77.7
rs2:192.168.77.6
配置:
在客户端加上路由器的网关 route add default gw 172.18.77.74
在路由器上 echo 1 > /proc/sys/net/ipv4/ip_forward
在vs服务器上添加一条路由 route add default gw 192.168.77.74
添加一个vip ----> ip a a 192.168.77.99 dev eth1
添加rs服务器
[root@centos7 ~]#ipvsadm -A -t 172.18.77.99:80 -s wrr [root@centos7 ~]#ipvsadm -a -t 172.18.77.99:80 -r 192.168.77.7 [root@centos7 ~]#ipvsadm -a -t 172.18.77.99:80 -r 192.168.77.6
在rs服务器上配置vip 建议在回环网卡上配置 ip a a 192.168.77.99/32 dev lo:1 添加网关指向路由器的内网地址 route add default gw 192.168.77.74
修改文件:
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
上述的服务器确定selinux和iptables的关闭和httpd服务的开启
测试:
[root@centos6 ~]#for i in {1..10};do curl 192.168.77.99;done 这是rs2机器 这是rs-1机器 这是rs2机器 这是rs-1机器 这是rs2机器 这是rs-1机器 这是rs2机器 这是rs-1机器 这是rs2机器 这是rs-1机器
小提示:做测试时减少反应时间,报错时可快速报错 curl --connect-time 1 192.168.77.7
ldirectord 工具
包名ldirectord
[root@centos7 ~]#cp /usr/share/doc/ldirectord-3.9.6/ldirectord.cf /etc/ha.d/ldirectord.cf [root@centos7 ~]#systemctl start ldirectord ldirectord:监控和控制LVS守护进程,可管理LVS规则 包名:ldirectord-3.9.6-0rc1.1.1.x86_64.rpm 文件: /etc/ha.d/ldirectord.cf 主配置文件 /usr/share/doc/ldirectord-3.9.6/ldirectord.cf 配置模版 /usr/lib/systemd/system/ldirectord.service 服务 /usr/sbin/ldirectord 主程序 /var/log/ldirectord.log 日志 /var/run/ldirectord.ldirectord.pid pid文件
Ldirectord配置文件示例
checktimeout=3 监控后端rs的状态 ,多长时间检查一次,超时时间是多少 checkinterval=1 多长时间检查一次 autoreload=yes 修改配置文件自动生效 logfile=“/var/log/ldirectord.log“ #日志文件 quiescent=no #down时yes权重为0,no为删除 virtual=192.168.77.77#指定VS的FWM或IP:port real=172.16.0.7:80 gate 2 real=172.16.0.8:80 gate 1 fallback=127.0.0.1:80 gate #sorry server service=http scheduler=wrr checktype=negotiate checkport=80 request="index.html" receive=“Test Ldirectord"
为了从主Director将LVS负载均衡资源故障转移到备用Director,并从集群中自动移除节点,我们需要使用ldirectord程序,这个程序在启动时自动建立IPVS表,然后监视集群节点的健康情况,在发现失效节点时将其自动从IPVS表中移除。
为了监视web集群内的真实服务器,ldirectord守护进程使用HTTP协议向每个真实服务器请求一个专用的web页面,如果真实服务器是健康的,Director知道将从真实服务器接收到什么内容,如果从真实服务器返回应答字串或web页面的时间太长,或根本没有返回任何内容,或返回的内容不是预期的,Director就知道该真实服务器出错了,并从IPVS表中将这个真实服务器移除。
原文地址:http://13157090.blog.51cto.com/13147090/1977590