ldirectord
lldirectord是专门为LVS监控而编写的,用来监控lvs架构中服务器池(server pool) 的服务器状态。
lldirectord 运行在 IPVS 节点上, ldirectord作为一个守护进程启动后会对服务器池中的每个真是服务器发送请求进行监控,如果 服务器没有响应 lldirectord 的请求,那么ldirectord 认为该服务器不可用, ldirectord 会运行 ipvsadm 对 IPVS表中该服务器进行删除,如果等下次再次检测有相应则通过ipvsadm 进行添加
当lvs负载均衡中,有一台rs不能使用时,访问vip,还会去访问down掉的这台rs,并返回一个错误的页面。这种情况是不合理的,所以我们需要一个lvs的健康检查,更新策略ldirectord
一、ldirectord
server1(vs)
1、下载并安装ldirectord
2、ldirectord配置
1、设置配置文件
[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
[root@server1 ~]# cd /etc/ha.d/
[root@server1 ha.d]# ld
ld: no input files
[root@server1 ha.d]# ls
resource.d shellfuncs
[root@server1 ha.d]# cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf . #将正确的配置文件复制到当前目录
[root@server1 ha.d]# ls
ldirectord.cf resource.d shellfuncs
[root@server1 ha.d]# vim ldirectord.cf ##修改配置文件
# Sample for an http virtual service
virtual=172.25.254.100:80
real=172.25.29.2:80 gate
real=172.25.29.3:80 gate
fallback=127.0.0.1:80 gate ##server2、3服务down后,访问本机80端口
service=http
scheduler=rr ##调度模式:轮询
#persistent=600
#netmask=255.255.255.255
protocol=tcp
checktype=negotiate
checkport=80 ##端口
request="index.html" ##文件
# receive="Test Page"
# virtualhost=www.x.y.z
测试:
当server2出现问题时server3正常访问
当server3出现问题时server2正常访问
当server2和server3同时出问题时,则访问本机: