[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now


Optimal Raid Configuration

Posted on 2014-02-06
Medium Priority
Last Modified: 2016-12-08
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
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
LVL 60

Expert Comment

by:Kevin Cross
ID: 39838747

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

ID: 39839147
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 70

Accepted Solution

Scott Pletcher earned 1500 total points
ID: 39839343
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 56

Expert Comment

ID: 39840001
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 60

Expert Comment

by:Kevin Cross
ID: 39840019
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

Fill in the form and get your FREE NFR key NOW!

Veeam® is happy to provide a FREE NFR server license to certified engineers, trainers, and bloggers.  It allows for the non‑production use of Veeam Agent for Microsoft Windows. This license is valid for five workstations and two servers.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A look at what happened in the Verizon cloud breach.
This month, Experts Exchange sat down with resident SQL expert, Jim Horn, for an in-depth look into the makings of a successful career in SQL.
Using examples as well as descriptions, and references to Books Online, show the documentation available for date manipulation functions and by using a select few of these functions, show how date based data can be manipulated with these functions.
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.

649 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