LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: active-active only works with kernel 2.4.26?

To: "LinuxVirtualServer.org users mailing list." <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: active-active only works with kernel 2.4.26?
From: Francisco Gimeno <kikov@xxxxxxxxx>
Date: Sat, 11 Nov 2006 15:03:10 +0100
Hello

as far I remember the thing work something like this:
- All director nodes know about the others
- Each one have an ID ( for example, the MAC or the IP )
- Each director node can elaborate a sorted list based on that ID
- Heartbeat everywhere, so the list is dynamic list
- The "view" of each node should be the same for each node (ie: all nodes 
should have the same list)
- They should have a virtual-MAC
Those requirements could be satisfied with a broadcast sync protocol (it could 
be similar to the WCCP, for example)

for each packet it arrives,
- Make a HASH with the parameters you want to keep the __affinity__ (like src 
IP, dst IP, ports, ...) to.
- Calculate HASH % numer_of_nodes ( % := module )
- If that value it's the order in the list for the node processing the packet, 
the packet is accepted, if not, discarded.
As every packet go to every director...

So one of the -->most important thing<-- here, is that no director has to put 
the virtual-MAC in the wire, as every director has to receive the packet. Arp 
responses to the VIP should be the virtual-MAC, but it should be sent with a 
bogus-MAC. With that, the responsible to route packets to the VIP, will send 
the packets to that virtual-MAC. As the switch (L2) don't know the physical 
port associated to it, it sends the packet to all the active ports that 
hasn't a MAC associated which are the director's. If you use a HUB then, 
there will not be this kind of problems (who ownes a HUB nowadays?).

I hope I help you understanding how it works...

BR,
Francisco Gimeno

> Roberto,
> My thoughts exactly!  It doesn't seem like it should be possible, but
> Horms sure knows his stuff.  Maybe he can chime in and elaborate on
> those details?
>
> ---
> Michael Spiegle
> mike@xxxxxxxxxxxxxxxx
>
> Roberto Nibali wrote:
> >>>> I just just built 2 fresh gentoo boxes for testing active-active.
> >>>> I had
> >>>
> >>> How is active-active possible
> >>
> >> it's Horms experimental code called Saru. He explained it at OLS one
> >> year you didn't come.
> >>
> >> http://www.ultramonkey.org/papers/active_active/active_active.shtml
> >
> > Downloaded and printed, will read this weekend. Although, if Horms
> > engineers something it's most likely flying anyway. So I just have to
> > understand how he cheated the TCP stack this time :). I see some
> > netfilter related stuff in it and I wonder if (from what I've seen)
> > his approach works for 2.6.x kernels with proper TCP state tracking,
> > TSO and USO? In 2.4.x where netfilter is mostly broken with regard to
> > TCP state tracking, such quirks might be possible.
> >
> > Cheers mate,
> > Roberto Nibali, ratz
>
> _______________________________________________
> LinuxVirtualServer.org mailing list - lvs-users@xxxxxxxxxxxxxxxxxxxxxx
> Send requests to lvs-users-request@xxxxxxxxxxxxxxxxxxxxxx
> or go to http://www.in-addr.de/mailman/listinfo/lvs-users

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