LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: [lvs-users] fail over or tcp timeout issue

To: LVS Users Mailing List <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: [lvs-users] fail over or tcp timeout issue
From: Terry Inzauro <tinzauro@xxxxxxxxxxxxxxxx>
Date: Mon, 07 Jun 2010 22:03:12 -0500
On 06/07/2010 06:50 PM, Simon Horman wrote:
> On Mon, Jun 07, 2010 at 01:43:06PM -0500, Terry Inzauro wrote:
>> List,
>>
>> When a real server is removed either manually or due to an unplanned fault, 
>> I am finding that it takes quite some time(if
>> ever, i stopped waiting) for existing/new connections to be failed over to 
>> the other real servers in the pool.
>>
>> Is this due to tcp time out?
>> Is it my persistent value too high?
>> Or something else?
> 
> Hi Terry,
> 
> Briefly, the problem is likely to be an interaction between
> quiescent and persistent.
> 
> First, its important to understand that existing connections won't be
> failed-over. If you set quiescent=no they will be broken. If you set
> quiescent=yes they will be allowed to run their course.
> 
> With regards to new connections. If quiescent=no or persistent=0
> then new connections will be scheduled to a different server.
> If quiescent=yes and persistent is non-zero then there are
> two behaviours available that are controlled by a proc value.
> 
>       1. If proc/sys/net/ipv4/vs/expire_quiescent_template is 0
>          (which is the default) then new connections will
>          be scheduled to the original (offline) real-server
>          as per the usual rules of persistence (in your case,
>          if any other connection has been used within 600s).
> 
>          This is mainly for historical reasons and usually is not
>          what is desired.
> 
>       2. If proc/sys/net/ipv4/vs/expire_quiescent_template is non-zero
>          then new connections will be scheduled to a new real-server.
> 
>          This seems to be what you want.
> 
> The behaviour or expire_quiescent_template is explained in
> Documentation/networking/ipvs-sysctl.txt in the kernel source,
> which Google found here
> http://www.mjmwired.net/kernel/Documentation/networking/ipvs-sysctl.txt
> 
> Another recent explanation of this that I wrote is here
> http://www.gossamer-threads.com/lists/lvs/users/23247#23247
> 
> As this problem keeps coming up, I wonder if it would make
> sense for ldirectord to control this setting. Perhaps adding
> a (global) expire_quiescent_template=yes|no option to ldirectord.cf
> and defaulting to yes?

Thank you for the explanation.  I sometimes forget about those docs in the 
kernel source. Sounds like
expire_quiescent_template = 1 is exactly what I need.

FWIW:
A variable in ldirectord.cf would be nice, but really, a section explaining the 
various /proc values in the man page would
probably better help the masses.


kind regards,

Terry









_______________________________________________
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>