I am an ASP.NET web developer and small business owner. I maintain a network as a hobby, and to keep myself sharp on server technology, as I interact with them all the time as a part of my job. I also like the flexibility of running my own Exchange server. I have an MSDN Subscription, so that is the source of my licenses.
Currently I have 3 physical server computers.
One is a Windows Server 2k3 ISA Server 2006 box. It does all my firewalling / routing.
The other two physical servers are virtual machine hosts. I am in the process of switching over to Hyper-V from VMWare Server 2.0. I am rebuilding all my servers from scratch in the Hyper-V environment, and I would like to take this opportunity to fix some of the flaws in my infrastructure. The rest of the servers I will be describing are virtual machines. This is my current setup:
- Windows 2k3 Standard Exchange 2003 Server and Domain Controller (same VM). Does my DHCP and DNS. Also runs RADIUS server. I use the RADIUS to authenticate VPN users. Takes up to an hour to reboot!
- Windows 2k3 Standard alternate Domain Controller that is also my Certificate Authority. Does DNS.
- Windows 2k3 Standard Web / SQL Server 2005.
- Windows 2k8 Standard Web / SQL Server 2008. I prefer to use this one to host the majority of my apps because I like IIS 7, but I have server #3 to act as a staging environment for clients who have only IIS 6 and/or SQL Server 2005.
I have learned that it is generally not recommended to have Exchange on a Domain Controller. There are weird dependency issues and I have to run a batch file to shut down exchange server services before rebooting, or the reboot will take up to an hour!
My Virtual Machine hosts are each dual core 3GHz, with 16 gigs of ram and 300 GB of RAID 1 storage. I've very happy with the hardware. This network is mostly a hobby, but supports a small number of clients who occasionally come in to check on the web apps I am building for them.
Where I am looking for help is in the number of VMs I should have, and the roles each one should play.
I am thinking this (All VMs are 64-bit unless otherwise specified):
- Windows 2k8R2 Enterprise Primary Active Directory Server. Does DHCP, DNS, and RADIUS. Is 768 MB of RAM enough?
- Windows 2k8R2 Enterprise Backup Active Directory Server. Also does DHCP, DNS, and RADIUS. I would like this to always be running, and handle DHCP, DNS, etc, if Server #1 is down.
- Windows 2k8R2 Enterprise Exchange 2k7 server. I figure it should be all by itself and not play any other roles.
- Windows 2k8R2 Enterprise Web / SQL Server 2008 (just like before but updated OS).
- Windows 2k3 Standard Web / SQL Server 2005 / 32-bit (just like before).
- Certificate Authority. Which server should do this? Should it be its own server?
- (and beyond) Are there any popular services that I have not mentioned?
Each Host would run 3-5 VMs, and I would make sure that 1) and 2) were not on the same host, in case that whole host goes down due to hardware failure.
Does this configuration cover all the bases? Have I distributed the roles appropriately? For example, is it a bad idea to have DHCP and DNS on the same box?
I realize a lot of this hinges on what I plan to use my servers for. I basically want to run a simple windows environment with all the most popular services, so I can have practice using them all. I think lots of people will consider my setup overkill. But I enjoy maintaining the environment as a hobby, and it gives me a lot of exposure to windows infrastructure that I would not otherwise have. This knowledge comes in handy when I deploy my apps at client sites.
I am happy to supply additional information. Thanks!