[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