Monday, August 27, 2012

Standard RAID levels


Following is a brief textual summary of the most commonly used RAID levels.[7]
  • RAID 0 (block-level striping without parity or mirroring) has no (or zero) redundancy. It provides improved performance and additional storage but no fault tolerance. Hence simple stripe sets are normally referred to as RAID 0. Any drive failure destroys the array, and the likelihood of failure increases with more drives in the array (at a minimum, catastrophic data loss is almost twice as likely compared to single drives without RAID). A single drive failure destroys the entire array because when data is written to a RAID 0 volume, the data is broken into fragments called blocks. The number of blocks is dictated by the stripe size, which is a configuration parameter of the array. The blocks are written to their respective drives simultaneously on the same sector. This allows smaller sections of the entire chunk of data to be read off each drive in parallel, increasing bandwidth. RAID 0 does not implement error checking, so any error is uncorrectable. More drives in the array means higher bandwidth, but greater risk of data loss.
          RAID Level 0
  • In RAID 1 (mirroring without parity or striping), data is written identically to two drives, thereby producing a "mirrored set"; at least two drives are required to constitute such an array. While more constituent drives may be employed, many implementations deal with a maximum of only two; of course, it might be possible to use such a limited level 1 RAID itself as a constituent of a level 1 RAID, effectively masking the limitation.[citation needed] The array continues to operate as long as at least one drive is functioning. With appropriate operating system support, there can be increased read performance, and only a minimal write performance reduction; implementing RAID 1 with a separate controller for each drive in order to perform simultaneous reads (and writes) is sometimes called multiplexing (or duplexing when there are only two drives). WARNING: RAID 1 is not necessarily safe. In PC systems most HDD are shipped by manufacturers with "write cacheing" turned on; this gives an illusion of higher performance but at the risk of data not being written; failure for some reason (eg. power) can leave the two disks in an inconsistent state and even make them unrecoverable.
          RAID Level 1
  • In Raid Raid 10' (mirroring and striping), data is written in stripes across the primary disks and then mirrored to the secondary disks. A typical RAID 10 format consist of four drives. Two for striping and two for mirroring. A RAID 10 configuration takes the best concepts of RAID 0 and RAID 1 and combines them to provide better performance along with the reliability of parity without actually having parity such as Raid 5 and Raid 6. Raid 10 is often referred to as Raid 1+0 (mirrored+striped).
          
  • In RAID 2 (bit-level striping with dedicated Hamming-code parity), all disk spindle rotation is synchronized, and data is striped such that each sequential bit is on a different drive. Hamming-code parity is calculated across corresponding bits and stored on at least one parity drive.
          RAID Level 2
  • In RAID 3 (byte-level striping with dedicated parity), all disk spindle rotation is synchronized, and data is striped so each sequential byte is on a different drive. Parity is calculated across corresponding bytes and stored on a dedicated parity drive.
          RAID Level 3
  • RAID 4 (block-level striping with dedicated parity) is identical to RAID 5 (see below), but confines all parity data to a single drive. In this setup, files may be distributed between multiple drives. Each drive operates independently, allowing I/O requests to be performed in parallel. However, the use of a dedicated parity drive could create a performance bottleneck; because the parity data must be written to a single, dedicated parity drive for each block of non-parity data, the overall write performance may depend a great deal on the performance of this parity drive.
          RAID Level 4
  • RAID 5 (block-level striping with distributed parity) distributes parity along with the data and requires all drives but one to be present to operate; the array is not destroyed by a single drive failure. Upon drive failure, any subsequent reads can be calculated from the distributed parity such that the drive failure is masked from the end user. However, a single drive failure results in reduced performance of the entire array until the failed drive has been replaced and the associated data rebuilt. Additionally, there is the potentially disastrous RAID 5 write hole. RAID 5 requires at least three disks.
          RAID Level 5
  • RAID 6 (block-level striping with double distributed parity) provides fault tolerance of two drive failures; the array continues to operate with up to two failed drives. This makes larger RAID groups more practical, especially for high-availability systems. This becomes increasingly important as large-capacity drives lengthen the time needed to recover from the failure of a single drive. Single-parity RAID levels are as vulnerable to data loss as a RAID 0 array until the failed drive is replaced and its data rebuilt; the larger the drive, the longer the rebuild takes. Double parity gives additional time to rebuild the array without the data being at risk if a single additional drive fails before the rebuild is complete. Like RAID 5, a single drive failure results in reduced performance of the entire array until the failed drive has been replaced and the associated data rebuilt.
          RAID Level 6


The following table provides an overview of the most important parameters of standard RAID levels. In each case:

  • Array space efficiency is given as an expression in terms of the number of drives, n; this expression designates a value between 0 and 1, representing the fraction of the sum of the drives' capacities that is available for use. For example, if three drives are arranged in RAID 3, this gives an array space efficiency of 1 - (1/n) = 1 - (1/3) = 2/3 (approximately 66%); thus, if each drive in this example has a capacity of 250 GB, then the array has a total capacity of 750 GB but the capacity that is usable for data storage is only 500 GB.
  • Array failure rate is given as an expression in terms of the number of drives, n, and the drive failure rate, r (which is assumed to be identical and independent for each drive). For example, if each of three drives has a failure rate of 5% over the next 3 years, and these drives are arranged in RAID 3, then this gives an array failure rate of n(n-1)r^2 = 3(3-1)(5%)^2 = 3(2)(0.0025) = 0.015 = 1.5% over the next 3 years.

Level
Description
Minimum # of drives**
Space Efficiency
Fault Tolerance
Array Failure Rate***
Read Benefit
Write Benefit
Block-level striping withoutparity or mirroring.
2
1
0 (none)
1−(1−r)n
nX
nX
Mirroring without parity or striping.
2
1/n
n−1 drives
rn
nX
1X
Bit-level striping with dedicated Hamming-codeparity.
3
1 − 1/n log2(n-1)
RAID 2 can recover from 1 drive failure or repair corrupt data or parity when a corrupted bit's corresponding data and parity are good.
variable
variable
variable
Byte-level striping with dedicated parity.
3
1 − 1/n
1 drive
n(n−1)r2
(n−1)X
(n−1)X*
Block-level striping with dedicated parity.
3
1 − 1/n
1 drive
n(n−1)r2
(n−1)X
(n−1)X*
Block-level striping with distributed parity.
3
1 − 1/n
1 drive
n(n−1)r2
(n−1)X*
(n−1)X*
Block-level striping with double distributed parity.
4
1 − 2/n
2 drives
n(n-1)(n-2)r3
(n−2)X*
(n−2)X*


1 comment:

  1. This is an eye opener article about the RAID concept.Many people get confused on the types and benefits of RAID. This article clearly explains all those questions..Good ... Keep posting more such articles....

    ReplyDelete