Hi,
and some other Dovecot mailing list threads but I am not sure how many users such a setup will handle. I have a concern about the I/O performance of NFS in the suggested architecture above. One possible option available to us is to split up the mailboxes over multiple clusters with subsets of domains. Is there anyone out there currently running this many users on a Dovecot based mail cluster? Some suggestions or advice on the best way to go would be greatly appreciated.
we only have running a setup with 35k Users (2000 imap and 300 pop3 sessions simultaneous). But we split all users and domains accross 9 virtual containers. Until now all containers are running on 1 bare metal machine, because the server is fast enough and quite new.
In front of our backend servers we use two imap/pop3 proxies which gets their static routing informations for imap/pop3/smtp/lmtp from dedicated mysql-databases (master-master mode, also multiple slaves are possible). Same for smtp relay.
This setup allows us to scale out as wide we need. In theory it's possible to use for each account a separate storage backend scaled out on multiple servers. Connections beetween proxies and backends are made by IPv6 on layer2. No routers between. So we have no problems with tight ipv4 space :-)
Some info on storage backends:
- Mailbox format is mdbox with zlib plugin. Each file hax a max of 10MB.
- Dovecot internal caches for authentication etc. doing a good job. Without the caches the database becomes busy.
- Central administration functions are implemented on our internal admin frontend to for example clear caches, change account password or get/change user quota.
- Mailindexes are stored on RAID 1 SSD SLC disks (about 20GB now)
- Maildata is stored on RAID 10 SATA 7.2k rpm disks (10 disks)
- Incomming Mailqueue and OS for the containers on RAID 1 SAS disks (10k rpm)
- all Backends are in HA with a passive machine and DRBD with 10GBIT Cross Links
IMAP/POP3/SMTP Proxies are running on 2 dedicated mid range servers (HA):
- IMAP/POP3 Proxies are clustered and load balanced with the IPTable ClusterIP Module (poor man's load balancer)
- Same on SMTP relay server for outgoing email.
- MX Servers for incomming mail are load balanced by DNS priority as usual.
Each setup has his advantages and disadvantages. For example no idea how can we use shared folders within one domain if the accounts are spread out on multiple backends. But at the moment we don't need that. For our needs this setup works very good.
Also thanks to Timo for his great work on dovecot.
Regards Urban