LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: [lvs-users] failover and connection threshold

To: Joseph Mack NA3T <jmack@xxxxxxxx>
Subject: Re: [lvs-users] failover and connection threshold
Cc: "LinuxVirtualServer.org users mailing list." <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>
From: Rumen Bogdanovski <rumen@xxxxxxxxxxxx>
Date: Thu, 25 Oct 2007 17:42:46 +0300
On Thu, 2007-10-25 at 07:22 -0700, Joseph Mack NA3T wrote:
> On Thu, 25 Oct 2007, Rumen Bogdanovski wrote:
> 
> > I am experiencing problems with the LVS master and backup 
> > daemons. I have 2 directors running both with master and 
> > backup sync daemons. Failover works fine but the 
> > connection threshold does not. I mean if I have 2 real 
> > servers each accepting 3 connections, this means I can 
> > have 6 connections in total to the cluster, but if I have 
> > 5 and the master fails, the backup takes over(so far so 
> > good) but the new director accepts 6 more connections and 
> > the cluster ends up with 11 connections, if another 
> > failover occurs soon, 6 more connections will be accepted 
> > no matter how many were inherited from the failed 
> > director.
> 
> hmm. I'm not familiar with the connection threshhold code. 
> As well it doesn't get used a whole lot, so it's possible 
> that there are unnoticed bugs. However the code was written 
> (I think) by Ratz (unless someone has messed with it since) 
> and Ratz is unlikely to have let code out without making the 
> obvious test to check for the problem you see.
> 
> Hopefully someone else will have a suggestion for you.
> 
> > How can I make the new director know how many connections are inherited?
> >
> > "ipvsadm -lnc" shows the inherited connections together with the new
> > ones, while  "ipvsadm -l" shows only the connections established by the
> > current director.
> 
> Has the number of connections (and other state info) been 
> transferred by the synch state demon to the backup director?

Well the connection state works fine, no connection is dropped on when
failover occurs. "ipvsadm -lnc" shows the correct state of all
connections.
but "ipvsadm -l" says 
root@test2:~# ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  rumen-desktop.local:5999 wlc
  -> node473.local:5999           Route   1000   0          0         
  -> node484.local:5999           Route   1000   0          0         

while "ipvs -lnc"
root@test2:~# ipvsadm -lnc
IPVS connection entries
pro expire state       source             virtual            destination
TCP 14:56  ESTABLISHED 192.168.0.10:39164 192.168.0.222:5999 192.168.0.51:5999
TCP 14:59  ESTABLISHED 192.168.0.10:39165 192.168.0.222:5999 192.168.0.52:5999 

new connection created :
root@rumen-desktop:~# ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  rumen-desktop.local:5999 wlc
  -> node491.local:5999           Route   999    1          0         
  -> node503.local:5999           Route   999    0          0  

root@rumen-desktop:~# ipvsadm -lnc
IPVS connection entries
pro expire state       source             virtual            destination
TCP 14:59  ESTABLISHED 192.168.0.10:32800 192.168.0.222:5999
192.168.0.52:5999
TCP 14:21  ESTABLISHED 192.168.0.10:39164 192.168.0.222:5999
192.168.0.51:5999
TCP 14:31  ESTABLISHED 192.168.0.10:39165 192.168.0.222:5999
192.168.0.52:5999

So the new connection is seen on both places while the old ones only
with "-lnc"  and the scheduler seems to read the same number of
connections as "ipvsadm -l"

I could look in the source, but I am not sure how much time it will take
me to figure out how everything works and to fix it... However I will
try next days when I have some time...

Rumen



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