I am about to retask a 2950 to consolidate some VM's on to a single ESXi server. The server is as follows
- Dell 2950
- 2x Intel X5365 @ 3.0Ghz
- 16GB RAM (8x 2GB ECC)
- 2x 73GB 10k SAS
- 4 x 300GB 10K SAS
My question is whether I should go with RAID1/RAID10 or RAID1/RAID1/RAID1?
The VM's are as follows:
- MOSS front end for 100 users
- MOSS SQL backend for 100 users
- IIS Website very low traffic
- TOMCAT website very low traffic
- CRM Application that sync contacts between our Exchange and ERP servers also not a brute
Any advice on what to put where to get the best performance out of MOSS would be appreciated.
Please note this is the only hardware I have available, we have a very tight budget and can't buy another server to host SQL so it has to stay virtualized.
Edit: Database is read intensive, very few writes. I think this helps the all RAID1 position
I would go with the four drives in RAID10 rather than two RAID1 arrays as you will see a performance boost for the SQL VM.
As you have plenty of RAM you can give enough to the other VMs that they'll never need to swap, and I'm guessing they won't need much other disk IO either so won't impact the SQL VM in that way. If they do impose a noticable IO load, put then on the other smaller RAID1 array and let the SQL VM have the RAID10 array to itself.
If you had two or more VMs that imposed a high IO load then you might want to go with multiple RAID1 arrays instead of a RAID10 one, as you could separate their IO load on to different disk sets, but you'd have to do some benchmarking yourself with the app(s) in question to see whether this gives you any noticeable speed benefit over RAID10 (I'm guessing any difference would be small, but it would depend on the loading patterns, and having the larger RAID10 volume would probably be more convenient in the long run then two smaller ones).
I'd definitely go with three RAID 1 volumes; the usable space is the same (50% of total disks size), but you can choose to place VMs on different arrays,and when two VMs are each one on its own physical disk(s) they perform a lot faster than when they're spread across one big array only.
I'd then place the VMs like this:
First array: OS, IIS, tomcat Second array: MOSS front-end, CRM Third array: MOSS back-end
Depending on your workload, you can place them differently; but having a fully dedicated array for the most disk-intensive VM will surely provide a benefit.
A tough one without more measurements of the actual IO load patterns.
I'd agree with David Spilett (though try to put most if not all vm system disk files on the first RAID1 array in that case directly) though I'm pondering wether splitting the SQL db and the SQL logs onto two separate arrays and hence spindle systems would be better or not... ^^
The answer is simple, since your server is already configured to do this, i'd run two seperate RAID arrays, one for your VM, and the other as your storage group,
That is, use your two 73gb SAS drives in RAID 1, and then use your 4 300GB SAS drives in a raid 10, there is no point in setting up two RAID 1 arrays, as it's basically just a RAID10 without the IO performance boost you would get from a RAID10.
Basically, two RAID 1 volumes have tolerance for two drive failures, as long as they are not both part of the same RAID 1 block. The same logic applies to a RAID 10 array, but with a RAID 10 array, you get the benefits of RAID 0, which doubles your IO performance. If load becomes a problem due to the MOSS or SQL server, you should use your VMWare to do balancing, not the configuration of your RAID arrays. VMware ESXi is more than capable of scheduling disk usage across a large set of VMs.