So the question is how to get a massive amount of users on to an email system that does not break.
The problems were
- they already have existing data that they need to keep
- they were on Qmail Toaster
- must have a web front end (for some users not all)
So in keeping with those requirements we decided to try to farm qmail-toaster.
The idea was to use a Foundry load balancer for the incoming mail connections that would delegate them out to the independent email servers.
The email servers themselves would have a shared back end mounted to the maildir, in this case /home/vpopmail and this would be done via a NetApp. Sadly the iSCSI implementation for Linux sucks so the only option would be NFS, on a private gigE network.
Also since qmail-toaster requires MySQL, the idea is to break that service as well. This would also make sure that when someone logs into any of the servers to get their email that they would be authenticated correctly.
By breaking some of the base services off to other servers it would make it so that everything would have shared resources across the farm. By breaking off the web services, we would be able to have two separate types of web mail, a new slicker interface, RoundCube, or the current qmail-toaster web interface. This makes sense when you take the thought that some people fear change and would complain if you changed their interface without warning.
To the left is the mockup that was done for this layout. It should help with some of the basic information. The full image is here
I would like to state that you are on your own for trying to implement this. I do not claim anything here will work, it is just a conceptual mock-up to get a basic idea. We might implement this and we might not. It could fail miserably because of the spam filtering/anti-virus. There are many details to this that have not been touched on, so if you try it and it doesn't work do not blame me.
And the video