[Linux-cluster] IMAP server clustering ...

Michael Gale michael.gale at utilitran.com
Thu Oct 28 19:14:56 UTC 2004


Hello,

	I have being reading and posting to this mailing list and the postfix 
mailing list. Plus reading all the documentation I can find on clustered 
mail stores and email solutions.

The following are some of the conclusions I have come to:

1. IMAP servers are I/O bound not CPU bound and require at least 1MB of 
main memory per users IMAP connection.

2. GFS does not protect against data corruption as it is the 
applications responsibility to making sure that data written to a file 
is complete.

3. Maildir format does not require file locking and works great over NFS 
  except for the speed issue of course.

So if some one was planing to build a large e-mail solution for lets say 
  30,000 plus users here are a few options.

1. Have all mail sent to a share storage device (SAN,NAS, ...). Then 
have multiple IMAP / POP3 servers access the same shared device via FC 
or NFS.

If you use Courier IMAP every body can access the same directories / 
partitions at the same time because file locking is not an issue.
"IMAP_USELOCKS

     This setting in /usr/lib/courier/etc/imapd must be enabled. This 
setting uses dot-lock files to synchronize updates to folder indexes 
between multiple IMAP clients that have the same folder opened.

     This setting is safe to use with NFS, as it does not use actual 
file locking calls, and does not require the services of the problematic 
NFS lock"

2. You could send each message to a specific server which holds some 
users accounts. Depending on which server you use will depend on where 
the mail goes.

	This option is great as it is easily done and cheaper, the problem we 
found was space, more servers are required.


Some things to consider for performance would be:

1. Partitioning mail stores.
	- for option 1 - this would be beneficial because you could more mail 
stores to other storage devices when / if space became an issue plus you 
would have fewer servers accessing a single store.
	- for option 2 - required to deliver mail to a particular server.


2. Directory hashing
	- for option 1/2 - if you broke the directory structure leading up to 
the user name in to hash for example 
"/mailstore1/d/o/m/a/i/n/c/o/m/u/s/e/r/n/a/m/e/

	would limit the amount of directories and one directory would have, 
increasing speed and performance.


If any one has any other info or questions please let me know.


-- 
Michael Gale
Lan Administrator
Utilitran Corp.

The best part is when the people who know the least are the ones ranting 
and raving.




More information about the Linux-cluster mailing list