LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: performance NAT versus DR ?

To: Julian Anastasov <ja@xxxxxx>
Subject: Re: performance NAT versus DR ?
Cc: lvs-users@xxxxxxxxxxxxxxxxxxxxxx
From: Kyle Sparger <ksparger@xxxxxxxxxxxxxxxxxxxx>
Date: Tue, 30 Jan 2001 06:53:15 -0500 (EST)
> > How about selecting a new server for the connection, and signalling (not
> > necessarily via signals, mind you...) to a user-space program that the
> > target should immediately be checked for availability?  Then the userspace
> > program can set up checks to be run, and re-add it later when it becomes
> > available again -- assuming it really is unavailable.
>       My first thought is that this can be very complex. I don't
> have good ideas.

Or it can be very simple.  You could simply register a program when you
create a virtual service on the director.  When a condition occurs that
the LVS code has a reasonable belief that something may go wrong, it
simply spawns off the program with a pre-defined set of arguments;  for
example,

program host port time

I think that should probably be sufficient in almost all cases, since if
you have very specific needs for the check, you can simply register a
program which provides them.

And it seems reasonably simple;  the hardest part of that would probably
be the code that triggers it.

Thanks,

Kyle Sparger

On Tue, 30 Jan 2001, Julian Anastasov wrote:

> 
>       Hello,
> 
> On Mon, 29 Jan 2001, Kyle Sparger wrote:
> 
> > How about selecting a new server for the connection, and signalling (not
> > necessarily via signals, mind you...) to a user-space program that the
> > target should immediately be checked for availability?  Then the userspace
> > program can set up checks to be run, and re-add it later when it becomes
> > available again -- assuming it really is unavailable.
> 
>       My first thought is that this can be very complex. I don't
> have good ideas.
> 
> > If the server _is_ available, and acting normally, it should respond in
> > the first place, though, right? :)
> >
> > This method might be more efficient than the existing scheduled poll
> > method, but I'm sure it also has hidden traps.
> 
>       Agreed. If you have many real servers the L4 checks can eat
> many CPU cycles in the director.
> 
>       There can be another model: register for information
> in a real server agent who will notify the director with one
> packet (on each 1 to 5 seconds): "All my real services are OK".
> If some real service is stopped it is reported. If the host is down
> or busy and the agent can't report "I'm alive" for specific time
> all real services can be removed from the director user space cluster
> software. Of course, this is dangerous if the kernel kills your agent
> on OOM ("thanks" to the new OOM killers) but everything can happen.
> 20 real servers reporting info on each 2 seconds means 10p/sec
> which is a low value. With this packet we can even report the weight(s)
> for the real services and to use it as iamalive reply.
> 
>       BTW, I'm working on such system but am too busy with other
> things. I'll try to implement the basics and then other people can
> extend it.
> 
> > Thanks,
> >
> > Kyle Sparger - Senior System Administrator
> > Dialtone Internet - Extremely Fast Web Systems
> > (954) 581-0097 x 122 - Voice (954) 581-7629 - Fax
> > ksparger@xxxxxxxxxxxxxxxxxxxx
> > http://www.dialtoneinternet.net
> > "Forget college, I'm going pro."
> 
> 
> Regards
> 
> --
> Julian Anastasov <ja@xxxxxx>
> 
> 



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