LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: Monitoring real servers from the kernel

To: lvs-users@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: Monitoring real servers from the kernel
From: Roberto Nibali <ratz@xxxxxx>
Date: Mon, 11 Jun 2001 09:27:02 +0200
Hello Jacob,

> Time         Client                    Server    Comment
>   |             |                         |
>   v             |----- SYN isn1 --------->|    initiate connection
>                 |<- SYN isn2 ACK isn1+1 --|    this my not pass through the
> LB
>                 |                         |
> ** CHECK HERE:  |----- ACK isn2+1 ------->|
>                 |                         |
> What the LB could do is to check the timediff between "SYN isn1" and "SYN
> isn2 ACK isn1+1".

Don't do that! What would the timediff be? I reckon it's higher then your
userspace 1HZ.

> But this packet may not return through the LB, when configured as tunnel or
> gate.
> But LVS could check for "ACK isn2+1". If that time expires, You can bet that
> the real server

No, what about retransmit? SACK? tao? The current implementation is rfc89x TCP
friendly. This means no artificial intelligence to the kernel. You're proposing
some sort of connection tracking.

> is dead. Then You may set its weight to lets say -weight and give the
> responsability to
> the monitoring software, which may readd the realserver after is came back.

Who checks if it is back? What if I misconfigured my iptables rules on the
realserver and I open it again? 
 
> I think it should not be too difficult to implement this, or am I wrong?

IMHO it would be very difficult to implement it. First, timers in kernel are
bitchy, second, you cannot rely on the fact that if the ACK isn2+1 doesn't
show up within timediff your service is not available anymore, unless you 
set the timediff very high. 

Try to convince me ...

Best regards,
Roberto Nibali, ratz

-- 
mailto: `echo NrOatSz@xxxxxxxxx | sed 's/[NOSPAM]//g'`


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