Daryl Tester schrieb am Tue, Jan 08, 2002 at 05:58:21PM +1030:
* Mark Newton wrote:
* 
* > In any case, what I'm trying to end up with is a system built around a
* > large filestore (suitably RAIDed for reliability) with multiple front-end
* > systems (for scalability).
* >
* > I've noticed in the Cyrus documentation that NFS is not an option for
* > doing this kind of thing, so I'm left wondering if there's some other way
* > to do it.
* 
* Coupla thing re: Cyrus.
* 
* One method for scaling under Cyrus is to use an special front end to IMAP,
* of which a couple leap to mind - The Murder IMAP Aggregator at
* http://asg.web.cmu.edu/cyrus/ag.html, or Perdition, the mail retrieval
* proxy at http://www.vergenet.net/linux/perdition/ .  Not that I've (had to)
* use either of these products, just that I'm aware of them.

I was recently involved building a system that is supposed to finally 
scale up to 1.5M users.

At the front, mails are accepted by machines running postfix which 
relay them via LMTP to mailstore machines running cyrus if they are 
bound to a local user.

They also proxy incoming IMAP/POP requests, using perdition.  As user 
database, OpenLDAP-2.x is applied.  Load balancing for incoming SMTP/
IMAP/POP connections is done by an F5 (layer-4-switch).

The mailstore systems in the back are cyrus imapd-2.0.16.  As perdition 
proxies the incoming IMAP/POP requests by asking the LDAP for the 
appropriate mailstore, no distributed/shared FS is needed.  We avoided 
NFS for several reasons:

 a. It is not fast enough
 b. If a mailstore system fails, you may experience mount hangs
 c. Data corruption on the central datastore may kill the entire
    system

When using separate mailstore systems that contain individual mail-
box spaces (say: machine 1 has users beginning with a-c, machine 2
does d-f etc..), it will be fast and efficient - and when such a
separate mailstore has problems, it won't affect users who have
their space on the other mailstore systems.

We also built HA for each mailstore, such that it are in fact two
systems clustered by the kimberlite software mounting a shared 
RAID in a failover situation.  See 

 http://oss.missioncriticallinux.com/projects/kimberlite/

for details.

As hardware platform we used stock 2x2 Compaq PCs (2G RAM, 2xCPU),
OS: Linux-2.4.x, FS: reiser.  We needed a lot of tuning and perl pro-
gramming (to provide a reliable administration interface for the 
cyrus & LDAP), but it is now running very stable and *very* fast.  

(BTW: the hardware decision above gives hints that is also *very* 
 inexpensive in comparison with commercial 1M user mailsystems 
 without lacking reliability)


Regards,

- Birger

Reply via email to