Nested RAID levels

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Levels of nested RAID,[1] also known as hybrid RAID,[2] combine two or more of the standard levels of RAID (redundant array of independent disks) to gain performance, additional redundancy, or both.

RAID 0+1[edit]

A typical RAID 0+1 configuration

A RAID 0+1 (also called RAID 01), is a RAID level used for both replicating and sharing data among disks.[3] RAID 0+1 is a mirror of stripes. The usable capacity of a RAID 0+1 array is the same as a RAID 1 array, where half of the total capacity is used to mirror the other half. (N/2) \cdot S_{\mathrm{min}}, where N is the total number of drives and S_{\mathrm{min}} is the capacity of the smallest drive in the array.

RAID 1+0[edit]

A typical RAID 1+0 configuration

A RAID 1+0, sometimes called RAID 1&0 or RAID 10, is similar to a RAID 0+1 with exception that the RAID levels used are reversed—RAID 10 is a stripe of mirrors.[3]

A nonstandard definition of "RAID 10" was created for the Linux MD driver;[4] RAID 10 as recognized by the storage industry association and as generally implemented by RAID controllers is a RAID 0 array of mirrors (which may be two way or three way mirrors)[5] and requires a minimum of four drives. Linux "RAID 10" can be implemented with as few as two disks. Implementations supporting two disks such as Linux RAID 10 offer a choice of layouts.[4]

Examples[edit]

A1, A2, et cetera each represent one data block; each column represents one disk.

More typically, larger arrays of disks are combined for professional applications. In high end configurations, enterprise storage experts expected PCIe and SAS storage to dominate and eventually replace interfaces designed for spinning metal and for these interfaces to become further integrated with Ethernet and network storage suggesting that rarely accessed data stripes could often be located over networks and that very large arrays using protocols like iSCSI would become more common.[6] Pictured is an example where three collections of 120 GB level 1 arrays are striped together to make 360 GB of total storage space.

Performance (speed)[edit]

According to manufacturer specifications and official independent benchmarks,[7][8][9] in most cases RAID 10 provides better throughput and latency than all other RAID levels except RAID 0 (which wins in throughput).

It is the preferable RAID level for I/O-intensive applications such as database, email, and web servers, as well as for any other use requiring high disk performance.[10]

Implementation[edit]

The Linux kernel's RAID 10 implementation performs mirroring and striping at the same time, providing various layouts. Only some of the available layouts are functioning as standard RAID 10.[4]

RAID 100 (RAID 10+0)[edit]

Representative RAID-100 configuration. A1, B1, etc. each represent one data sector; each column represents one disk.

A RAID 100, sometimes also called RAID 10+0, is a stripe of RAID 10s. This is logically equivalent to a wider RAID 10 array, but is generally implemented using software RAID 0 over hardware RAID 10. Being "striped two ways", RAID 100 is described as a "plaid RAID".[11]

RAID 50 (RAID 5+0)[edit]

Representative RAID-50 configuration. A1, B1, etc. each represent one data block; each column represents one disk; Ap, Bp, etc. each represent parity information for each distinct RAID 5 and may represent different values across the RAID 5 (that is, Ap for A1 and A2 can differ from Ap for A3 and A4).

A RAID 50 combines the straight block-level striping of RAID 0 with the distributed parity of RAID 5.[3] This is a RAID 0 array striped across RAID 5 elements. It requires at least six drives.

On the left is an example where three collections of 120 GB RAID 5s are striped together to make 720 GB of total storage space:

One drive from each of the RAID 5 sets could fail without loss of data. However, if the failed drive is not replaced, the remaining drives in that set then become a single point of failure for the entire array. If one of those drives fails, all data stored in the entire array is lost. The time spent in recovery (detecting and responding to a drive failure, and the rebuild process to the newly inserted drive) represents a period of vulnerability to the RAID set.

In the example below, data sets may be striped across both RAID sets. A data set with five blocks would have three blocks written to the first RAID set, and the next two blocks written to RAID set 2.

RAID-50 Setup consisting of two sets of four drives each.

The configuration of the RAID sets will impact the overall fault tolerance. A construction of three seven-drive RAID 5 sets has higher capacity and storage efficiency, but can only tolerate three maximum potential drive failures. Because the reliability of the system depends on quick replacement of the bad drive so the array can rebuild, it is common to construct three six-drive RAID 5 sets each with a hot spare that can immediately start rebuilding the array on failure. This does not address the issue that the array is put under maximum strain reading every bit to rebuild the array precisely at the time when it is most vulnerable. A construction of seven three-drive RAID 5 sets can handle up to seven drive failures, if they are in different RAID 5 sets, but has lower capacity and storage efficiency.

RAID 50 improves upon the performance of RAID 5 particularly during writes, and provides better fault tolerance than a single RAID level does. This level is recommended for applications that require high fault tolerance, capacity and random positioning performance.

As the number of drives in a RAID set increases, and the capacity of the drives increase, this impacts the fault-recovery time correspondingly as the interval for rebuilding the RAID set increases.

RAID 53[edit]

RAID 53 is typically used as a name for RAID 30 or 0+3.[12]

RAID 60 (RAID 6+0)[edit]

RAID-60 (RAID 6+0) setup consisting of two sets of four drives each

A RAID 60 combines the straight block-level striping of RAID 0 with the distributed double parity of RAID 6. That is, a RAID 0 array striped across RAID 6 elements. It requires at least eight disks.[3]

See also[edit]

References[edit]

  1. ^ Delmar, Michael Graves (2003). "Data Recovery and Fault Tolerance". The Complete Guide to Networking and Network+. Cengage Learning. p. 448. ISBN 1-4018-3339-X. 
  2. ^ Mishra, S. K.; Vemulapalli, S. K.; Mohapatra, P (1995). "Dual-Crosshatch Disk Array: A Highly Reliable Hybrid-RAID Architecture". Proceedings of the 1995 International Conference on Parallel Processing: Volume 1. CRC Press. pp. I–146ff. ISBN 0-8493-2615-X. 
  3. ^ a b c d "Selecting a RAID level and tuning performance". IBM Systems Software Information Center. IBM. 2011. p. 1. 
  4. ^ a b c Brown, Neil (27 August 2004). "RAID10 in Linux M driver". 
  5. ^ http://www.snia.org/tech_activities/standards/curr_standards/ddf/SNIA-DDFv1.2.pdf
  6. ^ Cole, Arthur (24 August 2010). "SSDs: From SAS/SATA to PCIe". IT Business Edge. 
  7. ^ "Intel Rapid Storage Technology: What is RAID 10?". Intel. 16 November 2009. 
  8. ^ "IBM and HP 6-Gbps SAS RAID Controller Performance" (PDF). Demartek. October 2009. 
  9. ^ "Summary Comparison of RAID Levels". PCGuide.com. 17 April 2001. 
  10. ^ Gupta, Meeta (2002). Storage Area Network Fundamentals. Cisco Press. p. 268. ISBN 1-58705-065-X. 
  11. ^ McKinstry, Jim. "Server Management: Questions and Answers". Sys Admin. Archived from the original on 19 January 2008. 
  12. ^ Kozierok, Charles M. (17 April 2001). "RAID Levels 0+3 (03 or 53) and 3+0 (30)". The PC Guide.