真实服务器不可用了,而调度器却继续转发请求
问题:
真实服务器不可用了,而调度器却继续转发请求
环境:
我使用lvs构建了一套DR方式的web集群,使用ldirectord软件来检查真实服务器是否可用;调度算法使用lblc,ldirectord软件的配置如下:
virtual=20.77.150.119:8102
real=20.77.150.122:8102 gate
# real=20.77.150.5:8102 gate
service=http
request="/xrose/.testpage.jsp"
receive="Test Page"
scheduler=lblc
persistent=36000
netmask=255.255.255.0
protocol=tcp
当真实服务器20.77.150.119:8102出现异常时,ldirectord软件也及时发现修改了服务器的权重为0,ipvsadmin -l 结果如下:
IP Virtual Server version 1.0.10 (size=65536)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 20.77.150.119:8102 lblc persistent 36000 mask 255.255.255.0
-> 20.77.150.122:8102 Route 0 20 450
但是在真实服务器20.77.150.122上还是继续能够受到请求,虽然结果是错误的。
请问,这是由于什么原因造成的?
pumcpc
周六, 2006-04-15 23:06
Permalink
估计是arp的问题
估计122直接回应了对VIP的arp询问
tim123
周日, 2006-04-16 04:40
Permalink
如何可以判断。
我的真实服务器使用的redhat ad 3.0,使用的是
www.ultramonkey.org上列的方法,进行配置的。
pumcpc
周日, 2006-04-16 05:35
Permalink
很简单啊
你把LB那台机子关了,找台机子ping VIP,再用arp -an看看对应VIP的MAC地址是不是122的;如果配置正确的话应该没人回话才对
wensong
周一, 2006-04-17 15:16
Permalink
首先lblc调度算法是针对目标IP地址进行,目前主要用于Cache集群系统。详细请阅读基于局部性的最少链接(Locality-Based Least Connections Scheduling)手册。在你的例子中,请求报文的目标地址只有一个,20.77.150.119:8102,所以只会调度到一台服务器。应该考虑使用wlc或者wrr调度算法。
其次,当权值为0时,已有连接的后续报文会继续发给该服务器。
Anonymous (没有被验证)
周一, 2006-04-24 08:43
Permalink
1、原来是有两台机器,只是因为其中一台出现了问题,我将它去了,所以留下了一台。
我现在是一个web的集群,要解决客户端的cookie、sessions问题,所以我选用了LBLC的调度算法。我应该使用那种调度算法合适?
2、“当权值为0是,已有的连接的后续报文会继续发给该服务器”,我该如何配置使这些后续的报文也不发给该服务器,而是改发给其它的正常服务的服务器呢?
谢谢
tim123
周一, 2006-04-24 08:46
Permalink
问题已经解决,谢谢大家
1、原来是有两台机器,只是因为其中一台出现了问题,我将它去了,所以留下了一台。
我现在是一个web的集群,要解决客户端的cookie、sessions问题,所以我选用了LBLC的调度算法。我应该使用那种调度算法合适?
我仔细看了算法,选用了WLC,配合persistent参数来解决该问题
2、“当权值为0是,已有的连接的后续报文会继续发给该服务器”,我该如何配置使这些后续的报文也不发给该服务器,而是改发给其它的正常服务的服务器呢?
我调整了ldirectord的配置,将参数quiescent改为No,Real sever出现异常以后,会被ldirectord程序直接将该服务器从LVS的table中删除,保证后续的报文不会被发送到该服务器。
谢谢
sparrow
周六, 2006-09-09 06:55
Permalink
问一问题,谢谢
tim123 你好
请问你的每台真实服务器上的 WEB服务配置上的IP地址是真实IP还是VIP?,谢谢您!