2015年(68)
分类: 系统运维
2015-08-31 19:12:59
集团一门户网站,结构如下
web1
/
->(KEEPALIVED+LVS)-— web2
\
web3
用ipvsadm查看连接情况时发现各个后端连接情况差异很大
日志文件里面有大量的后端检查失败然后从服务器池移除后端服务器的日志,得知这种情况是由于不断反复的从服务器池添加、移除后端所造成。
那接下来就是找找不断反复的从服务器池添加、移除后端的原因了。还是看日志,终于发现状况了,就是对后端检查失败的时间怎么会那短的?
keepalived健康检查的配置是这样的:
delay_loop 20 //检查的间隔时间,每隔20秒检查一次
real_server 172.x.x.x 80 {
weight 100
TCP_CHECK {
connect_timeout 6 //连接超时时间
nb_get_retry 3 //失败重试次数
delay_before_retry 4 //失败重试的间隔时间
connect_port 80 //连接的后端端口
}
}
##关于keepalved健康检测可以看 style="font-size:14px;">
[root@localhost ~]# date;iptables -A INPUT -s keeplivedIP -p tcp --dport 80 -j DROP
2012年 07月 03日 星期二 16:55:09 CST
//下面为keepalived上的日志
可以看到在 16:55:02 时检查的OK的,我在下一次的检查时间16:55:22(16:55:02 + 20秒)到来之前用iptables模拟故障,那么按照配置,keepalived会在16:55:42(16:55:02 +(20+6+4+6+4+6)秒)检查失败。但结果却不是这样的,keepalived会在16:55:28(16:55:02 +(20+6)秒)就报检查失败了,忽略了重试。
这个还真不知道是我配置有问题还是bug什么的,上google找了下,没结果,倒是有个外国哥们遇到了同样的问题,然后有人回复了个patch(http://marc.info/?l=keepalived-devel&m=120369079614173&w=2),据说可以搞定,不过他用的是1.1.15版,跟我用的版本不符所以没去测它,自已后面写了个检测脚本后配置MISC_CHECK搞定。