--On Monday, December 13, 2004 10:38 -0500 David G Mcmurtrie <[EMAIL PROTECTED]> wrote:
We've installed cyrus imapd 2.1.17 on a 4-node Veritas cluster and we're now testing it. Our /var/imap filesystem is on a clustered filesystem.
We noticed that all of the lmtpd processes are just sitting in a blocking fcntl() call waiting for a lock on /var/imap/socket/lmtp.lock. When we run this in a clustered environment, each lmtpd is consuming CPU resources while blocking. In a non-clustered ufs environment they do not.
Is there any reason that the lmtpd processes need to be serialized across different nodes in a cluster? If not, we'll just write these lock files to local ufs space on each cluster node.
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.
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).
While I'm on the subject, what is the purpose of /var/imap/socket/imap.lock?
Thanks,
--- 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