Dear All,
My system has about 30,000 accounts and these accounts are created as unix system users. Each account has its own entry in /etc/passwd with different UID and home directory.
We plan to deploy an Layer 4 switch as a load balancer. Proposed architecure is as the following:
---- internet ---- Layer 4 switch ---- mail server1 ---- NFS storage | | |--- mail server2 -----|
Both mail servers will share the same storage which contains users' home with Maildir inside. Dovecot will be installed on the mail servers serving pop3 and imap4 protocols.
Since the layer 4 switch will direct connection to backend mail server in random(or some of its algorithm), users can not guarantee which mail server to use. My first question is which kind of INDEX settings should I apply?
- INDEX=MEMORY
- INDEX=/nfs/%u
- INDEX=/var/spool/%u
Will INDEX stored on disk outperform INDEX stored in memory? If INDEX stored on NFS storage, we can be sure the consistency of INDEX file, but what about the performance and locking problem? If INDEX stored on local disk, since users may connect to different mail servers every time. Will that impose the problem of inconsistency? What kind of syndrome will happen if the INDEX became inconsistent to real maildir content?
My second question is about quota. We use maildir as mail storage format. Our users were divided into 3-4 groups, each group of users with different quota size ranging from 100MB - 1G. To my best knowledge, dovecot's quota setting in config file supports only "one global configuration". (We are not using db, we use only /etc/passwd). dovecot.conf quota_rule = *:storage=10MB Since dovecot supports both fs and maildir++ quota, I would like to ask for your suggestion:
- Should I use system quota instead? How about the comparision of performance? Is there any drawback/limitation using system quota?
- Is there any settings of dovecot that could fullfil my situation?
- My thought is to modify dovecot.conf, comment out quota_rule = *:storage=10MB and leave only the quota = maildir in the plugin { block. According to my experiment, dovecot will read the maildirsize file under user's home. Then I have to set the maildirsize file for every user individually! It seems to be a little crappy but works.
Looking for your valuable suggestions! Thanks very much.
Tim Chen