LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: [lvs-users] IPVS/NAT - no connection after real server down

To: "LinuxVirtualServer.org users mailing list." <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: [lvs-users] IPVS/NAT - no connection after real server down
From: Graeme Fowler <graeme@xxxxxxxxxxx>
Date: Fri, 05 Sep 2008 12:13:53 +0100
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



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