[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