LVS的健康检测(Idirectord)——基于TUN模式下

接上一个实验:lvs的TUN模式搭建

接下来进行日常灵魂考问:

为什么要进行健康检测?

由于之前的LVS下的TUN 和DR 模式下,两个后端服务器是可以正常工作的。

原因一:在如今企业中,不能保证一台服务器是一直正常可以工作的,假若在轮询机制中的一台服务器出了错,客户就会轮询到那台坏了的服务器,影响客户体验为了不影响客户的正常访问,应该将它从集群当中踢出去,让客户不再轮询访问那台坏了的服务器,只把客户端的请求转发给状态好的那台web服务器

原因二:如果lvs集群当中所有的后备服务器都挂了,为了不影响客户的正常访问,在调度器上面也安装一个
httpd服务,当客户端访问调度器的时候,调度器直接通过自己的httpd服务告诉服务器坏了


以上这两种情况我们都要考虑到,因此要给客户端一个正常的回应

LVS+ldirectord:

安装:

此时LVS调度器需要一个ldirectord插件来实现这个作用,可以去官网上下载:

ldirectord-3.9.5-3.1.x86_64.rpm

放到LVS调度器上:

(1)第一次安装出现的问题

yum install -y ldirectord-3.9.5-3.1.x86_64.rpm

    Error: Package: ldirectord-3.9.5-3.1.x86_64 (/ldirectord-3.9.5-3.1.x86_64)
               Requires: resource-agents

说明:安装包从官网下载即可!

原因:没有使用系统自带的高可用套件,缺乏依赖,yum源进行配置(所需安装软件在光盘上就可以,不需要额外配置yum源!
 

(2)、第二次安装:

在主机上查看:

自带附加加高可用套件地址:

/var/www/html/new/addons/HighAvailability   

在LVS 调度器上配置共享yum 源:

自带附加高可用:
[HighAvailability]
name=HighAvailability
baseurl=http://172.25.58.250/new/addons/HighAvailability
gpgcheck=0
  • yum clean all
  • yum repolist    可以看到,现在镜像里由4788个包
  • yum install   ldirectord-3.9.5-3.1.x86_64.rpm  -y  进行安装插件

在这里插入图片描述

  • 安装完毕后:
  • [root@server1 ~]# rpm -qc ldirectord     查看安装路径
    /etc/logrotate.d/ldirectord
    [root@server1 ~]# rpm -qpl ldirectord-3.9.5-3.1.x86_64.rpm    查看各项信息
    warning: ldirectord-3.9.5-3.1.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 7b709911: NOKEY
    /etc/ha.d
    /etc/ha.d/resource.d
    /etc/ha.d/resource.d/ldirectord
    /etc/init.d/ldirectord
    /etc/logrotate.d/ldirectord
    /usr/lib/ocf/resource.d/heartbeat/ldirectord
    /usr/sbin/ldirectord
    /usr/share/doc/ldirectord-3.9.5
    /usr/share/doc/ldirectord-3.9.5/COPYING
    /usr/share/doc/ldirectord-3.9.5/ldirectord.cf
    /usr/share/man/man8/ldirectord.8.gz
    
    
    cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d
    然后:
    vim /etc/ha.d/ldirectord.cf

进入配置文件修改:

autoreload=yes     

含义:启用这个选项,它使ldirectord按时计算这个配置文件的md5校验和值,看其是否有改动,当发现有改动时自动应用那些改动,这个方便的 特性运行你容易地改变集群的配置,你对配置文件改动后几秒,ldirectord将察觉到有改动,调用ipvsadm命令实现改动,从有效服务器池中移除 真实服务器或按需要将它们添加到池中

checktimeout=3

含义:ldirectord等待健康检查执行完毕的等待时间,单位秒。如果因为某些原因检查失败或在设置的时间周期内没有完成检查,ldirectord将会从IPVS表中移除真实服务器

checkinterval=1

含义:这个值指定ldirectord在两个检查之间的间隔时间

quiescent=no

含义:当你设置了这个选项后,ldirectord将 会从IPVS表中移除真实服务器而不是“停止”它,从IPVS表移除节点将中断现有的客户端连接,并使LVS丢掉所有的连接跟踪记录和持续连接模板,如果 你不将这个选项设置为no,当某个节点崩溃时,对某些客户端计算机而言可能会显示为集群关闭了,因为在这个节点崩溃前这些客户端计算机被分配给它了,而连 接跟踪记录和程序连接模板仍然保留在Director上

virtual=172.25.58.100:80
        real=172.25.58.2:80 gate	        ##两个后端rs
        real=172.25.58.3:80 gate
        fallback=127.0.0.1:80 gate		##两个rs都挂了,就访问调度器自己的80端口
        service=http      #注意,这里是通过http报文进行传输请求
        scheduler=rr				##轮询算法
        #persistent=600
        #netmask=255.255.255.255
        protocol=tcp
        checktype=negotiate   #指定Ldirectord的检测类型,默认为negotiate
        checkport=80
        request="index.html"
        #receive="Test Page"   #指定请求和应答字串
        #virtualhost=www.x.y.z  #虚拟服务器的名称

进行处理第二个问题:假若所有的后端服务器宕掉了,LVS服务器将返回一个结果:

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

在这里插入图片描述

安装完毕插件后观察结果:

关闭server2后端服务器:

[root@foundation58 new]# curl 172.25.58.100
bbs.westos.org
[root@foundation58 new]# curl 172.25.58.100
curl: (7) Failed connect to 172.25.58.100:80; Connection refused
[root@foundation58 new]# curl 172.25.58.100
bbs.westos.org
[root@foundation58 new]# curl 172.25.58.100
curl: (7) Failed connect to 172.25.58.100:80; Connection 

可以看到,此时serer2不能进行访问,但是调度器还是对其进行了访问

启动插件:

         systemctl     start      ldirectord    rhel7.3版本启动

         service ldirectord start       rhel6启动方式

         /etc/init.d/ldirectord    所有版本都可以    start

启动调度器上的插件后:(server2后端服务器已经被stop了)

继续在客户端进行访问,此时

[root@foundation58 new]# curl 172.25.58.100
bbs.westos.org
[root@foundation58 new]# curl 172.25.58.100
bbs.westos.org
[root@foundation58 new]# curl 172.25.58.100
bbs.westos.org

健康检查起作用了,由于server2怀掉了,此时调度器将server2调度为器踢出去

即完成了健康检测。

当两个后端服务器全部坏掉时,客户端进行访问时,LVS服务器就会给一个响应:

[root@foundation58 new]# curl 172.25.58.100
oh,no~~我迷路了!!!

在DR和NAT模式下都可以做健康检测,方法一样~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值