Recently I noticed a 1TB (terabyte) external hard drive on sale, and thought it would be great for storing my digital photos and digital videos. A terabyte is 1000 gigabytes so it is quite large, at least by today’s standards. When I looked closely at the box for the hard drive I noticed that it mentioned RAID 0. I have been noticing desktop hard drives taking advantage of RAID, which was traditionally reserved for servers.
In this post I will provide a brief overview of RAID, how it started and the various levels of RAID.
Brief History of RAID
RAID is an acronym for Redundant Array of Independent Disks, and was designed to improve the fault tolerance and performance of computer storage. In 1987 the University of California at Berkeley developed RAID so that a group of smaller, and less expensive hard drives could be connected using special hardware and software so they appear as one large drive. Increases in fault tolerance and performance could be realized when using multiple drives instead of a single drive.
There was one problem, however, with this setup. Using multiple drives to act as one drive didn’t increase reliability as it would be more likely to have a drive failure with more than one drive as with only a single drive. To correct this issue, the Berkeley scientists proposed six levels of RAID. Each level provide varying degrees of fault tolerance, storage capacity, performance or a combination of all three.
Levels of RAID
In 1992 an organization called the RAID advisory board or RAB was formed to standardize and educate on RAID. The RAB developed specifications for the various RAID levels and RAID hardware. There are currently seven standard RAID levels defined by the RAB:
RAID Level | Description |
---|---|
0 – Striping | File data is written simultaneously to multiple drives in the RAID array. The multiple drives act as a single larger drive, which offers an increase in read/write performance but very low reliability. At least two drives are needed to implement. |
1 – Mirror | Data that is written to one drive is duplicated on another, which provides excellent fault tolerance (reliability) since data can be recovered if one drive fails. This level doesn’t provide any increase in performance and requires at least two drives to implement. |
2 – Bit-level ECC | The data is split one bit at a time across multiple drives and Error Correction Codes (ECC) are written to other drives. This level is intended for drives that don’t incorporate ECC, which all hard drives currently include. High data rates and good fault tolerance are provided, but a large number of drives are needed. |
3 – Striped with parity | This level combines RAID level 0 with an third drive used for parity information. A higher level of data integrity is achieved because data usually can be rebuilt if one drive fails. Two drives are required for the data, one for parity, which means three are needed for RAID level 3. |
4 – Blocked data with parity | Similar to RAID level 3 with the exception being that data is written in larger blocks to the independent drives. This increases read performance with larger files. Three drives are needed to implement this level. |
5 – Blocked data with distributed parity | This level is similar to RAID 4 but offers increased performance since the parity stripes are distributed over a series of hard drives. To implement this level at least three drives are needed. |
6 – Blocked data with double distributed parity | Similar to RAID level 5 but the parity information is written twice using two different parity schemes. This provides even better fault tolerance in case multiple drives fail. This level requires at least two drives for data, and two for parity for a total of four drives. |