[lug] Clustering for Load-Balancing and Fault-Tolerance??

Alan Robertson alanr at unix.sh
Tue Jan 29 00:02:36 MST 2002

Alan Robertson wrote:
> Dave Anselmi wrote:
> >
> > Shannon Johnston wrote:
> >
> > > Hello all!
> > > I'm looking for opinions here...
> > > I need load-balancing, fault-tolerant DNS servers. (Not load-balancing
> > > for http, but distributing DN resolution requests.) I've never worked
> > > with clusters before so I would like to know where a good starting point
> > > would be, and if anybody has any suggestions as to what to use.
> >
> > Do you really?  I suppose you could look at the sites mentioned and put a
> > load balancing machine in front of several DNS servers.
> >
> > When you list several name servers as authoritative for a domain, I would
> > guess that other name servers will pick between them at random.  You don't
> > need any session sharing type fault tolerance because DNS only uses one
> > packet each direction.

Actually, I think they often pick the first one each time...  But it's not
that critical for this case because of caching.  Caching helps mitigate the
effect of authoritative
DNS servers dropping out.

> > The only thing clustering will buy you is that all the name servers could
> > share one IP, so if one goes down there's no delay from asking it for a
> > lookup.  Unless you're talking about load balancing recursive requests
> > (i.e., from resolver clients rather than name servers).
> >
> > I'm curious what setup you have and why you think clustering is the way to
> > go.

Warning:  Dumb Answer ahead...  Who wrote that?  Oh, me...  Sorry :-(

> DNS has minimal useful fault tolerance.  When a server goes down, sites and
> clients that have the dead server IP cached get the shaft.

Whoops!  Can't use DNS to resolve DNS server addresses ;-)

> People who use
> this solution typically dislike the result.  Microsoft clients are
> notoriously slow to bypass a dead server to go to the next one.  Delays of a
> minute or more are not uncommon.  That's not very fault tolerant.

In any case, the answer is about 3/4 right.  Most DNS traffic goes to local
DNS servers.  Those servers are listed in an order in a config file and
in that order - period.  If you did a good job of giving half the people one
and the other half another order, then you'll get load balancing. 
if everyone copies the first guy's config who got it to work (the usual
case), then you
get no load balancing at all.  And clients often don't cache at all - so
they will really hammer this level of DNS server...

> You don't actually need a load balancer, but you either need a load balancer
> or IP address takeover.  Take your pick.  For just two machines, IP takeover
> is probably the way to go.  For "n" machines, where "n" is a large number,
> the load balancer is probably a better choice.
> The CPU overhead from running one or both of these solutions is pretty
> small.  You don't need to add more machines to do it.  It *is* more
> complicated to configure, but it works in a much more satisfactory way.
> If you're my ISP and I run microsoft clients, and you just let DNS fault
> tolerance take care of it, I'm going to be very testy about these failures.
> If you use load balancing or IP failover, I won't even know.

And, I forgot to mention another reason why I think you should use
software - IBM pays me to write OSS (i.e., "free") clustering software.  ;-)
Lots of people use it in just this way, and report it's easy to set up,
and works well for them.

	-- Alan Robertson
	   alanr at unix.sh
	   http://linux-ha.org/   Easy to use OSS High-Availability Software
	   http://linux-ha.org/heartbeat/users.html  "reference sites" page

Use our software, and send us reference site info - support free software

More information about the LUG mailing list