LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: neural network based load balancing

To: "LinuxVirtualServer.org users mailing list." <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: neural network based load balancing
From: Roberto Nibali <ratz@xxxxxxxxxxxx>
Date: Sun, 08 Aug 2004 07:43:13 +0200
Hi,

2. Horms has a generalised framework for writing server state sync demons and has sample code available. You could figure out and document his scheme and write a few versions of the modules yourself. The result would be that everyone would be able use Horms scheme for
the server state sync demon.

Horms, what's the status of your synchronisation work?

4. Realserver failover with maintenance of session.
Currently realserver failure losses the session. This

Which is also the correct behavior.

is not important for http, apparently the main use of LVSs.
For telnet, ssh, etc the user has to start again. Moving
tcp sessions is a difficult and not solved problem.

I remember having seen an implementation by NEC which kind of did that. I have to search through my proceedings volumes to find out where I saw it.

However
simple cases might be amenable to solution eg read only
streaming video. If a realserver fails in the middle of
tranferring a video presentation to an important set of
business prospects, they are not likely to be impressed.

But for this the application needs to be failover aware. I don't see how you could implement a generic smooth application transition failover without knowing L5 and above information.

Two things (that I can see) would need to be added.

a. The RIP of the failed realserver would have to be
transferred to a new realserver (so the director would
not notice the failover) and the weight for that RIP changed
to 0 (so no new sessions are sent to that RIP).

The transition time alone is a multiple longer than audio would ever accept it. For audio streams you also mostly don't rely on unicast which would be another source of problem for LVS. As for http RS failover we could use the server pool implementation which is still on my hd somewhere.

b. state information (eg the seek position in the video stream)
would have to be propagated to other realserver(s) so that the streaming_videod knows where to start up the replacement video stream. The streaming_videod would also have to know when and how to start up a new session using this state information.

The hifi multimedia folks have come up with their own implementations, tweaks and protocols for streaming and processing over the years.

c. The streaming video client would have to have some reconnect
ability and to accept the failover session as a continuation of
the old session.

Now I don't really want to spoil the mood here so I suggest you guys interested in transparent RS failover should have a look at Werner Almensberger's paper on "TCP connection passing". Joe, the paper can be found in the 2004 OLS proceedings, Volume 1, first paper ;). The basic idea is to synchronise the ICI (internal connection information) of a socket over the nodes. Oh, the homepage can of course be found at:

    http://tcpcp.sourceforge.net/

The online paper at:

    http://www.finux.org/Reprints/Reprint-Almesberger-OLS2004.pdf

Best regards,
Roberto Nibali, ratz
--
echo '[q]sa[ln0=aln256%Pln256/snlbx]sb3135071790101768542287578439snlbxq' | dc
<Prev in Thread] Current Thread [Next in Thread>