On Mon, 13 Dec 2004, Michael Loftis wrote:
There are a number of different lockfiles that cyrus uses during it's lifecycle. Though one thing you need to know is that it is not designed to run like you're attempting to run it. Each cyrus instance is meant to be standalone, and running them all from a shared disk could very likely cause mailbox corruption, as well as skiplist corruption for the seen/subs entries and such. The only part of cyrus that may be multi-node from same storage safe is the BerkeleyDB stuff used for the mailboxes and deliver DBs.
The cluster filesystem honors POSIX locking semantics across all nodes in the cluster.
Take a look at MURDER, that's what you'll want if you want to cluster Cyrus. MURDER+heartbeat with a shared storage medium provides for failover (heartbeat is a separate, generic failover package).
We chose a clustered environment over murder because we wanted scalability and redundancy, not just scalability.
You're using the Cyrus code from CVS (3.0 branch?), right? Based on what I've picked up in the past, you'll need that for such a clustered environment. I know Ken had done some work on such a layout, but I don't know what the present state is. (I think in that situation there were some issues with Sun's QFS, but not sure.)
Amos
--- Cyrus Home Page: http://asg.web.cmu.edu/cyrus Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html