Re: Questions on a redundant mail system
On Mon, 20 Dec 1999, Erik Byström wrote:
> We're about to re-design our mail system and are looking at various
> hardware and software options for failover, redundancy and load
> balancing. The solution I'd like to present consist of two or more
> frontend servers handling all incoming requests, then forwarding them
> to a number of backend servers depending on load.
>
> I have a few questions regarding the design which I'd like to have
> views on as some of you people around here have lots more experience
> on this.
Have you read http://www.earthlink.net/about/papers/mailarch.html ?
> 1) Frontend: Which is better: two frontend servers, each handling both
> POP and SMTP connections together with DNS round-robin or separate
> machines for POP and SMTP? They would handle incoming SMTP and POP
> requests for about 15000-20000 people plus a lot of mailing from
> websites with forms and such. We're currently handling approx. 150 000
> POP requests each day and somewhere around 220 000 SMTP transfers.
See my answer to #2. I break down the services like this:
1) Fallback (store and forward) incoming server(s)
2) Incoming server(s)
3) Mail spool filer(s)
4) POP server(s)
5) Outgoing server(s)
6) Dedicated queueing box(es) for outbound mail not yet deliverable
#1, #5, and #6 can be quite dumb. #2 needs to know about users, but
doesn't need much disk. #3 is a major disk I/O challenge. #4 needs to
know about your users, and needs enough disk space to handle the needs of
your POP service.
> 2) Backend: Should one let the backend servers handle both POP/SMTP on
> the same machines, or have separate machines for each service?
> Pros/cons?
Separate outgoing mail (SMTP) from everything else - all you need for that
is dumb (ok, good DNS connectivity, enough disk to cache queued messages,
suitable RAM and CPU for what is needed) boxes. Why spend too much money?
They don't need to be part of the back end whatsoever.
> 3) Backend: For redundancy purpose I want all servers to share the
> same storage area, so if one backend server server goes down the
> others will still be able to handle delivery to/from all mailboxes.
> How do we solve this best? Some kind of NFS mounts, a hardware RAID
> array, AFS? I think this is the most important question.
Single point of failure at a major point. Move the SPOF to a database
(not as busy - just username/password/mailbox queries) and distribute your
mailboxes among several filers (or at least plan to be able to, so that
you can grow). If you're good enough with databases (which I am NOT), you
could replicate the database in real time or near-real time, and eliminate
the SPOF.
Of course, all of this is IMHO...
Pete
--
Peter J. Templin, Jr., CCNA
Systems and Networks Administrator
On-Line Internet Services - URDirect.net
A division of Global On-Line Computers
2414 Babcock Rd. Suite 106 templin@urdirect.net
San Antonio, TX 78229 (210)692-9911
Reply to: