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
- 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.