[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [Linux-cluster] High availability mail server

On 27/10/2009 00:25, Rick Stevens wrote:
Ray Burkholder wrote:
High avail. Mail? That's what MX records are for. Performance, would
be a side effect of multiple MXs. Having it "clustered" wouldn't make
mail deliver any quicker. Why make something so simple into something

Mail delivery and MX records are easy. But once mail is received, you
to get it to user's mail boxes, and users have to gain access to the
repository. The repository should be 'highly available' in some fashion:
partitioned storage units, redundant storage, replicated storage, backup
storage, or whatever. I believe that is the hard bit: making the
repository 'highly available'.

How do people do it?

It rather depends on which services you're going to offer. An NFS
volume as a mailstore will work, but doesn't play nicely with multiple
POP3 servers accessing it, and it's slow. Lots of POP servers rewrite
the entire mailbox when a user logs in (copy it to a working file, futz
with that, then rewrite the original when they log out). With IMAP it's
OK but still not ideal.

POP3 can be Maildir backed, just like IMAP, so the performance would be similar. Ironically, if you're using mbox format rather than maildir, the performance may well be better on GFS with concurrent access due to fewer files, up to the point where the bandwidth becomes dominant to latency in the performance equation.

The primary problem is the lack of file locking. GFS can address this,
but only if the servers recognize locks on the file system (many POP
servers have to be recompiled to use this, qpopper being one).

Mail servers like Dovecot (both POP3 and IMAP) use Maildir, and this was originally specifically designed to play nice with NFS and locking.

If the only locking they do is purely in-kernel and won't deal with a
lock manager or filesystem-level locks, then multiple machines will
collide on the mailstore and there really isn't any way around it.

Maildir uses flock which plays nice with NFS provided you have locking enabled.

My recommendation...get and install Cyrus IMAP and POP services, use
GFS and a good lock manager (e.g. DLM). That should work.

You don't get a choice of lock manager on GFS any more. DLM has been the only production option for a long time. The problem is that heavy use (lots of concurrent users) with Maildir on GFS will perform rather poorly unless you logically partition your users in some way (e.g. have a custom proxy in front of it that does load balancing between server nodes based on the hash of the username). This would ensure that the locks can be sanely cached on the server nodes rather than be bounced around all the time.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]