企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)

1.为什么要进行健康检测?

之前lvs的DR模式和TUN模式我们都是假设后端服务器是可以正常工作的
对于一台后端服务器来说,它不可能永远是可以使用的,有自己的寿命或者会出现其它问题
当lvs集群中的一台后备服务器挂了之后,为了不影响客户的正常访问,应该将它从集群当中踢出去,让客户不再轮询访问
调度器只把客户端的请求转发给状态好的那台web服务器,否则客户端是一会可以访问,一会不能访问
其实实际的企业当中,一个集群的web服务器上面的资源一模一样,访问哪个客户根本感觉不到
我给大家演示的时候写的共享内容不一样是为了实验效果看的更明显而已
如果lvs集群当中所有的后备服务器都挂了,为了不影响客户的正常访问,在调度器上面也安装一个
httpd服务,当客户端访问调度器的时候,调度器直接通过自己的httpd服务告诉服务器坏了
以上这两种情况我们都要考虑到,因此要给客户端一个正常的回应

2.在lvs的DR模式下实现健康检测

下面的实验我们都要基于DR模式来做
实验步骤如下

  • (1)在调度器上面查看轮询的规则
    ipvsadm -ln
    企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第1张图片
  • (2)在web1上面模拟httpd服务出现问题
    systemctl stop httpd

在这里插入图片描述

  • (3)在客户端测试
curl 172.25.12.100
curl 172.25.12.100
发现一个web挂了,影响客户的访问

企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第2张图片

  • (4)在web1上面恢复好httpd服务
    可以在调度器上看到两个web服务器备访问的次数
    企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第3张图片
    systemctl start httpd
    企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第4张图片
  • (5)在客户端测试
curl 172.25.12.100
curl 172.25.12.100
可以正常访问了

企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第5张图片

  • (6)现在使用ldirectord这个插件解决上面的问题,使得客户可以稳定的访问web资源
在lvs调度器上面:
ipvsadm -C清除之前的隧道策略
modprobe -r ipip删除隧道模块

企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第6张图片

在web1上面:
modprobe -r ipip
ip addr add 172.25.12.100/24 dev eth0
ip a

企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第7张图片

在web2上面:
moprobe -r ipip
ip addr add 172.25.12.100/24 dev eth0
ip a

企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第8张图片
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第9张图片
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第10张图片

在lvs调度器上面:
ipvsadm -ln
ipvsadm -A -t 172.25.12.100:80 -s rr
ipvsadm -a -t 172.25.12.100:80 -r 172.25.12.2:80 -g
ipvsadm -a -t 172.25.12.100:80 -r 172.25.12.3:80 -g
systemctl restart ipvsadm.service
cat /etc/sysconfig/ipvsadm
ipvsadm -ln
ip addr add 172.25.12.100/24 dev eth0
ip a

企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第11张图片
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第12张图片
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第13张图片

在客户端测试一下:看之前的东西能不能用
curl 172.25.12.100
curl 172.25.12.100
可以看到回到DR模式的正常访问了

企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第14张图片
然后在客户端把插件安装包的发给lvs服务器
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第15张图片
在lvs服务器上面:
给lvs配置一个高可用的yum源
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第16张图片
在真机(客户端)搭建共享yum源
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第17张图片
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第18张图片
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第19张图片
在这里插入图片描述
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第20张图片
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第21张图片
可以看到lvs调度器可以使用yum源了

安装ld插件
rpm -qc ld
rpm -qpl ld
cp 配置文件 /etc/ha.d/
vim /etc/ha.d/ldirectord.cf编辑设置信息
/etc/init.d/ldirectord start脚本方式启动服务(企业6)

企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第22张图片
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第23张图片
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第24张图片
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第25张图片
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第26张图片

yum install -y httpd
cd /var/www/html
rm -rf *
vim index.html
哎呀,走丢了
systemctl restart httpd
chkconfig --list列出脚本方式启动的服务的开机子启动的服务
改8080为80

企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第27张图片
在这里插入图片描述
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第28张图片
在这里插入图片描述
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第29张图片

  • (7)在客户端测试
web1和web2都好着
web1坏掉,自动踢出集群
web1和web2都坏掉
发现lvs的http服务

企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第30张图片
现在是两个后端服务器均可以正常访问
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第31张图片
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第32张图片
可以看到web1不能访问了
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第33张图片
重启健康检测服务
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第34张图片
依然不正常
fallback 表示调度器自己的回环接口,两台RS都挂了就访问这个
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第35张图片
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第36张图片
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第37张图片
配置健康检测服务并且重启
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第38张图片
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第39张图片
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第40张图片
可以看到已经实现了健康访问
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第41张图片
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第42张图片
两个web服务器都关闭
企业级负载均衡集群——lvs之DR模式下的健康检测(Idirectord)_第43张图片
可以看到当两个web后端服务器出现问题的时候,lvs服务器会给客户端一个响应
这就实现了lvsDR模式的健康检测

你可能感兴趣的:(linux运维——企业实战)