So, there's a few ways we can go about this....
* main dc server http on a vm (minus mail)
* dcwing member server on a vm (minus mail)
* vm for main dc email
* vm for member server email
* vm for newsletter sending
* (optional - vm for sql )
* vm for commercial project hosting
The main reasoning behind putting the newsletter on it's own vm (and more importantly IP) is so that should we ever unjustly be considered spammers due to the high volume mail of the newsletter and end up on some blacklist, the mail forum registration mails won't stop working (ie end up in people's junk mailboxes). This vm wouldn't have to run all the time, only during newsletter sending time.
The reasoning for seperating SQL on a separate server is security and scalability. A compromised sql server won't touch the main server's files. (Same reason why email would be separate), it also allows us to tune the OS setup towards the specific task. (eg, mail would have a larger /var partition for the mail queue, and perhaps a filesystem that performs better with lots of smaller files)
Currently we already have MySQL and Apache isolated on the member server using BSD jails. It works but I feel there is some performance hit due to the need for NAT in pf. Having separate vm's would be a much cleaner solution.
There's many other ways we could go at this...
The mail vm's could all be diskless OS'es with a master server so that 1 OS upgrade migrates to all the vm's automatically for example. (It would also save a lot of drive space). But then the problem of course is that if the master server goes down, all the nodes will too. (We could put them on a NAS if we can afford it, though that's up in the air right now)
If any one has good ideas on what services to separate in which vm's lets hear them. It's more fun if we can involve everyone in building our new home