[Dovecot] High Availability strategies
Timo Sirainen
tss at iki.fi
Sat Jul 25 02:58:44 EEST 2009
On Jul 24, 2009, at 5:00 AM, Joseba Torre wrote:
> we have a medium setup (8000 pop and imap users using almost every
> available client, 800GB of stored mails using maildir on a Celerra NFS
> server, with index files on local disks, and procmail for local
> delivery), being served by a Dell PowerEdge 2850 (2GB RAM and dual P4
> Xeon 3,2GHz).
>
> Our current not-so-high availability setup is based on a similar
> server with the same setup and a easy but manual process to switch
> from one server to another.
So you currenly have a single server serving all imap/pop3 users?
> - The recommended setup, with each user being sent always to the same
> server, is not possible because our load balancers (Cisco Catalyst
> 6000) can't do that.
>
> - We could put both servers behind the load balancer, and keep local
> index files on each server. Usually the same ip we'll be redirected to
> the same server, so few problems will arise. When a user is sent to a
> new server, index will be rebuilt so performance will be bad but we
> should not expect other problems, right?
If a single server can handle all users fine, I wouldn't try anything
special here. Just have them work as a master/slave and install some
kind of a heartbeat to switch between them.
> - We could also put the index files on a nfs share. No problems, but
> pretty bad performance.
If there's only a single server accessing the mails, you can use
mail_nfs_*=no and the performance shouldn't be that bad.
> - We could also get more ram for the servers and keep indices in
> memory.
I'd say local disk is much better.
> Using deliver instead of procmail could improve performance?
http://wiki.dovecot.org/LDA/Indexing
> - We've also thought about some more or less weird setups, like
> setting up a GFS filesystem for the index files, or setting up a proxy
> on every server which redirect users to their fixed server, but they
> seem too complex for few advantages.
Assuming still a master/slave setup, you could use DRBD to replicate
indexes between local disks.
More information about the dovecot
mailing list