This is something I see debated all the time in many forums, but I've always trusted devshed, so I thought I would ask here. What I'm trying to figure out is the best storage option and RAID config for a proposed server setup. I realize I can't get exact recommendations without you seeing everything in my setup, but I'm hoping for some general advice. I know the best way is to test workloads beforehand, and I'll do that as much as possible, but we put the "small" in "small business" so budget (and time) is very limited. I may be able to use something like iometer to test, but I haven't gotten that far yet - I have to research exactly how to simulate my current workloads.

First a little background on the current setup:

We have a server running Windows 2003 R2 64-bit edition. It has 24GB RAM, quad-core Xeon processor and eight hard drives - two (160GB each) in a RAID 1 array that contains the OS and six (1TB each) in a RAID6 array that holds the majority of the data. All are normal SATA desktop-class HDs. The server handles everything for 15 users - its a DC, fileserver, WSUS server, Anti-Virus console, etc and I also run a few LOB applications and a decent size (100 million record) MySQL database. However the database is only utilized by one user at a time (me). Most of the available RAM is allotted to the INNODB buffer pool.

This server is sufficient for our needs (and possibly overkill most of the time) and the processor and HDs sit idle a good bit, except when the mySQL DB is processing a large amount of data. And it still does those tasks pretty quickly and without much if any disruption to others.

With Windows 2003 support ending next year, and the hardware getting older, I've been working on a migration plan and here's what I'm thinking:

The OS will be Windows Server 2012 R2 Essentials running as a VM on Hyper-V Server 2012 R2 (free edition). My current plan is to just have just the one VM. Most all of our apps have been tested successfully on the new server OS at this point.

So with all of that background, what I'm really trying to figure out is the best storage configuration that'll give the best balance of performance, redundancy and budget. (Isn't everyone?)

Current plan is:
-- local storage only (not NAS or SAN)
-- Within the VM, there will be three logical drives - the OS on one, fileserver and other less-resource intensive items on another ("data" drive) and the mySQL database and related LOB on a third ("DB" drive)
-- ~4-6 total physical hard drives in the box

I'm considering using more commodity/desktop class hardware (with the exception of 10K/15K drives and ECC memory). Many newer desktop MBs support hot swap drives, so these seem like a real option. Any reason for not trying this route? If I can setup a 2-node cluster for the same price as one expensive server... why not consider it? Our current setup is a Supermicro I built with triple-redundant power supplies, etc, but of course it wasn't cheap. We obviously want to avoid it as much as possible, but if I have to take the server down for 15 minutes to change a power supply, that is acceptable.

One option would be to have 2 physical drives in RAID1 for the VM OS VHDX and also for the Hyper-V files. Then 2 different physical drives in RAID1 for the data VHDX. And a third RAID1 array for the DB VHDX. The purpose in separating these onto three physical arrays would be to avoid the data bottlenecks that arise when the DB is busy. However it seems this would be a good bit slower on both read and writes for the DB when compared to our current 6-disk RAID6.

Another option I considered would be to have six drives all in a RAID6 array and have all three VHDX located there. I think it would be fine, but maybe not optimal.

A third option (and the one I'm leaning toward as of this writing) is to have a physical array with two drives in RAID1 for the Hyper-V files, the OS VHDX and the data VHDX. Then another four drives in RAID6 dedicated to the DB VHDX. (Or if I go with four drives for this, would RAID10 be better at the cost of less usable disk space?) The database is mostly reads and small writes, with the exception of a couple of good sized imports every few days.

Before I create a ten page post, I'll stop there and see what feedback you have. Thanks in advance for all opinions.