Does the Cyrus Murder support High Availability configurations?

The Cyrus Murder clustering solution drastically increases system-wide reliability as compared to a traditional standalone IMAP server. However, this configuration is not a true High Availability/Redundancy solution (nor is such a beast trivial to implement given the constraints on traditional Email systems).

The frontends of the CyrusMurder are, in every sense, 100% redundant. No server-specific data is maintained on them, and one is as good as any other from the point of view of a user.

The mupdate server is indeed a single point of failure, however a failure at this point only prohibits message delivery (via the LMTP proxies that are querying it for up-to-date mailbox data) and certain mailbox operations (create, delete, setacl, and so on). Mail can still be accessed by all users of the system, and incoming mail will receive temporary failures, so the sending MTA should continue to queue the mail.

The failure of a backend will result in a partial system wide failure – the mailboxes that were stored on that backend will no longer be available for use by any users. Delivery of new mail will again be tempfailed, and queued by the sending MTA.

Some people have suggested shared storage and the use of hot spare backends to combat this solution. The Cyrus authors do not generally recommend the use of shared storage in the Cyrus environment. However people have reported success in various configurations. The shared filesystem still needs to support file locking, and it is highly recommended that it have an efficient mmap implementation.