[Dovecot] So, what about clustering and load balancing?

Stefan Foerster cite+dovecot-users at incertum.net
Sat Feb 13 17:48:07 EET 2010

Hello world,

so, with beta2 of Dovecot 2.0 being available, what is the preferred
way to achieve load balancing and fault tolerance? As far as I can see
it, there are basically two options:

1) Use a HA shared storage, export either a cluster filesystem or NFS,
and have your dovecot servers mount that file system. Load balance
these servers (Cisco ACE, ldirectord, ...) and there you go. Overall
performance is limited by the speed of the shared storage and may
further decrease due to locking issues, imperformant cluster
filesystems and so on.

2) Set up every dovecot server with local storage and trigger a dsync
after each change (pyinotfiy, incron, parse LMTP delivery logs, ...).
Load balance these servers as before. Depending on the number of syncs
that have to be done, mailbox replication may lag behind. The need to
constantly spawn dsync processes may further decrease performance if
you don't do it right (stickiness of established connections,
replicating at most every xyz seconds).

What are your opinions on that matter?


P.S: I've set up option two in a test setup, though the incron/inotify
part is still giving me a headache.

More information about the dovecot mailing list