Need advice on building a Cyrus IMAP cluster
Dave McMurtrie
dave64 at andrew.cmu.edu
Mon Aug 3 20:21:19 EDT 2009
Michael Sims wrote:
...snipped...
> 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?
Yes. It has been done successfully.
> (2) If so, what recommendations do people have for the file system? GFS?
> OCFS2? something else?
When I worked at the University of Pittsburgh, we set up a 4-node,
active/active Cyrus IMAP cluster. It ran on Sun v440 servers running
Solaris 8 using Veritas Cluster Filesystem. If you need additional
details about that setup, pop me an e-mail. It's been over 4 years
since I worked there, so I may be sketchy on details at this point.
Pitt has since replaced their active/active Veritas cluster with an
active/passive Sun cluster.
I believe the Computer Science department here at Carnegie Mellon is in
the midst of setting up an active/active Cyrus IMAP cluster. Since I
don't work in that department, I don't have much in the way of details.
I'm not sure whether Ray follows info-cyrus or not, but he can chime in.
Though I have no experience with it, I seem to recall that someone
attempted to use GFS with an active/active Cyrus cluster and it was a
disaster. It was mentioned either on info-cyrus or in the Cyrus wiki.
If google doesn't help you find this, I can try to remember where I read it.
> (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?
As of Cyrus 2.3, the code supports the notion of application-level
replication. It's near real-time replication of all the application
data, but one copy of the data isn't live. This is more of an
active/passive solution, since you have to do something to make cyrus
aware of the 2nd copy of the data if you suffer some type of failure of
the first copy.
> (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.
We're doing pretty much what you describe. Each of our Cyrus mail
backend servers acts as a replica for one of the other backend servers,
so we always have 2 complete copies of our data. Unfortunately, in our
case the failover would have to be accomplished completely manually and
wouldn't be fast. It would, however, be much faster than restoring from
backup tape in a disaster. University of Michigan is using replication
and rsync such that they have 3 copies of their data spread across
separate data centers. I'm told they can also fail over quite easily
when necessary. If you're interested in doing something like this, you
may get a few pointers from umich.
Thanks,
Dave
--
Dave McMurtrie, SPE
Email Systems Team Leader
Carnegie Mellon University,
Computing Services
More information about the Info-cyrus
mailing list