试想,LVS作为前端负载均衡设备,当后端服务器宕机时,LVS还会把用户请求发送到该服务器上,这对用户体验来说是极其糟糕的,因为用户的请求无法得到处理。那么是否有一种机制,能保证后端服务器的是否正常?或者说把用户的请求,只发送到后端正常的服务器上,来保证用户的良好体验呢?这就叫做后端服务健康状态监测。
ldirectord用来实现LVS负载均衡资源在主、备节点间的故障转移。在首次启动时,ldirectord可以自动创建IPVS表。此外,它还可以监控各RealServer的运行状态,一旦发现某RealServer运行异常时,还可以将其从IPVS表中移除。
下载 http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-7/x86_64/ldirectord-3.9.6-0rc1.1.2.x86_64.rpm
ldirectord:监控和控制LVS守护进程,可管理LVS规则 软件包名称:ldirectord-3.9.6-0rc1.1.1.x86_64.rpm 软件包组成: /etc/ha.d/ldirectord.cf 主配置文件 /usr/share/doc/ldirectord-3.9.6/ldirectord.cf 配置模版 /usr/lib/systemd/system/ldirectord.service 服务 /usr/sbin/ldirectord 主程序 /var/log/ldirectord.log 日志 /var/run/ldirectord.ldirectord.pid pid文件
Ldirectord 配置文件详解 checktimeout=3 #超时时间 单位是秒 checkinterval=1 #检查频率 autoreload=yes # 此项用来定义ldirectord是否每隔一段时间检查此配置文件是否发生改变并自动重新加载; logfile=“/var/log/ldirectord.log“ #日志文件 quiescent=no #down时yes权重为0,no为删除 virtual=172.16.0.1 # 指定VS的FWM或IP:port real=172.16.0.7:80 gate 2 real=172.16.0.8:80 gate 1 fallback=127.0.0.1:80 gate #sorry server service=http scheduler=wrr checktype=negotiate #ldirectord进程用于监控RealServer的方法 checkport=80 #检查端口 request="index.html" #检查页面 receive=“Test" #检查内容
#指定Real Server服务器地址和端口,同时设定LVS工作模式,用gate表示DR模式,ipip表示TUNL模式,masq表示NAT模式。
直接用
checktimeout=3 checkinterval=1 autoreload=yes logfile="/var/log/ldirectord.log" quiescent=no virtual=10.211.55.99:80 real=10.37.129.3:80 masq real=10.37.129.4:80 masq fallback=127.0.0.1 service=http scheduler=rr protocol=tcp checktype=negotiate checkport=80