LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: [lvs-users] ldirectord feature patch - add abilility to signal syste

To: lvs-users@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [lvs-users] ldirectord feature patch - add abilility to signal system maintenance
From: Christian Balzer <chibi@xxxxxxx>
Date: Wed, 20 May 2009 12:30:22 +0900
Hello Simon,

On Tue, 19 May 2009 19:52:42 +1000 Simon Horman wrote:

> On Tue, May 19, 2009 at 04:27:19PM +0900, Christian Balzer wrote:
> > 
> > Hello,
> > 
> > On Sat, 16 May 2009 02:24:55 +1000 Simon Horman wrote:
> > > > On Fri, 2009-05-15 at 09:19 -0400, Geoff Harrison wrote:  
> > > > Isn't that what quiescent=yes is for?  At least in masquerade mode
> > > > (what we use), when the weight is set to 0 ipvs continues to send
> > > > existing TCP sessions to that server.  We weight a server to 0,
> > > > then watch to make sure all of the connections have closed, then
> > > > bring the service down.
> > > 
> > > Just to clarify, quiescent=yes should work this way for all of LVS's
> > > forwarding methods.
> > > 
> > It does not for SH (and DH I presume but I never tested that). Well,
> > not as expected at least. As I've been pointing out for well over a
> > year and just re-tested with the latest kernel.
> > 
> > If the weight goes to 0 with SH and quiescent=yes set connections will
> > keep going to the old server as expected. Alas even when they expire
> > they will keep being sent there as will completely new connections if
> > the hash result assigns them to the weight 0 RS. 
> 
> I don't seem to be able to reproduce that problem.

Debian Sid install (2.6.29 bleeding edge kernel, but anything 2.6 and hand
rolled kernels are the same), Heartbeat with ldirectord and this config:
---
$ cat /etc/ha.d/conf/web
# Global Directives
checktimeout=10
checkinterval=2
autoreload=no
quiescent=yes

# Virtual Server for HTTP
virtual=203.216.90.88:80
#        fallback=127.0.0.1:80
        real=203.216.90.82:80 gate
        real=203.216.90.83:80 gate
        service=http
        scheduler=sh
        protocol=tcp
        checktype=connect
        emailalertfreq=600
        emailalert=root
---

Shutting down Apache on the 2nd RS or manually setting its weight to 0 via
ipvsadm (for a planned maintenance) will result in the above scenario.
Only with quiescent=no and the resulting impact for maintenance things
work as expected. 

> Do you have persistence set? If so, could you try setting
> /proc/sys/net/ipv4/vs/expire_quiescent_template to 1 ?
> 
As you can see there is no persistence set in the config and back when I
reported this I played with all those flags. But here I go again, it is 0
by default and setting it to 1 does not change that behavior.

If there is anything else you would like me to do or try, please let me
know. Access to these or other test boxes could be arranged, too.

Regards,

Christian
-- 
Christian Balzer        Network/Systems Engineer                NOC
chibi@xxxxxxx           Global OnLine Japan/Fusion Network Services
http://www.gol.com/
https://secure3.gol.com/mod-pl/ols/index.cgi/?intr_id=F-2ECXvzcr6656

_______________________________________________
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

<Prev in Thread] Current Thread [Next in Thread>