Cyrus IMAP and MySQL mailboxes (Building load-balancing cluster)

Janne Peltonen janne.peltonen at helsinki.fi
Mon Nov 27 03:27:30 EST 2006


On Sat, Nov 25, 2006 at 11:56:20PM +0300, Igor Zhbanov wrote:
> So, what is the best way to build load-balancing Cyrus IMAP cluster?
> Nginx, perdition, Cyrus IMAP Aggregator, Cyrus IMAP murder, Cyrus IMAP
> replication?

You forgot the simplest one: Cyrus IMAP on a cluster with no
replication, no murder, no nothing, but on a (really working) clustered
FS and no BDB. Oh yeah, you still have to have some way to make the
system appear to be a single system to the users. I'm probably going to
use just a simple round-robin DNS, but you could use an LVS frontend or
something similar, if you want real load-balancing.

It really all depends upon what you need. I prefer the aforementioned
solution because I think it is very simple at the application level (if
not the FS level).

> And can you tell me what problems to high-availability can happen when
> using Cyrus IMAP replication? In what situations it is unreliable? And
> is it possible to avoid it?

According to the Cambridge deployment doc, you can possibly lose a
couple of messages that arrive to the master that fails before the
messages get replicated. The replication is asynchronous. And the
problem can be avoided e.g. by setting the sendmail (or equiv.) to store
the delivered messages for a while (on another machine than the master).
So if the master fails, the queue can be replayed... see

 http://www-uxsup.csx.cam.ac.uk/~dpc22/cyrus/replication.html


--Janne Peltonen


More information about the Info-cyrus mailing list