Hi,
I have set up a LVS-DR cluster with four consumer PCs: two Directors,
and two Real servers. Only one director is active, the other director is
a hot backup by heartbeat. On the director server, i installed
ldirectord (http://www.vergenet.net/linux/ldirectord/) to manage my real
server connection status. My ldirectord configure file in heartbeat is:
checktimeout=20
checkinterval=5
autoreload=yes
quiescent=no
virtual=45
real=192.168.0.240 gate 1 ".healthcheck.html", "OKAY"
real=192.168.0.241 gate 1 ".healthcheck.html", "OKAY"
service=http
persistent=36000
checkport=80
protocol=fwm
scheduler=wrr
checktype=negotiate
Everything works fine except for the timer on the director server. For
example, I use "ipvsadm -Lnc|grep ERR|grep 91.113.65.128" to get the
following persistent template:
IP 00:16 ERR! 91.113.65.128:0 0.0.0.45:0
192.168.0.240:0
After a while, I check it again and get the following result:
IP 00:50 ERR! 91.113.65.128:0 0.0.0.45:0
192.168.0.240:0
Note here the expiration is greater than 16 seconds!
I then check it every second using the above shell command, and found
that each time when the timeout for the persistent template is up, it
reset to 60 seconds again. So it never disappear from the lvs connection
table. Also this is the same for some TCP connections with FIN_WAIT
status. But I found some tempalte works with the correct 10 hour
(persistent=36000) expiration time.
I tried the backup director server, it never has such problems.
So my question is why there are some TCP connections and persistent
template's timer doesn't work as expected on the first director server?
My Kernel version is: 2.6.9-42; heartbeat: 2.0.8; ipvsadm: 1.24-6
Thanks!
regards,
jason
_______________________________________________
Please read the documentation before posting - it's available at:
http://www.linuxvirtualserver.org/
LinuxVirtualServer.org mailing list - lvs-users@xxxxxxxxxxxxxxxxxxxxxx
Send requests to lvs-users-request@xxxxxxxxxxxxxxxxxxxxxx
or go to http://lists.graemef.net/mailman/listinfo/lvs-users
|