LVS实战案例:LVS高可用性实现

LVS 高可用性实现

LVS 不可用时:

Director不可用,整个系统将不可用;SPoF Single Point of Failure

解决方案:高可用,keepalived、heartbeat/corosync

RS 不可用时:

某RS不可用时,Director依然会调度请求至此RS

解决方案: 由Director对各RS健康状态进行检查,失败时禁用,成功时启用

常用解决方案:

  • keepalived
  • heartbeat/corosync
  • ldirectord

​ 检测方式:

-网络层检测,icmp

-​ (b) 传输层检测,端口探测

-​ (c) 应用层检测,请求某关键资源

RS全不用时:backup server, sorry server

ldirectord软件

ldirectord:监控和控制LVS守护进程,可管理LVS规则

包名:ldirectord-3.9.6-0rc1.1.1.x86_64.rpm

下载:http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-7/x86_64/

相关文件:

  • /etc/ha.d/ldirectord.cf #主配置文件
  • /usr/share/doc/ldirectord-3.9.6/ldirectord.cf # 配置模版
  • /usr/lib/systemd/system/ldirectord.service # 服务
  • /usr/sbin/ldirectord #主程序,Perl实现
  • /var/log/ldirectord.log #日志
  • /var/run/ldirectord.ldirectord.pid #pid文件

ldirectord配置文件示例

范例:DR模型的HTTP

[root@centos7 ~]#vim /etc/ha.d/ldirectord.cf
checktimeout=3
checkinterval=1
autoreload=yes
logfile="/var/log/ldirectord.log"
quiescent=no     #当RS down时 yes将修改权重为0,此配置有bug ,no为从调度列表中删除RS

virtual=10.0.0.100:80
    real=192.168.39.17 gate 1  #gate 表示DR模式,1 表示weight
    real=192.168.39.18 gate 2 
    fallback=127.0.0.1:80 gate 
    service=http
    scheduler=wrr
    #persistent=600
    #netmask=255.255.255.255
    protocol=tcp
    checktype=negotiate
    checkport=80

[root@lvs ~]#ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.0.0.100:80 wrr
  -> 192.168.39.17:80             Route   1      0          31        
  -> 192.168.39.18:80             Route   2      0          62

范例:DR模型的FWM

[root@centos7 ~]# /etc/ha.d/ldirectord.cf
checktimeout=3
checkinterval=1
autoreload=yes
logfile=“/var/log/ldirectord.log“     #日志文件
quiescent=no            #当RS down时 yes将修改权重为0,此配置有bug ,no为从调度列表中删除RS
virtual=66               #指定VS的FWM 或 IP:PORT
    real=172.16.0.7:80 gate 2    #DR模型,权重为 2 
    real=172.16.0.8:80 gate 1
    fallback=127.0.0.1:80 gate   #sorry server
    service=http
    scheduler=wrr
    #protocol=tcp     #如果FWM模式,此行必须注释掉
    checktype=negotiate
    checkport=80
    request="index.html"
    receive=“Test Ldirectord"

本文链接:http://www.yunweipai.com/35620.html

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/52768.html

(0)
上一篇 2021年8月6日
下一篇 2021年8月6日

相关推荐

发表回复

登录后才能评论