RAID (redundant array of independent disks) is a disk system that contains multiple disk drives, called an array, to provide greater performance, reliability, storage capacity, and lower cost. Fault-tolerant arrays are categorized in multiple RAID levels. Each level uses a different algorithm to implement fault tolerance. Although RAID is not a part of SQL Server, implementing RAID can directly affect the way SQL Server performs on the hardware used to install Windows and SQL Server. RAID levels 0, 1, 5, and 10 are typically used with SQL Server.
A hardware disk array improves I/O performance because I/O functions, such as striping and mirroring, are handled efficiently in firmware. Conversely, an operating system–based RAID offers lower cost, but consumes processor cycles. When cost is an issue and redundancy and high performance are required, RAID-5 volumes are a good solution. RAID 10 is a better solution if your budget will allow for the extra drives required to maintain the same amount of drive space.
This level is also known as disk striping because it uses a disk file system called a stripe set. Data is divided into blocks and spread in a fixed order among all disks in an array. RAID 0 improves read and write performance by spreading operations across multiple disks. Operations can then be performed independently and at the same time.
RAID 0 is similar to RAID 5, but RAID 5 also provides fault tolerance.
This level is also known as disk mirroring because it uses a disk file system called a mirror set. Disk mirroring provides a redundant, identical copy of a selected disk. All data written to the primary disk is written to the mirror disk. RAID 1 provides fault tolerance and generally improves read performance but may degrade write performance.
This level adds redundancy by using an error correction method that spreads parity across all disks. RAID 2 also uses a disk-striping strategy that divides a file into bytes and spreads it across multiple disks. This strategy offers only marginal improvement in disk use and read-and-write performance over mirroring (RAID 1). RAID 2 is not as efficient as other RAID levels and is not generally used.
No Longer Used
This level uses the same striping method as RAID 2, but the error correction method requires only one disk for parity data. The amount of disk space used varies with the number of data disks. RAID 3 provides some read-and-write performance improvement.
This level uses striped data in much larger blocks or segments than RAID 2 or RAID 3. Like RAID 3, the error correction method requires only one disk for parity data. This feature keeps user data separate from error-correction data. RAID 4 is not as efficient as other RAID levels and is not generally used.
Also known as striping with parity, this level is the most popular strategy for new designs. RAID 5 is similar to RAID 4, because this level stripes the data in large blocks across the disks in an array. However, RAID 5 differs because it writes the parity across all the disks. Data redundancy is provided by the parity information. The data and parity information are arranged on the disk array so that the two types of information are always on different disks. Striping with parity offers 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 6 extends RAID 5 by adding an additional parity block; thus it uses block-level striping with two parity blocks distributed across all member disks. RAID 6 does not have a performance penalty for read operations, but it does have a performance penalty on write operations because of the overhead associated with parity calculations. Performance varies greatly depending on how RAID 6 is implemented in the manufacturer’s storage architecture – in software, firmware or by using firmware and specialized ASICs for intensive parity calculations. It can be as fast as a RAID-5 system with one fewer drive (same number of data drives).
This level is also known as mirroring with striping. RAID 10 uses a striped array of disks that are then mirrored to another identical set of striped disks. For example, a striped array can be created by using five disks. The striped array of disks is then mirrored using another set of five striped disks. RAID 10 provides the performance benefits of disk striping with the disk redundancy of mirroring. RAID 10 provides the highest read-and-write performance of any one of the other RAID levels, but at the expense of using two times as many disks.
RAID levels higher than 10 (1 + 0) may offer additional fault tolerance or performance enhancements. These levels generally are proprietary systems. For more information about these types of RAID systems, contact the hardware vendor.
Performance: Very High
Redundancy: Very High
You can read more about the choices between RAID 5 and RAID 10 here.