--On Tuesday, March 15, 2005 11:13 AM -0600 Micah Anderson <micah@riseup.net> wrote:
Cyrus looks pretty good, eh? My personal opinion is that it should be avoided at all costs. Cyrus is possibly a good choice for an installation with hundreds of thousands of users and several full time staff. We were using it for around 10k users, so it might work for you with 400k, but you are going to need Cyrus gardners. We have found it to be extremely cranky and in need of constant babysitting. The various databases are often getting corrupted, causing mysterious or non-existant errors which only become clear when using strace to walk through the assembly calls. Quota information often just disappears or gets corrupted. Because of cronic problems and bugs (like runaway or halted processes which prevented any mail from getting delivered) we had to turn off the 'features' of squat indexes and duplicate delivery prevention. The program that is supposed to "repair" your broken stuff is actually a no-op and nobody knows why, nor does anyone appear interested in fixing it. We have used three different 'stable' versions of cyrus, over a couple years and all have exibited this kind of cranky behavior.
I'd be very interested in exactly which DB backend you're using. In 1.x series I had severe problems with BDB backends. However we're using in production a system with over 10k mailboxes and in the neighborhood of a million emails/day. The only issue we've run into is an occasional deadlock with POP3 that requires rebooting. And that happens once every few months, if that. This is with 2.1.17.
I'm sorry you've had such bad experiences with Cyrus. I agree that some of the tools *still* need work, but it's been very stable for us.
Most of our problems go back to incoherent clients, mostly Outlook, but occasionally Thunderbird -- turn on it's junk mail filtering, file to say 'Junk' then delete some into your Trash folder, browse your trash folder, and watch your spam replicate until Tbird cant' handle the 140k+ messages in the box...
Courier IMAP is more simple than Cyrus and does not have any of the fancy features listed above. However, it is more stable and includes all the important things you need in an IMAP server. Courier has been as trouble free for us as Cyrus was trouble prone. It has run rock solid for several years without hardly a single hiccup, where as Cyrus seemed to break every week. Courier has some features which Cyrus doesn't have: * store files in maildir (cyrus mail storage format may be 'superior' but it is only understood by cyrus and vulnerable to many points of failure). * read user information from ldap (like where to store mail, what user id to store mail as, etc). * store mail on a file server over a network (a feature of maildir). It is really nice to use maildirs because it makes it very easy for other applications to interact with the mail storage (which is the entire point of maildirs). For example, maildir makes backing up and restoring ranges of email very easy.
There is one serious problem. He'll need multiple servers since the unix UID limit hits at 65535. So you can only get about 64k users created per box, regardless of anything else. There is no such limitation for cyrus since it makes no use of Unix UIDs except the one for the cyrus user. Using pam_ldap or SASL LDAP plugin you can then have basically unlimited users per server without a problem, have a replicated LDAP system using openLDAP.
I've yet to find a good way to backup and restore cyrus mail...basically it's a pain to do. Thankfully we've only ever very rarely had a need to restore mail.
With courier I dont' know if it has any ability like the MURDER system in Cyrus that allows you to create a scaleable (not redundant) cluster and have the system automatically route mail internally to the correct mail store system. You can do the same with LDAP and postfix though with Cyrus. and say something like perdition.
The mail install you're talking about sounds like it's going to be pretty huge. Even say receiving 1 mail/mailbox/day that's a lot of mail. More likely you'll be getting closer to an average of 1 mail/mailbox/minute. That's a LOT of mail. You could easily need half a dozen very beefy boxes to handle that much mail depending on how much spam/virus/etc features you want.