Need advice on building a Cyrus IMAP cluster

Michael Sims michaels at crye-leike.com
Mon Aug 3 18:46:49 EDT 2009


Hi,

My company has been a happy user of Cyrus IMAP for over 6 years now.  But
our existing email infrastructure is starting to age a bit and I've been
assigned the task of upgrading it.  Although we only have about 5,000 or so
accounts, we have experienced some performance issues over the years (for
various reasons that aren't the fault of Cyrus), as well as some reliability
issues with some of our hardware.  For that reason my boss wants our new
email system to consist of a cluster of servers which can hopefully provide
both high availability and load balancing.

Since clustering is a new challenge for me as a sysadmin, I'm coming to the
list for help.  I've spent the last few days researching the list archives
for various approaches.  I've hesitated to start yet another thread on
clustering, as this is a topic that I know has been well covered in the
past, but it seems to me that this area evolves rapidly enough that some
good might come from bringing it up again.

It seems that creating an active/passive cluster for high availability is a
relatively straightforward task.  But what we'd really like to do is create
an active/active cluster using a shared file system such as GFS or OCFS2 in
conjunction with our EMC SAN.  The main reason for this is ease of
maintenance.  Theoretically the cluster nodes should be mostly identical,
which would make it easy to take a node down for maintenance with minimal to
no disruption in service.  And it seems to use the available hardware in a
more efficient manner than that of a 2-node active/passive cluster where one
node sits idle waiting for the other to fail.

I've read many threads in the archives where people have attempted to create
active/active clusters in testing, but have seen very few reports of such a
setup being put into production.  But then again it seems it's been about a
year since it was seriously discussed here.

So, here are my questions for anyone who can help me:

(1) Is the goal of implementing an active/active Cyrus cluster using shared
storage and a shared file system a realistic one?
(2) If so, what recommendations do people have for the file system?  GFS?
OCFS2? something else?
(3) I've seen the "replicated" option for "mupdate_config" mentioned
multiple times on the list, and reading the documentation gives me the
impression that it applies to what I want to do, but I'm not 100% sure on
that.  Can anyone confirm or deny this?
(4) Assuming that pursuing the active/active approach is a bad idea, does
anyone have alternate suggestions for the most efficient way to create a
cluster that can provide BOTH high availability and load balancing?  I've
seen references to some setups where there are two nodes, with each being a
master node for half of the mailboxes and a slave node for the other half,
and able to take over service for all the mailboxes in the case of failure
of the other node.  But I can't seem to locate where I saw this setup
described.  If anyone has any pointers to that, or alternate suggestions,
I'd appreciate it.

Lastly, is there anyone out there doing consulting for this sort of work
that someone could recommend?

Thanks for reading!

________________________________________
Michael Sims
Manager - Application Development
Crye-Leike Information Technology
________________________________________



More information about the Info-cyrus mailing list