[Dovecot] Proxy IMAP/POP/ManageSieve/SMTP in a large cluster enviroment

Aliet Santiesteban Sifontes alietsantiesteban at gmail.com
Mon Jul 19 00:22:30 EEST 2010


Hi to all in the list, we are trying to do some tests lab for a large scale
mail system having this requirements:
- Scale to maybe 1million users(Only for testing).
- Server side filters.
- User quotas.
- High concurrency.
- High performance and High Availability.

We plan to test this using RHEL5 and maybe RHEL6.

As a storage we are going to use an HP EVA 8400 FC(8 GB/s)

We defined this functional roles.

1- Outgoing SMTP gateway servers.

 - Load balanced with Piranha LVS using Direct Routing.
 - ( n servers)RHEL5/6 using Postfix Latest version Amavisd-new Clamav
Spamassasin maybe some other filters.

2- Incomming SMTP gateway servers.

 - Load balanced with Piranha LVS using Direct Routing.
 - RHEL5/6 using Postfix Latest version Amavisd-new Clamav Spamassasin( n
servers) maybe some other filters.

3- Webmail Cluster farm.

 - Load balanced with Piranha LVS using Direct Routing.
 - ( n servers)RHEL5/6 using RHCS Active/Active. Apache2 PHP5 Horde.

4- Openldap load balanced openldap cluster.
 - Load balanced with Piranha LVS using Direct Routing.
 - ( n servers)RHEL5/6 using Openldap.

5- IMAP/POP/ManageSieve/SMTP Proxy or Director.
 - Load balanced with Piranha LVS using Direct Routing.
 - ( n servers)RHEL5/6 using Dovecot - Postfix(Director or Proxy).

6- Mail backend.
 - ( n servers)RHEL5/6 using Dovecot.

Now for functional role 6 "Mail Backend" we have some dilemmas.
   - Recommended scalable filesystem to use for such scenario(Clustered or
not).
     -GFS2?? We have very bad experiences with GFS1 and maildir, GFS2
doesn't seems to improve this also. Using  some techniques for session
afinity with a backend server seems to help with the locking problems of GFS
and the cache. Using GFS many IMAP SMTP servers can in parallel write or
read to user mailboxes, if GFS can perform well we prefer this, will have to
proxy o use director for the cache problem.
     - Ext4, Ext3 well tested with many setups but only one backend server
can access one ext4 lun, so we have to proxy a user always to a ip backend
address or VIP in a case of failure cluster software has to move the server
to another node, the cluster service is formed by a IP Address and one or
many Luns wich moves from node to node in a case of failure.

  - Recommended scalable method  for partition divition.
     - Directory Hashing(How it actually works the theory behind this), we
see the wiki but we need to understand the theory to balance the directory
structure.
     - Using some criteria ex Lun1(a-h users), Lun2(i-m users)....

 - Proxy or Director is a must for a Clustered Filsystem or for the solution
of a user belonging to one server.
     - In case we use a Proxy with dovecot we know we can use it with
IMAP/POP but are not sure for ManageSieve and more important for SMTP. The
question is, how can we proxy for the same user IMAP/POP/ManageSieve and
SMTP delivery to mailbox at the same time, can the incoming mail gateways
send the email to the proxy servers and dovecot proxy the request for smtp
or lmtp appply the same proxy criteria that uses for the protocols IMAP and
POP and send the email to the correct backend server and this server do the
final delivery?? I mean proxy all the protocols for a user
IMAP/POP/SMTP-LMTP?? Any example...

Right now we have doubts on this stuff, we are really going to appreciate
any help or advice on this...
best regards


More information about the dovecot mailing list