Doing load balancing with mailman
So I didn't hear anything back on mailman-users, would anyone here be more inspired with those questions?
----- Forwarded message from Marc MERLIN firstname.lastname@example.org -----
[I didn't Cc mailman-developers, but if I should ask programing specific questions there, let me know]
While a correctly tuned mailman+exim config should be able to handle sourceforge's lists just fine, I've been encouraged to look into a failover/load balancing solution :-)
So, I've seen two options so far:
Option #1: Lists are physically split between let's say 2 mail servers.
All mail goes to email@example.com, which is MXed the two mail servers. I know how to configure exim so that it rewrites the envelope To to resend the mail to the other list server if listname is not local to that mail server. So far so good. The problem, is that for web access, I then have to show URLs with http://lists1.sourceforge.net/lists/listinfo/listname and http://lists2.sourceforge.net/lists/listinfo/listname
Ok, that can be fixed with some clever apache rewriting/proxying, but it'd be a bit iffy.
As far as failover is concerned, I can rsync the list configs on a periodic basis and with some symlink magic, I could have one mail server mostly take over the other mail server's lists if it were to disappear.
This requires mail header rewriting, http URL rewriting, plus other magic, and it's not very "automatic".
Option #2: Hold on, this is scary :-)
/var/local/mailman is NFS mounted on the mail servers. /var/local/mailman/qfiles is a symlink to local disk qrunner is modified to set a lockfile in qfiles and not data (it should hopefully be a simple patch) cron jobs are run on only one mail server, with the exception of qrunner. both mail servers offer web access (same URL with load balancing) to the same lists.
Did I forget anything? Is there any reason why this wouldn't work? (mailman's locking looks NFS safe to me, but I don't know if having locks created for possibl the same lists in the mailman/locks directory, by two different machines would be a problem for some reason that would escape me right now).
Is there anything else besides qrunner that I'd need to patch?