Most organizations use RAID storage to implement production SQL Server databases. But not all DBAs know how RAID levels differ and which level is best for their situations. Here's a quick overview of the seven different types of hardware RAID implementations.

7. RAID Level 0
You implement RAID 0 by using disk striping, in which you divide data into blocks, or stripes, and spread them across multiple physical disks. Because RAID 0 makes good use of multiple disk actuators, it tends to improve read and write performance. However, this RAID level doesn't provide fault tolerance. Organizations often use RAID 0 to store SQL Server data files.

6. RAID Level 1
RAID 1, also called disk mirroring, maintains a complete copy of the data on a second, separate physical drive. RAID 1 provides fault tolerance and often improves read performance, but its need to write the data twice can degrade write performance in single-disk-controller configurations. RAID 1 also can be expensive because its data redundancy requires twice the physical disk storage. Because of RAID 1's fault tolerance, organizations often use it to store SQL Server transaction log files.

5. RAID Level 2
RAID 2 spreads both data and parity information across multiple physical disks. RAID 2's data-striping technique doesn't efficiently use disk space and provides little disk space savings compared with full mirroring. RAID 2 implementations are uncommon.

4. RAID Level 3
Like RAID 2, RAID 3 implements data-striping; unlike RAID 2, RAID 3 maintains all parity information on one disk for better performance. RAID 3's disk usage, however, is still inefficient, making implementations rare.

3. RAID Level 4
RAID 4 uses the same data-striping methodology as RAID 2 and RAID 3 but provides better performance by using larger disk blocks. RAID 4 also provides the same single-disk parity storage as RAID 3. Like its RAID 2 and RAID 3 cousins, RAID 4 is inefficient for transaction-based processing.

2. RAID Level 5
RAID 5 uses a data-striping method similar to RAID 0's but adds parity to the data-striping, which gives you better fault tolerance. RAID 5 stores the parity information on a physical disk separate from the one that stores data blocks. Because RAID 5 uses multiple disk actuators, it provides good read and write performance but a lower level of redundancy than RAID 1's full mirroring. Organizations often use RAID 5 to store SQL Server data files.

1. RAID Level 10
RAID 10 (a combination of RAID 1 and RAID 0) uses a striped array of disks, as does RAID 0, but fully mirrors the striped data set, similar to RAID 1. RAID 10's use of multiple disks gives it the best performance of all of the RAID levels, but this level's mirrored implementation of the striped data set makes it the most expensive storage option.

End of Article




You must log on before posting a comment.

If you don't have a username & password, please register now.

Reader Comments

I think Mr. Otey needs to read up on RAID before describing the different levels as he clearly has no clue, what follows are the most obvious of the laughable howlers in the article:

1. The description of RAID 2, may as well have been truncated to "Implementations rare" since his description of it is meaningless. The reason why you don't find RAID2 implementations is that it needs >32 disks for a single stripe because it does bitwise striping of data combined with a Hamming error correction code.

2. Other than the fact that they both use disks, there is little simlarity between RAID2 & RAID3. RAID 3 if actually implemented does striping at the "word" level and uses one extra disk for XOR parity. It has no relation whatsoever to RAID 2 and only requires one extra disk/stripe! All the parity is directed to the extra disk. RAID3 is actually implemented by most hi-end controllers because it is very good for hi-bandwidth applications like video editing.

3. RAID 4 doesn't use the same data-striping methodology as RAID2 or RAID 3 (FYI RAID 2 & RAID 3 striping methodology are radically different) It uses a block level striping with XOR parity directed to extra disk and is most closely related to RAID-5

4. The dsecription of RAID 5 is just flat out wrong when it says "RAID 5 stores the parity information on a physical disk separate from the one that stores data blocks." That would be a valid description of RAID-4, RAID-5 stripes XOR parity and block data across all available drives which is what distinguishes it from RAID 4!!!

If this is indicative of the level of technical content in the rest of the magazine, I'll not be subsribing anytime soon!

Nik Simpson

Mr. Otey neglected to mention the performance penalties of RAID 3, 4, and 5 when writing. Unless whole stripes are being written to disk, the parity data needs to be recalculated, either by re-reading all other blocks within the stripe, or by reading the old parity and old data, stripping out the old data, incorporating the new data, then writing out the parity and data. Thus, a single-block write would incur a minimum of two reads and two writes.

He also failed to discuss performance when operating in a degraded condition. RAID 0 would be useless, as it has no data redundancy. RAID 1 would have another copy of the data. RAID 2 would be able to recreate the data (which RAID 2 always does, anyway). RAID 3, 4, and 5 would have to read every remaining disk whenever a read is directed to the failed disk.

These are important factors to consider when desigining your disk layout, particularly if performance and fault-tolerance are design goals.

Thomas

I have to agree with the comments posted by Nik - the descriptions of RAID levels in this article and their implementations are full of errors. The author should have just given a link to a Web site that accurately describes RAID technology, e.g. http://www.acnc.com/raid.html. I think that it would have been a lot more helpful to the readers of SQL Server Magazine.

RAIDER

I understand the Raid levels but I want to know where to install the program files. I have read and heard you install the sql files in different locations but every book has a different theory.

Example, according to Microsoft Training and Certification for System Admininistration for Microsoft SQL Server 7.0 Work, page 6 Module 2: Installing and Configuring SQL Server, paragraph: Default Installation Path: The default installation path for the program and data files is C:\Mssql7, you can accept the default installtion path for SQL server or specify another drive or directory for the program files, data files or both. The Setup program also installs files in the system directory. The system file location cannot be changed.

So what Raid level do you put the program files?

Thanks,

Deborah

Deborah Dix

Raid Level 7 - Based on Raid 3 & 4 but with some special caching which greatly improves disk performance in all areas. Though is not an open industry standard but is widely used. (A 'Storage Computer Corporation' trademark.)

Seb Gibbs

I agree with previous comments that this article is bad for the reasons they mention and even more.

Also wrong when he writes that RAID 10 has "the best performance of all the RAID levels." RAID 0 has better performance with the same number of disks (but is not fault-tolerant).

He also writes that RAID 1's "need to write the data twice can degrade write performance in a single-disk-controller configuration." This is not true unless one is (God forbid!) using IDE drives in your server, and has no more effect on RAID 1 arrays than any of the others. He then writes: "Because of RAID 1's fault tolerance, organizations often use it to store SQL Server transaction log files." Get a clue! All RAID levels aside from RAID 0 are fault-tolerant; the reason RAID 1 is used for tran logs is because of its performance with sequential I/O.

Hans

Thanks Nik Simpson and others for clearing Otey's sorry descriptions up. I feel sorry for the person who does not scroll down and only reads Otey's descriptions.

orbhot

Article Rating 3 out of 5

Quick question though, as I'm looking for info on which RAID to choose for my setup. I'm setting up a SQL server, and RAID is a must. Costs are a vital part of how I choose RAID. Will RAID do the job? I'm planning on using IDE, but SATA is an option as welll. Thanx :)

Anonymous User

Article Rating 2 out of 5

I've only been reading up against the most commonly used RAID 0, 1, 5 and 10 (1+0) and i was looking forward to logging into this article however it explains nothing that you can't get as a summary anywhere else, as well as the errors already mentioned. What I expect from this site is how this relates to SQL Server - eg how do you configure Windows Dynamic Disk Partitions to make sure separate physical disks are used on the Transaction Logs and Data files. I think I've worked out that RAID 10 is best here and that multiple sets of 2 Disks (4 are minimum for RAID 10) can be separately partitioned, however until you get in front of the box it's difficult to tell (which is awkward when recommending the hardware in the first place!), so dissapointed in this 'article' which is rather thin on content even though the title doesn't claim any more than the basics (in which case, why bother).

EuroPhil

Article Rating 1 out of 5

The article is too brief.

msl9669

Article Rating 3 out of 5

 
 

ADS BY GOOGLE