We're changing hosts for our SAAS app (IIS+MSSQL) and have an opportunity to redesign the infrastructure. Either stick with what we have (which works well) or virtualise with vSphere.
2x Web/DB Servers Each have IIS/MSSQL installed. Windows Network Load Balancing to distribute traffic between the 2 nodes with a virtual IP address & MSSQL Mirroring with automatic failover for the DB.
1x MSSQL Witness Server (small VM)
If one server fails, NLB reroutes traffic to the other node and MSSQL automatically fails over. There's maybe 40 seconds downtime while NLB redirects.
2x vSphere Hosts
- Firewall VM – 1 vCPU, 512MB RAM, 20GB HDD
- Web Server VM – 1 vCPU, 2GB RAM, 50GB HDD
- DB Server VM – 2 vCPU, 4GB RAM, 100GB HDD
1x CentOS Linux SAN (mounted as NFS shares)
Concerns are not enough resources for the DB & web. Currently the Web/DB server makes full use of the node and only has to share a node if one fails. What if the SAN fails? Was advised that the VMs HDD would reside on the Hosts themselves with the SAN acting as a redundant store. I presume this solution uses VMware High Availability - data loss for the DB is unacceptable. Should instead there be 2x DB VM machines with MSSQL mirroring set up but running on different host nodes?
EDIT: Pros of virtualisation are the ability to clone machines, easily move to new hardware, able to separate out DB/Web servers. Any comments on this?
Any help would be GREATLY appreciated!