Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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:

  1. MOSS front end for 100 users
  2. MOSS SQL backend for 100 users
  3. IIS Website very low traffic
  4. TOMCAT website very low traffic
  5. 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

share|improve this question
add comment

4 Answers

up vote 2 down vote accepted

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.

share|improve this answer
    
I decided to go with the 3 RAID1 arrays. Though I will lose the performance gains from RAID10 I think I will be better protected against IO bottlenecking seperating the load. Thanks for everyones input. –  ITGuy24 Aug 21 '09 at 18:05
add comment

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).

share|improve this answer
add comment

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... ^^

share|improve this answer
1  
For databases that see a lot of write activity then keeping the data files and transaction-log files on separate spindles can make a significant difference, though most databases have a very read-biased read/write balance. –  David Spillett Aug 19 '09 at 16:13
add comment

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.

share|improve this answer
    
I disagree; there actually is a point in creating two distinct RAID 1 arrays: you can place a single VM on each of them and give it exclusive access to those disks. –  Massimo Aug 19 '09 at 15:56
    
Yes, that's true, but then you're missing the point of virtualizing machines in the first place. The whole point is to maximize the asset pool of available resources, and use the hypervisor to schedule who gets what when. By physically seperating them, all you're doing is preventing the hypervisor from scheduling disk resources. In essence, the machine will never be able to use more disk IO than the RAID 1 array will allow, even if it needs it and the other machines aren't using "their" RAID1 array at full capacity. –  IceMage Aug 19 '09 at 16:01
    
Probably true when the disk workload is unpredictable; but when you have an high and somewhat "even" workload, is better to spread it across as many physical disks as possible. Two VMs accessing the same RAID 10 array have 50% chanches of hitting the same physical disk(s) at the same time, while they will run with maximum parallelism if stored on two distinct RAID 1 arrays. –  Massimo Aug 20 '09 at 0:17
    
We've built something based on 3 raid1's. I really hate it because the concurrent access is (at least for us) a scenario that almost never happens - well, in fact, we have concurrent accesses on the VMs OS disks when we mass-install all of them. The raid controller easily handles that, going up to 1900 TPS. Now IF we had a Raid10, we'd get a nice spread and higher performance every time something needs to read/write and so we'd in fact be off even faster. The only thing speaking against Raid10 (from what I see): some controllers have problems w/ multiple arrays or bandwidth (which doubles) –  Florian Heigl Mar 11 '12 at 17:13
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.