1.为什么要进行健康检测?
之前lvs的DR模式和TUN模式我们都是假设后端服务器是可以正常工作的
对于一台后端服务器来说,它不可能永远是可以使用的,有自己的寿命或者会出现其它问题
当lvs集群中的一台后备服务器挂了之后,为了不影响客户的正常访问,应该将它从集群当中踢出去,让客户不再轮询访问
调度器只把客户端的请求转发给状态好的那台web服务器,否则客户端是一会可以访问,一会不能访问
其实实际的企业当中,一个集群的web服务器上面的资源一模一样,访问哪个客户根本感觉不到
我给大家演示的时候写的共享内容不一样是为了实验效果看的更明显而已
如果lvs集群当中所有的后备服务器都挂了,为了不影响客户的正常访问,在调度器上面也安装一个httpd服务,当客户端访问调度器的时候,调度器直接通过自己的httpd服务告诉服务器坏了
以上这两种情况我们都要考虑到,因此要给客户端一个正常的回应
2.在lvs的DR模式下实现健康检测
(1)在调度器上查看调度规则
ipvsadm -ln
(2)在web1上面模拟httpd服务出现问题
systemctl stop httpd
(3)在客户端上进行测试
curl 172.25.12.100
curl 172.25.12.100
发现一个web挂了,影响客户的访问
(4)在web1上面恢复好httpd服务
可以在调度器上看到两个web服务器备访问的次数
(5)在客户端测试
curl 172.25.12.100
curl 172.25.12.100
可以正常访问了
(6)现在使用Idirectord这个插件解决上面的问题,使得客户可以稳定的访问web资源
在lvs调度器上面:
ipvsadm -C清除之前的隧道策略
modprobe -r ipip删除隧道模块
在web1上面:modprobe -r ipip
ip addr add 172.25.12.100/24 dev eth0
ip a
在web2上面:moprobe -r ipip
ip addr add 172.25.12.100/24 dev eth0
ip a
在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
在客户端测试一下:看之前的东西能不能用
curl 172.25.12.100
curl 172.25.12.100
可以看到回到DR模式的正常访问了
然后在客户端把插件安装包的发给lvs服务器
在lvs服务器上面:
给lvs配置一个高可用的yum源
在真机(客户端)搭建共享yum源
可以看到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)
yum install -y httpd
cd /var/www/html
rm -rf *
vim index.html
哎呀,走丢了
systemctl restart httpd
chkconfig --list列出脚本方式启动的服务的开机子启动的服务
改8080为80
(7)在客户端测试
web1和web2都好着
web1坏掉,自动踢出集群
web1和web2都坏掉
发现lvs的http服务
==现在是两个后端服务器均可以正常访问==1
重启健康检测服务
配置健康检测服务并且重启