I doing a series of Blog Post’s on storage and disk configuration. You should never treat it like a Black Box and need to understand your workloads and use cases to get the value out of your servers and your licenses. In this post I am going to talk about RAID Levels and Configurations.
Redundant Array of Inexpensive Disk (RAID) is of the most important decisions that you have to make when deploying a new storage subsystem is what RAID level to use. Each RAID level has its advantages and disadvantages in terms of protection, efficiency or usable storage and performance in terms of both normal operations and in terms of rebuild time. Regardless of the storage subsystem, RAID decisions are based on the same set of criteria.
First and foremost, the application’s performance needs must be met and this should be the primary decision factor when selecting RAID policy. Once the LOB applications’ needs are addressed, choosing a RAID policy comes down to two factors: cost in terms of capacity utilization efficiency and protection level. The following sections describe each of the different RAID levels.
This level is known as simple striping. RAID-0 is the simplest configuration of disks that stripe the data. RAID-0 does not provide any redundancy or fault tolerance. Data striping refers to sequentially writing data in a round-robin style up to a certain stripe size, a multiple of a disk sector (usually 512 bytes). Data striping yields good performance because multiple disks are concurrently servicing the I/O requests. The positive points for RAID-0 are the cost, performance, and storage efficiency. RAID-0 is sometimes discussed but seldom recommended because it does not provide fault tolerance. Any spindle failure in a RAID-0 group will render the entire group unusable. The negative impact of no redundancy can outweigh its positive points.
This level is known as disk mirroring. Two drives store identical information so that one is a mirror of the other. For every disk operation, the system must write the same information to both disks. Because dual write operations can degrade system performance, many employ duplexing, where each mirror drive has its own host adapter. While the mirror approach provides good fault tolerance, it is relatively expensive to implement because only half of the available disk space can be used for storage, while the other half is used for mirroring. This is the best choice for SQL Server transaction logs.
This level is known as striping with parity. RAID-5 is a popular strategy for low- or mid-range storage systems. RAID-5 stripes the data in large blocks across the disks in an array. RAID-5 writes parity data across all the disks in the RAID-5 set. Data redundancy is provided by the parity information. The data and parity information is arranged on the disk array so that the two types of information are always on different disks. Striping with parity can offer better performance than disk mirroring (RAID-1). However, when a stripe member is missing, read performance is decreased (for example, when a disk fails). RAID-5 is a less expensive option because it utilizes drive space more efficiently than RAID-1. RAID-5 may be used in a storage tire approach to assign non-critical data to higher-capacity and lower-cost drives, for example SQL Server backup volumes or for SQL Server data volumes for Data Warehouse workload types.
This level is known as striping with dual distributed parity. RAID-6 adds an additional parity block and provides approximately double the data protection over RAID-5, but at a cost of even lower write performance. As physical disks grow larger, and consequently RAID rebuild times grow longer, in some cases RAID-6 is necessary to prevent logical unit number (LUN) failure if an un-correctable error occurs during the rebuild, or if a second disk in the array group fails during rebuild. Due to disk capacity, some vendors support RAID-6 instead of RAID-5. RAID-6 implementations can tolerate up to 2 drive failures at the same time without data loss. RAID-6 like RAID-5 may be used in a storage tire approach to assign non-critical data to higher-capacity and lower-cost drives, for example SQL Server backup volumes or for SQL Server data volumes for Data Warehouse workload types.
RAID 1+0 (RAID-10)
This level is known as mirroring with striping. RAID-10 is essentially many sets of RAID-1 or mirrored drives in a RAID-0 configuration. This configuration combines the best attributes of striping and mirroring: high performance and good fault tolerance. For these reasons, we recommend using this RAID level. However, the high performance and reliability level is the trade-off for storage capacity. RAID-10 implementations can sustain multiple drive losses so long as no RAID-1 (mirrored) set loses both of its drives.
The following table summarizes I/O activity of various RAID levels:
RAID LevelsRAID-0RAID-1RAID-5 or RAID-6RAID-10ReliabilityLowestLack of fault tolerance results in data loss
Very goodEven better with duplexing
GoodCan tolerate single machine fault
ExcellentStorage Efficiency100%50%>50% <100%50%Random ReadExcellentFairWorst of the RAID Levels but better than a singled drive
FairVery goodRandom WriteExcellentFairWorse than a single drive but better than some RAID levels
Very goodGenerally better with larger stripe sizes
Very goodSequential ReadExcellentVery GoodComparable to a single drive
GoodGenerally, better with smaller stripe sizes
GoodSequential WriteExcellentVery GoodBetter than other RAID levels
FairGoodCostLowestModerateRelatively high cost due to redundant drives; however, no expensive controller required
The following table is a summary of the RAID level and recommendations on what disk volumes to use them:
RAID LevelRecommendationRAID-0Non-critical dataGood for stagnantly updated data that gets backed up regularly
Departmental development or testing for SQL Servers
RAID-1Good for data that requires high fault tolerance at relatively low hardware costSystem volume on the SQL Server host server
Cluster Quorum volumes
Very good for sequential I/O
OLTP or DW transaction log volumes
Very good for read only dataSQL Server backup volumes
DW data volumes
Where cost is the essential factor
RAID-10Data requiring high performance for both read and write and excellent reliability while trading off storage efficiency and costOLTP data volumes where workload is random I/O
OLTP transaction log volumes
SQL Server tempdb data volumes