1.为什么要进行健康检测?
之前lvs的DR模式和TUN模式我们都是假设后端服务器是可以正常工作的
对于一台后端服务器来说,它不可能永远是可以使用的,有自己的寿命或者会出现其它问题
当lvs集群中的一台后备服务器挂了之后,为了不影响客户的正常访问,应该将它从集群当中踢出去,让客户不再轮询访问
调度器只把客户端的请求转发给状态好的那台web服务器,否则客户端是一会可以访问,一会不能访问,其实实际的企业当中,一个集群的web服务器上面的资源一模一样,访问哪个客户根本感觉不到
演示的时候写的共享内容不一样是为了实验效果看的更明显而已
如果lvs集群当中所有的后备服务器都挂了,为了不影响客户的正常访问,在调度器上面也安装一个httpd服务,当客户端访问调度器的时候,调度器直接通过自己的httpd服务告诉服务器坏了.
以上这两种情况我们都要考虑到,因此要给客户端一个正常的回应
2.在lvs中实现健康检测
在web1上面模拟httpd服务出现问题
然后在客户端测试 发现一个web挂了,很影响体验
在web1上面恢复好httpd服务
客户端测试又恢复了
现在使用ldirectord这个插件解决上面的问题,使得客户可以稳定的访问web资源
将idirectord这个rpm包从真机传送给server1
在server1中安装发现不能够安装
所以需要在server1中,配置一个高可用的yum源
首先在真机(客户端)搭建共享yum源
在server1中:vim /etc/yum.repo.d/yum.repo
高可用yum源已经配好
安装idirectord插件,发现可以安装了
rpm -qc ld
rpm -qpl ld
cp 配置文件 /etc/ha.d/
vim /etc/ha.d/ldirectord.cf编辑设置信息
这里的fallback=127.0.0.1:80 gate需要打开,表示调度器自己的回环接口,两台RS都挂了就访问这个
在server1上安装httpd服务,并编辑发布页面
/etc/init.d/ldirectord start脚本方式启动服务(企业6)
在客户端测试
先让server2挂掉,(web1挂掉)
curl 172.25.15.100 发现web1坏掉,自动踢出集群,只有server3(web2),且不报错
当server3挂掉,(web2也挂掉),测试
可以看到当两个web后端服务器出现问题的时候,lvs服务器会给客户端一个响应
这就实现了lvs的健康检测