Hi

On Fri, 2008-09-05 at 12:09 +0200, Pitscheider, Oswald wrote:
> virtual_server 10.150.50.187 80 {
>     delay_loop 20
>     lb_algo rr
>     lb_kind NAT
>     nat_mask 255.255.255.0
>     protocol TCP
>     real_server 10.150.54.10 80 {
>         weight 1
>         inhibit_on_failure
>         TCP_CHECK {
>            connect_timeout 3
>            connect_port 80
>         }
>     }
>     real_server 10.150.54.12 80 {
>         weight 1
>         inhibit_on_failure
>         TCP_CHECK {
>            connect_timeout 3
>            connect_port 80
>         }
>     }
> }

Your problem is being caused because you're quiescing the realserver
(ie. setting weight to 0 by using "inhibit on failure") instead of
removing it from the pool.

When the weight is 0, clients with connections which have not yet
reached a protocol timeout will reconnect to the same realserver to
continue the connection - this is very common, for example, for a
webserver with Keepalives turned on.

If you remove "inhibit on failure" your LVS will run as you expect, but
you may also need to set the sysctl:

net.ipv4.vs.expire_nodest_conn = 1

That ensures existing connections to realservers which have been removed
from the pool are expired immediately.

Graeme


_______________________________________________
LinuxVirtualServer.org mailing list - [email protected]
Send requests to [EMAIL PROTECTED]
or go to http://lists.graemef.net/mailman/listinfo/lvs-users

Reply via email to