Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Chris Miller on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

SQL and correct use of raid 10 discussion

Status
Not open for further replies.

orman

IS-IT--Management
Jun 14, 2001
123
US
On an Sql server we have 8 drives, one drive has the operating system and is mirored to another drive. That leaves 6 drives. From these, there are 2 raid5 sets, 3 drives each. One raid5 is mirrored to the 2nd. Question: Is this a good use of raid 10? That is, is this configuration making the system faster or slower than if we just did a raid5 with 6 disk? (our consultant said raid 10 is the best for this - but I do not believe it - on in this configuration.)

Thanks.
Orman
 
Well what you are describing isnt raid 10 its raid 50. Think of it as raid 5 + raid 0 = raid 50, probably is not the best setup for high I/O database but should work ok. Raid 10 = raid 1 + raid 0, raid 1 being striping the drives has better I/O performance than raid 5 and the + raid 0 is just for fault tolerance. Raid 10 would be better than the raid 50 you are running now in most cases.


RoadKi11

"This apparent fear reaction is typical, rather than try to solve technical problems technically, policy solutions are often chosen." - Fred Cohen
 
well i hosed that explenation, always mixing up raid 0 and 1. Sorry about that.



RoadKi11

"This apparent fear reaction is typical, rather than try to solve technical problems technically, policy solutions are often chosen." - Fred Cohen
 
The only way to really give you the proper recommendations will be for you to tell us if it is an OLAP or OLTP database. If you want the true guru's to give you all the lowdown on everything from proper placement of the binaries, to the placement of the indexes see the SQL Server forum forum962


I hate all Uppercase... I don't want my groups to seem angry at me all the time! =)
- ColdFlame (vbscript forum)
 
It is an OLTP database. No, don't need any SQL info. Really just evaluating the hardware side. Any one else using raid10 (or 50)?
 
I have maybe run into one db server in my lifetime running RAID-50 using local DASD, but from what I recall RAID-10 is a lot faster if > 35% of your transactions are db writes as opposed to reads.
I am no DBA but for most db servers that are nowadays SAN based, I have yet to see anything but RAID-5 and RAID-10 being used.
 
It all comes down to iops, the actual raid type doesn't really matter. In some circumstances raid 5 will be better in others raid 10.

Basically once you know your iops and read/write ratios you can work out what the best disk use is.

Raid 10 is usually used by default for sql stuff as its a lot better performance for a small number of disks. Raid 5 isn't quite as quick but once you get into a sizable numbers of disks the space saving is pretty big if the iops is availble in the number of disks to suit the database
 
So in order to know the iops (in-out pages per sec?), I would have to change the raid set and test each raid set up. Unfortunately, don't have the 'resourses' to do this. So I'm depending on other's experiences.

"Raid 10 is better for a small number of disks"... What is a small number of disks? Is 6 disks a small number of disks?

 
First, I don't think that mirroring a RAID5 array to another RAID5 array is RAID 50. I think that would be more like 5+1, since RAID1 is mirroring. Raid 5+0 should be striping across two or more RAID 5 sets.

At any rate, back to the question...if you need high bandwidth I/O, avoid anything that requires parity. This means avoid RAID5.

The reason why is that every write in a RAID5 array requires the generation of new parity data for that stripe of data. In order to compute the parity data not only requires parity calculations, but it also requires that the entire data stripe needs to be read in order to calculate that parity. So if you have a 3-disk RAID5, each data stripe will have two chunks of data and one chunk of parity. In order to write to a disk you will first have to read the data chunks, calculate the new parity chunk, then write the parity chunk and the new data chunk to disk. If your data spans multiple stripes then this will have to be performed repeatedly. When you are dealing with large data files (like on a DB server) it is extremely likely that you will span stripes on every write. As you can imagine, this gets ugly fast.

So the best alternatively usually is to use a true RAID 10. With 6 free disks you would have three mirrored pairs, and stripe data across them. Since there is no parity to be calculated the write performance can be much higher than RAID5 arrays.

The key factor is going to be how many writes you are doing. If you database is extremely static or most of the operations are reads, then you might get better performance from parity-based RAID. The reason why is simple...if your data is striped across a 6-disk RAID5 rather than a 3-disk RAID 10 (actually 6 disks, but each disk is mirrored) then you can read much faster from RAID5.



________________________________________
CompTIA A+, Network+, Server+, Security+
MCTS:Windows 7
MCTS:Hyper-V
MCTS:System Center Virtual Machine Manager
MCSE:Security 2003
MCITP:Enterprise Administrator
 
Thank you every one very much for your input. And thank you kmcferrin for your detailed explaination!
 
It also comes down to the app and how it works. But generally, RAID 10 is better than RAID 5. RAID 5 isn't generally recommendeded for most database apps like SQL or Exchange. RAID 10 will give you (much) higher performance, and less performance hit for a disk rebuild.

The caveat is that RAID 5 requires 3 or more drives, RAID 10 requires 2 or more, but must be an equal number.

Pat Richard MVP
Plan for performance, and capacity takes care of itself. Plan for capacity, and suffer poor performance.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top