Optimal Raid Configuration

Posted on 2014-02-06
Last Modified: 2014-03-24
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?
Question by:BenthamLtd
LVL 59

Expert Comment

by:Kevin Cross
Comment Utility

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,

LVL 47

Expert Comment

Comment Utility
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.
LVL 69

Accepted Solution

ScottPletcher earned 500 total points
Comment Utility
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.
LVL 55

Expert Comment

Comment Utility
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.
LVL 59

Expert Comment

by:Kevin Cross
Comment Utility
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.

Featured Post

What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

Join & Write a Comment

Suggested Solutions

Ever notice how you can't use a new drive in Windows without having Windows assigning a Disk Signature?  Ever have a signature collision problem (especially with Virtual Machines?)  This article is intended to help you understand what's going on and…
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.
Viewers will learn how to use the UPDATE and DELETE statements to change or remove existing data from their tables. Make a table: Update a specific column given a specific row using the UPDATE statement: Remove a set of values using the DELETE s…

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now