HiOn 16/02/2007 10:06, Olle ֖stlund wrote:
<snip long detailed description>
To me it seems very strange that the direcor try to keep using a
realserver which weight is 0 / has stopped ansvering the directors
polling-requests.
Not really.
Setting the weight to 0 means that a given realserver ceases to accept
new connections from new clients. Established connections from
established clients will continue, and if they've idled out in TCP terms
(ie gone to FIN/WAIT state) but are still within their session
persistence, then they'll come back to the same realserver - this is why
you might see an *increase* in active sessions, even when quiesced.
There's a "blunt stick" approach to quiescing realservers in persistent
states, which is to:
echo 1 > /proc/sys/net/ipv4/vs/expire_quiescent_template
That means that when the realserver is quiesced - weight set to 0 - all
persistence templates will be removed, and sessions will fail
immediately to other servers.
In my experience I've had to combine "affinity" - persistence in LVS
terms - with session management/awareness across realservers. That way
I've been able to fail out a realserver with no interruption.
Not what you were asking for - the graceful method - but a way forward
nonetheless.
G
|