I have been actively pursuing this same problem for the last couple of
months and it s not as easy as it may be described here. If you also need to
maintain session persistence (since you are using mysql, i assume you need
to persist for these transactions), that opens another can of worms.
Simple DNS load balancers monitor the health of your web servers and return
ordered A records (aka eCluster), a single A record (aka IntelliDNS) or a
CNAME record (aka lbnamed) with a TTL of 0. This works well in most cases if
you do not need session persistence. I prefer returning A records over CNAME
records because the A records dont require the URL to change.
Unfortunately, this breaks down when you throw in session persistence since
either a client/server connection table or session cookie processing is
required to return the client to the same server in a cluster. It is tricky
to work around these issues with simple HTTP redirects.
I currently use LVS on linux 2.4.17 on my clusters but not so much for load
balancing as simple NAT routing to my backends (yeah I know I can do this
with IPTABLES but is is easier to just use LVS). I use mod_backhand for
Server Load Balancing (SLB) within the local cluster. I am currently using
eCluster for Global Server Load Balancing (GSLB) but it has the problems I
have already described. I tried lbnamed but the CNAME records reak havok on
your URL's and cookies are not associated properly with the correct domain
name. The (free) IntelliDNS_lite is worthless since they only monitor ICMP
on ten minute intervals (for $4000 you can fix that). I am just now looking
at Fezhead again since they seem to have there site back up.
I thought about using the connection tracking feature of LVS for this but
this connection tracking table is in memory so that if you rebooted, it is
no longer valid (IntelliDNS uses mysql to store this info).
I wish someone would solve this problem in Open Source. I can't afford the
BigIP's of the world.
Kip Iles
----- Original Message -----
From: <lvs-list-spam@xxxxxxxxx>
To: <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Wednesday, February 27, 2002 12:23 PM
Subject: Re: Can LVS do this?
>
> whats that, are you generating too much traffic to your new spiffy
> doing-too-much-work dns server to support your new spiffy geographically
> distributed lvs systems?
>
> no problem.
>
> just run a bank of dns servers behind an lvs implementation to distribute
> the load.
>
> whats that? sometimes your dns servers perform slowly because your isp
> sometimes has bandwidth issues so you want to geographically distrute your
> dns servers?
>
> no problem.
>
> just run a set of dns servers behind a...
>
> heh.
>
> sorry. couldn't resist.
>
> <drew>
>
>
> On 27 Feb 2002, Derek Glidden wrote:
>
> > On Wed, 2002-02-27 at 11:58, Joseph Mack wrote:
> > > Gre7g Luterman wrote:
> > > >
> > >
> > > > We have solid hardware running FreeBSD, Apache, and Mysql off of a
> > > > business grade DSL line. But there are times when our ISP gets
> > > > bottlenecked and even though our server is sitting on its thumbs,
> > > > waiting for requests, the clients are not getting good response
time.
> > > >
> > > > What I would like to do is set up N systems located in different
> > > > places with different ISPs and then set up some sort of external
> > > > monitor that can watch them and direct traffic... balance traffic
not
> > > > only based on load but on performance. Is this something that LVS
> > > > can do?
> > >
> > > the short answer is no.
> > >
> > > [snip]
> >
> > The company I work for works with F5 when we can't (political reasons
> > usually) put a home-grown LVS box in a customer site. The F5 "3DNS" and
> > "BigIP" servers can do this kind of geographically-diverse
> > load-balancing. They do it by being tricksy with DNS:
> >
> > When a hostname lookup comes into their DNS server, it immediately
> > responds with whichever IP is currently the highest in priority, but
> > with a 0-second live time for the response, which means the next request
> > that same client makes from the server will also require another DNS
> > lookup. (i.e. the next link on your website that gets clicked) At the
> > moment of the first request from a new client IP, the DNS server pokes
> > all the various load-balancers to ask them to find out which one has the
> > best response time to this particular client IP and the next time that
> > client asks for DNS resolution of the hostname, the DNS server responds
> > with the IP of the load balancer that has the best response (that also
> > has real-servers that are alive and well of course).
> >
> > The reason I mention this is because one of the guys in the office here
> > has said he's gotten this kind of thing to work with BIND and our
> > LVS-based boxes. I haven't actually talked to him much about it, so I
> > can't give more details, but I can ask what he's done. A google search
> > may turn something up as well.
> >
> > The advantage is, it doesn't require any modifications to the core LVS
> > code, since you have a separate daemon sitting around doing the
> > traffic/network analysis and the hard work is done at your DNS server.
> >
> > The disadvantage is, you need to be able to run and maintain your own
> > DNS server to use this method, which not everyone is able or capable of
> > doing.
> >
> >
>
>
> _______________________________________________
> 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
>
|