(Simple?) High availability question

Lennart Sorensen lsorense-1wCw9BSqJbv44Nm34jS7GywD8/FfD2ys at public.gmane.org
Fri Jun 1 20:55:10 UTC 2007


On Fri, Jun 01, 2007 at 04:11:39PM -0400, Madison Kelly wrote:
>   I am not looking for instructions, just pointers. :)
> 
>   I have two new servers coming in (identical) and I want to have the 
> two of them share the loads of mail/web/pgsql/bind duties. I've got a 
> dedicated firewall that SNAT's them already, and was hoping I could use 
> it to do my load balancing/failover.
> 
>   As I understand it, this is feasible as the firewall (or whatever 
> it's called in this role) keeps an eye on the two servers and while both 
> are up it splits incoming traffic between them. If/when one fails, all 
> traffic gets routed to the good server.
> 
>   So if there are any pointers, specially Debian-based how-tos, I would 
> be very happy! I'll be running either Debian Etch or Ubuntu Feisty 
> (leaning to the former, but worried about Debian-proper's future).

Well running primary/secondary bind is trivial.

Running identical web servers is not too hard, although you have to
update both whenever you make page changes.  Doing round robin
connection distribution with a load balancer at the firewall isn't too
hard, and there are probably better load balancers that take system load
of each web server into account as well as checking that the web server
is working and such.

Running two mail servers is harder.  When a user reads or deletes a
message, how do you ensure the update occours on both?  Redundant mail
reception isn't too hard since you just have one be the main mail server
and the other a backup MX which simply holds and forwards mail to the
primary when it comes back up (most of the time the primary receives the
mail directly).

Redundant pgsql is VERY hard.  If all you want is static database data
then it wouldn't be a big deal and you could treat it like the web
server.  Of course this is almost never what anyone wants.  Last I
checked postgresql did not have live replication support, which is
basicly what is needed.  This is one of those places where oracle and
db2 have a reason for existing.  I believe mysql has a replicating
server backend, although apparently that backend is much slower and has
less features than the regular one, so it is a major tradeoff there.
People are working on replication support for postgresql, but they have
been working on it for years and I don't think it is working yet.  It is
a very complicated thing to implement.  Keeping in sync when two servers
are both up and already in sync is no big deal.  Getting back in sync if
one has been down is very hard, especially while data is still changing
on the live server.

--
Len Sorensen
--
The Toronto Linux Users Group.      Meetings: http://gtalug.org/
TLUG requests: Linux topics, No HTML, wrap text below 80 columns
How to UNSUBSCRIBE: http://gtalug.org/wiki/Mailing_lists





More information about the Legacy mailing list