Optimal Raid Configuration

I have an HP DL380 that we are configuring for SQL server. I'm creating multiple logical drives for data, logs, tempdb etc... My question is around the best way to create the logical drives on the raid controller. Is it better for performance to create one Array that uses all 10 physical disks and then create the logical drives in that array or create multiple arrays with a logical drive in each. Many things that I've read say that more spindles is better than few?

What is the best practice for raid configuration. The i/o is predominately read. I was going to use raid 1+0 but if that's not best I'll configure another level...

Comments please?
Who is Participating?
Scott PletcherConnect With a Mentor Senior DBACommented:
In general, yes, more spindles = better performance.  But you've got to balance other considerations as well.

You'll want at least two separate RAID sets for recovery reasons.  A given's db log file should be on a separate RAID from its data file(s).

Typically RAID1/RAID10 works better for logs, RAID5/6 for data.  But with low write activity, you could use RAID5 for both logs and data.  Then you could better balance write activity between the RAID sets.

If you'll have a lot of tempdb activity, a separate RAID1 for it, or RAID0 if it's used exclusively for tempdb, can be very beneficial to SQL performance.

I don't think the OS really needs a separate RAID set, although I've seen this recommended many times.  To me, the OS and (data or logs) can co-exist/share disks just fine when drives are limited.
Kevin CrossChief Technology OfficerCommented:

Separate arrays versus logical drives on one big array usually works better, especially if you separate the operating system and SQL (i.e., at a minimum you want two arrays, but using more to allow you to leverage best RAID for each drive's purpose).

Here is a good resource:

In the article, it nicely lays out the RAID that works well with each portion of SQL Server, user databases, tempdb, log files, et cetera.  Using these recommendations, you could have one array that contains logical drive(s) with operating system, SQL base code, and initial page file.  You then can create other arrays to separate databases, log files, additional page files, and so on.

I hope that helps!

Best regards,

Best is ALWAYS going to be one logical drive per RAID group, using the best make/model disk for that job.

Example, if you want RAID1 for scratch table space & indexing, you do that by using a pair of 15K RPM SAS drives and creating a 2-disk RAID1.  You do NOT create a large RAID6 array with SATA disks then carve out a partition and use that for this task.
Strange thing is that people would have you create a RAID array for each use because it's using the server's internal disks whereas if it was on a SAN you would almost be guaranteed that most if not all of the logical disks you would be given would be on the same set of spindles. Some 500 disk SANs I've seen only have two disk groups on them (and it would be just one except for the log/data separation Scott mentions which is for recovery rather than performance measures).

I like to see 1 big array and multiple logical disks on it for performance since if the OS disks are idle the data gets the benefit of the extra spindles. Bear in mind though that software recovery tools such as RAID reconstructor can't easily cope with one disk array with mixed RAID levels and stripe element sizes on it. Alternatively though I like to see the OS on a separate array for data recovery purposes which would then be ideal for the logs as Scott also said).

Edit, wanted to add that it's even better for data recovery if the OS disks (with transaction logs perhaps) are on a separate controller which is exactly what you'll get if you're adding a 2nd disk cage to the DL380p gen8 as there's 8 disks per cage unless you get the CTO 25 disk model.
Kevin CrossChief Technology OfficerCommented:
As a former sys admin of 1000s of servers, it is the reason I put OS on separate array.  I also agree, though, that we did not worry about this when disks were on SAN.  With lower number of disks, I have run SQL server with one array just fine.  Therefore, you should be fine.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.