So I run a small shop of about 100 users. Our back office software is a mix of SQL based products, and our IT shop (aka me) is really setup for vendor support instead of a lot of IT overhead in house. However we aren't keen on, and some vendor products don't support a full cloud based option, so in house SQL is still a must.
The project at hand is migrating SQL from 2005 to 2012. Currently we don't have high avail, we run tran backups every 15 min and full nightly (with offsites...), and accept the potential for data loss/downtime with this setup. Given this project, I have some funds to step up my redundancy (not shooting for uber high 99.99% uptime maintenance windows are still ok). This post is primarily a discussion on what you would suggest. Here is my proposal.
2 - Physical Storage boxes clustered using Server 2012 and SMB 3.0 (this will be the landing point for the VM's). Mix of SSD/SATA/SAS partitions.
2 - Physical VM host servers, clustered using Server 2012 with VM's landin on the SMB 3.0 shares. Guests on this host will be all our clients. Exchange, File Server, Print Server, Web Server, App Servers, New SQL (all with the exception of SQL currently reside as VM's).
Plan on running all 4 boxes on a 10Gb switch with an uplink to our normal 1Gb switches.
The other option would be to run 2 SQL 2012 boxes in an AG, and not as VM's at all, but my way gets me redundancy everywhere not just SQL.
3 physical machines.
1 copy of VMWARE Essentials (which allows three physical hosts).
VM 1: DC 1 / SQL
VM 2: DC 2 / Exchange / Application
VM 3: DC 3 / Exchange / SQL / Web Site
VM 3 is located off site using a DAG for Exchange replication, DFS for file replication and SQL replicating either via native tools or doing a backup which is replicated via DFS.
If the client has a heavy application (finance product for example) then that goes on one of the VMs as a dedicated machine.
One of the DCs is also the print server and also the file server.
VM 3 is naturally of higher spec than the other two, particularly in storage.
However if you have a very heavy SQL requirement, where a physical box would be a better option, then introduce that as a fourth machine, dedicated to SQL tasks. remove the SQL server as a VM.
Windows 2012 R2 across the board, Exchange 2013.
For 100 users I don't see the need to have dedicated machines for things like printer server, file server etc.
Obviously being VM, you can add Linux based things in there quite easily. VMWARE have a management appliance for example, you can also get appliances for monitoring tools like Observium, and the APC Network shutdown tools.
Simon.