Hi !
I know that are many people who think a DBA should know only about database. Ok, I’m sorry, this is wrong ![]()
A good DBA should know about database, of course! But if you stop on this layer you will be a “dba” and not a “DBA”!
Is highly important, for a DBA, the minimal knowledge about the OS behavior, and all I/O systems, as storage, network and memory.
Today, I will give some basic explanation about RAID levels. Which was also a gap on my knowledge.
First, I need to mention that we have two options of RAID: Hardware RAID and Software RAID.
In summary, the Software RAID is managed by OS, which implies in one more task to compete with the services running on it. So, for SQL Server environments, this is not recommended. Thus, I will focus on Hardware RAID Levels.
But, what are RAID Levels? Basically are the way that disks are grouped together, which is directly related with the Recoverability and performance.
I will talk about the most important for us: RAID 0, RAID 1, RAID 5, RAID 6, RAID 10 and RAID 0+1.
RAID 0: Striping
- Splits the data, so each drive have an equal portion of the data
- If 1TB is need, the capacity can be split in N drives arranged in a RAID 0
- More drives added, the faster it will perform, but a higher risk of a data loss
- Rarely seen in SQL Server implementations
RAID 1: Mirroring
- Keeps the same data on two (or more) HDs at all times.
- Bad cost-benefit
- Performance advantage for read operations because the same data exists on all drives
- Depending of the RAID Controller and amount of cache, there may be a write penalty
- In most case the penalty is minimal
- When a drive fails no data is lost
- The failed drive can be replaced and a new copy of the data will be build
- During rebuild process, performance will be degraded
- RAID Controllers can be configured to set lower or higher priority on rebuilds against OS queries
- SQL Server Logs can be placed on this RAID level
RAID 5: Striping with Parity
- Similar to RAID 0 in that each drive can share an equal part of the data
- Adds a measure of data protection: Parity Data
- Calculating this parity data is processor-intensive
- The minimum number of drivers is three
- Some hardware RAID controllers can add additional drivers on the fly
- It cannot recover from the failure of more than one drive
RAID 6: Striping with Parity
- Similar to RAID 5
- But the failure problem is solved storing more parity data throughout the array
RAID 0+1 and RAID 10 (Nested RAID Leves)
- Store two identical copies of the data on two separate sets of drive
- What is the difference between RAID 0+1 and RAID 10?
- RAID 0+1: the data is striped and then mirrored
- Handles only the failure of a single drive in each side
- Best practice for log files and tempdb
- Better protection from hardware failure and better write performance
- “In general RAID 1+0 will provide better throughput for write-intensive applications. The amount of performance gained will vary based on the HW vendor’s RAID implementations. Most common alternative to RAID 1+0 is RAID 5. Generally, RAID 1+0 provides better write performance than any other RAID level providing data protection, including RAID 5.“
- RAID 10: The data is mirrored and then striped
-
- Handles the failure of multiple drives in the same array, without loss.
- In write intensive applications such as database log or OLTP environments, is the better choice
- RAID 0+1: the data is striped and then mirrored
So, this is it! I hope it was helpful as an introduction
References:
http://technet.microsoft.com/en-us/library/cc966534.aspx
http://en.wikipedia.org/wiki/RAID
Christian Bolton , Justin Langford , Brent Ozar , James Rowland-Jones, Jonathan Kehayias, Cindy Gross, Steven, “Professional SQL Server 2008 Internals and Troubleshooting”, ISBN-10: 0470484284 | ISBN-13: 978-0470484289





