[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[Linux-cluster] IMAP server clustering ...


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.

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.

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]