Navigation



RAID Arrays

Redundant Array of Independent Disks (RAID) is a technique in which data can either be duplicated on multiple drives or have parity, which is a mathematical value that can be used to re-create missing data, written to one or more dives to prevent the failure of any single drive from causing downtime or a loss of data. It is thus a fault-tolerant solution, and like many fault-tolerant solutions, RAID can have a performance impact. RAID can be done via specialized hardware controllers or via software. Hardware solutions are generally faster and more portable; software solutions are cheaper. A group of RAID-configured drives is called a drive array or an array. The structure of an array is usually described as its level, which refers to a specific type or combination of redundancy in use. There are several defined RAID levels: RAID 0; RAID 1; RAID 2; RAID 3; RAID 4; RAID 5; RAID 6; RAID 7; RAID 10; RAID 53 and RAID 0+1. The most common of these are: RAID 0; RAID 1; RAID 5; RAID 10; and RAID 0+1.

RAID 0 is also called striping. It provides increased read and write performance but does not provide redundancy. Data is split into smaller uniform-sized blocks, or stripes, and is written to or read from multiple drives at the same time. Multiple drives with smaller stripes increase the performance, but the failure of any disk drive results in loss of all data. Best performance can be achieved when data is striped across multiple controllers with only one disk drive per controller. This RAID level is used mainly for ultra high-performance databases but should not be used in mission critical environments. RAID 0 requires a minimum of two disk drives.

RAID 1 is also called mirroring. It provides redundancy by duplicating the exact contents of one drive onto another. If one disk drive fails, the other disk drive has a complete copy of the data. This is a very reliable method of protecting data. It has a small write performance impact, because data must be written twice - once to each disk drive. It also has a read impact, because often information can be read from either or both disk drives at the same time.
A variation of this RAID level called duplexing uses a controller for each mirrored disk drive. Duplexing can improve performance while increasing fault tolerance. RAID 1 has a high level of disk drive overhead because one half of the total disk space is used for providing redundancy. This level is commonly used for high-value, moderate performance data like log files.

RAID 2 uses Hamming error correction codes (ECC). It is intended for use with drives which do not have built-in error detection. With RAID 2, each bit of data word is written to a data disk drive with its Hamming Code ECC word recorded on the ECC disk drives. On read, the ECC code verifies correct data or corrects single disk errors. Each data disk requires its own ECC disk therefore this RAID level is very expensive. Currently, RAID 2 is not implemented because practically all modern IDE disk drives and all SCSI disk drives have embedded ECC. This RAID level is not commercially viable.

RAID 3 is similar to RAID 0 in that data is stripes at a byte level across multiple disk drives. Stripe parity, which is generated on writes, is recorded on a single parity disk and checked on reads. Parity is a mathematical value that can be used to re-create missing data. This provides some fault tolerance except when the parity disk fails. Byte level striping requires hardware support to improve efficiency. RAID 3 requires a minimum of three disk drives.

RAID 4 is similar to RAID 3 except that data is striped at the block level across multiple disk drives. Stripe parity is also recorded on a single parity disk. This provides some fault tolerance except when the parity disk fails. The performance of RAID 4 for reads is the same as RAID 0. Writes, however, require that parity data be updated each time. This slows small random writes. RAID 4 requires a minimum of three disk drives.

RAID 5 is also called striping with parity. It is the most common level of RAID. It is similar to RAID 4 with the exception that parity information is distributed among all the disks. If a single disk drive fails, the original data can be re-created by doing the reverse of the parity calculation. RAID 5 exacts a performance impact for writes because of the parity calculation, but yields a performance increase on reads. RAID 5 is commonly used to provide redundancy at a lower effective overhead than RAID 1 and requires a minimum of three disk drives.

RAID 6 is an extension of RAID 5 and allows for additional fault tolerance by using a second independent distributed parity scheme, or two-dimensional parity. Data is striped on a block level across a set of disks as in RAID 5, and a second set of parity is calculated and written across all the disks. Consequently, RAID 6 provides for an extremely high data fault tolerance and can sustain multiple simultaneous disk drive failures. It is ideal for mission critical applications.

RAID 7 is a proprietary solution. It is similar to RAID 4, except that all read/write transfers are asynchronous, independently controlled and cached via a high speed system bus called x-bus. The single parity disk can be located on any of the channels. The operating system responsible for coordinating the asynchronous read/write transfers is resident on an embedded array control processor.

RAID 10 is also called RAID 1+0 or striping plus mirroring, and is a striped array of RAID 1 arrays. It can sustain multiple disk drive failure, as long as they are not in the same mirrored pair, with the same disk drive overhead as RAID 1. With RAID 10, data is striped across RAID 1 arrays to achieve high read/write performance. Recovering form a disk failure in a RAID 10 array requires rebuilding the failed disk from the data on its mirror drive. RAID 10 requires a minimum of four disk drives.

RAID 53 is implemented as a striped array of RAID 3 arrays. It has the same fault tolerance and disk drive overhead as RAID 3 but high performance are achieved because of its RAID 0 striping.

RAID 0+1 is also called mirroring plus striping. Like RAID 10, it combines the performance and redundancy benefits of RAID 0 and RAID 1. Each disk in a RAID 0+1 array is mirrored, preventing a single drive failure from causing downtime. The failure of a single disk drive, however, will result in the RAID 0+1 array becoming a RAID 0 array as all data on the array that has the failed disk will be lost. Furthermore, recovering from a disk failure requires that the complete RAID 0 that suffered the failure must be rebuilt. RAID 0+1 requires a minimum of 4 disk drives and is commonly used for database storage.


Untitled Document  

Advertisement