What is RAID?
Redundant Array of Independent (originally Inexpensive) Disks (RAID) storage has revolutionized enterprise data storage technology, building in the peace of mind of redundancy (from RAID 1 & above) which can greatly minimize downtime suffered due to individual drive failures.
Unfortunately though, RAID storage isn't a perfect technology and as a result data loss can still occur.
The definition of RAID is in the name of the system itself. Standing for Redundant Array of Independent Disks, RAID literally means redundant bundling of independent disks – a cluster of multiple hard drives to get a single logical partition. Depending on the purpose, RAID increases the performance of accessing and writing data, while improving the security of the information.
RAID is a technology that supports the use of 2 or more hard drives in various configurations for the purposes of achieving greater performance, reliability and larger volume sizes through the use of consolidating disk resources and parity calculations.
A number of standard configurations were designed which are referred to as levels. There were five RAID levels originally created, but many more variations have evolved, notably several nested levels and many non-standard levels (mostly proprietary).
So, what do the RAID levels mean? The numbers simply refer to the configuration of the RAID. Knowing that all RAID systems store data efficiently, the choice of system will be based on your own personal needs. The RAID 1 for example meets the needs of performance and reliability. The RAID 5 is a good choice if you are looking for both performance and fault tolerance.
RAID System Overview
RAID is a term used for computer data storage schemes that spread and or replicate data among multiple hard disk drives. RAID was designed with two key goals: to increased data reliability and increased I/O (input/output) performance.
A RAID combines physical hard disks into a single logical unit by using either special hardware or software. Hardware RAID solutions can come in a variety of styles, from built onto the motherboard or add in cards, up to large enterprise NAS or SAN servers. With these setups the operating system is unaware of the technical workings or the RAID. Software solutions are typically implemented in the operating system.
There are three key concepts in RAID:
- mirroring, the copying of data to more than one disk
- striping, the splitting of data across more than one disk
- error correction, where redundant data is stored to allow problems to be detected and possibly fixed (known as fault tolerance)
Different RAID levels use one or more of these techniques, depending on the system requirements.
RAID is traditionally used on servers, but can be also used on workstations. The latter is especially true in storage-intensive computers such as those used for video and audio editing.
RAID System History
RAID is the acronym for Redundant Array of Inexpensive Disks (Redundant Array of Independent Disks). The concept was born at the University of California, Berkeley, where David A. Patterson, Garth Gibson and Randy H. Katz were collaborating to produce operational prototypes of five levels of RAID storage systems. The result of their research has formed the basis of the complex RAID storage systems that exist today. Today IBM holds the intellectual property rights on RAID 5.
The design of the RAID storage system was aimed at improving the performance, recovery, reliability, and scalability of storage. The result was a unique redundancy concept that offers data recovery capabilities in the event that a drive fails in the system. In fact, RAID controller cards have acquired the ability to continue reading and writing data even if a disk is "offline".
The different types of RAID
Ontrack offers data recovery services for all major RAID architectures. This includes, RAID levels 0, 00, 1, 10, 1E, 1E0, 2, 3, 4, 5, 50, 5E, 5EE, 6 and 60. We also recover from a large number of proprietary RAID arrays.
The continuous development of our software tools ensures that we use the latest state-of-the-art and proprietary techniques to achieve the best possible data recovery. In addition, the research & development team assists our engineers in data recovery when they are confronted with unusual proprietary RAID arrays, through custom tools created especially for the occasion.
We are recommended by most RAID vendors such as HP, Dell, Adaptec, IBM, Intel, Promise, EMC, NetApp, and LSI Logic.
RAID configuration, including the number of disks used, determines the type. As a reminder, RAID stands for Redundant Array of Independent Disks and is a storage solution that distributes data across multiple small disks that together form a single system. In addition to being less expensive, this device has a high level of performance and data security as RAID tolerates breakdowns better.
Today, there are nearly twenty types of RAID, if not more including configurations sometimes considered obsolete- among which is the RAID 2. Of all these RAID configurations, the most common are the RAID 0, RAID 1, RAID 10, RAID 5 or RAID 6.
RAID 0 uses two or more disks and provides fast access to data but no redundancy. RAID 1 also uses two disks but writes duplicate information to each drive. If one of the disks is damaged, you will find your data on the other. To benefit from the performance of RAID 0 and the security offered by RAID 1, RAID 5 was created. With a good distribution of data, RAID 5 combines speed and fault tolerance. RAID 6 has the same advantages as RAID 5, but with the added bonus of tolerating two drive failures instead of one.
RAID 0 |
RAID 0 is the classic data stripping configuration, where data is written across all drives resulting in faster access. However, this performance carries a risk, if one or more disks cause a disaster in a RAID 0, then a serious loss of data can occur.
An example of a data recovery situation: a file was created that occupied data stripes 1 – 4, if drive 2 were to fail and the 2nd stripe lost, the file would most likely become corrupted. Another way to look at it would be if one drive fails, the largest possible good file would have to be smaller than the combined size of the remaining stripes.
|
RAID 1 |
This is the RAID level that sets up disk mirroring; the data on the primary disk is duplicated onto the other. There are no performance gains for this RAID, but if one drive fails, then you will have a backup on the second one.
|
RAID 2
|
RAID 2 comprises of data striping at a bit level with a dedicated parity drive. This level uses hamming error detection codes and is intended for use on drives that do not have built-in error detection. For this reason, RAID 2 is not commonly used anymore.
|
RAID 3 and 4
|
RAID 3 and 4 both use striping with a dedicated parity drive, the difference between the two is that RAID 3 stripes at the byte level while RAID 4 stripes at the block level. RAID 3 is seldom used these days due to the poor performance of byte level striping, RAID 4 is better with block level striping but still suffers slower write performance due to the parity having to be updated on every write.
|
RAID 5 |
RAID 5 is generally considered to be the best compromise between fault tolerance, speed and cost. The system divides the data in the same way as a RAID 0, but also distributes the parity data on all the hard disks that compose it. Each vendor has its own specific way of distributing parity information on disks, but it will almost always be one of these four ways: left asymmetric, left symmetric, right asymmetric and right symmetric.
The direction of parity is simple to identify, as you can see it "moves" both right and left. In asymmetric RAIDs the data strips ignore parity, they skip it until they reach the next available space. Symmetric RAIDs handle data strips in a slightly more complex way, once the data encounters a parity block, they move sideways and down to the next stripe set.
|
RAID 6 |
The RAID 6 system is an extension of the RAID 5: it performs the same data distribution and adopts a similar division of parity, but generates an additional data block for each stripe. This way even if two disks were to fail simultaneously the RAID would not suffer data loss. In smaller RAIDs, the possibility of two hard drives failing simultaneously is reduced, but as the size of the RAID array increases, the chance of failures increases.
As for performance, they are very similar to those of RAID 5: the writing speed is high, because the data and parity blocks can be written on all disks, but the read access is slow due to the delay generated by the jump of two parity series.
|
RAID 0+1 and 1+0 |
To gain performance and/or additional redundancy the standard RAID levels can be combined to create hybrid or nested RAID levels, RAID types that provide redundancy are typically combined with RAID 0 to boost performance.
The advantage is that when a drive fails in one of the level 0 arrays, the missing data can be transferred from the other array. However, adding an extra hard drive to one stripe requires you to add an additional hard drive to the other stripes to balance out storage among the arrays.
A disadvantage for this configuration is that it cannot recover from two simultaneous drive failures, unless the drives are from the same data stripe. In the diagram; if drives 1 and 5 failed the RAID could be rebuilt, but if 1 and 4 failed it would result in data loss.
|
RAID 10 |
RAID 10 is configured so that the RAID 0 is split across two RAID 1 arrays.
A big advantage to RAID 10 is all but one drive from each RAID 1 array could fail without any data loss. However, if the failed drive is not replaced, the single working drive in that array becomes a single point of failure for the entire system, if that last drive goes all data within the array is lost.
The RAID nesting technique can be used for other RAID levels as well, most commonly on RAID 5 but it can also be applied to other levels like 3 and 6, producing levels such as 50, 51, 60, 61, 30 and 03.
|
RAID 50
|
RAID 50, also called RAID 5+0, combines the straight block-level striping of RAID 0 with the distributed parity of RAID 5. As a RAID 0 array striped across RAID 5 elements, minimal RAID 50 configuration requires six drives. One drive from each of the RAID 5 sets could fail without loss of data; for example, a RAID 50 configuration including three RAID 5 sets can tolerate three maximum potential simultaneous drive failures (but only one per RAID 5 set). Because the reliability of the system depends on quick replacement of the bad drive so the array can rebuild, it is common to include hot spares that can immediately start rebuilding the array upon failure.
|
RAID 51
|
RAID 51 is implemented by mirroring or implementing RAID 1 on an entire RAID 5 array in addition to the parity information. It is generally created using software and hardware-based RAID techniques where RAID 1-based mirroring is implemented through an operating system on the hardware-based RAID 5 array. RAID 51 is specifically designed for enhanced backup availability and high fault tolerance capabilities. RAID 51 is considered a parity set of mirrored disks, hence RAID 5 is followed by RAID 1. It can remain operational or protect from data loss even after losing four of the six minimum configured disks.
|
Commonly Used RAID Vocabulary
RAID: RAID is a technology that supports the use of 2 or more hard drives in various configurations for the purposes of achieving greater performance, reliability and larger volume sizes through the use of consolidating disk resources and parity calculations.
Parity: A mathematical calculation which allows drives within a RAID array to fail without the loss of data. The simplest way to show this is the equation: A + B = C. You can remove anyone of the letters from above and work out its value from the 2 remaining. I.e. if B was removed so the equation looked like A + ? = C, then B's value can be worked out by moving the A, so B = C – A. This is obviously a simplistic way of describing it, to fully understand it in a RAID sense, knowledge of binary and the logical XOR expression is required.
Mirroring: The data from 1 or more hard drives is duplicated onto another physical disk(s).
Striping: The method that data and parity can be written across multiple disks. The data is written across the drives in a sequential order until the last drive, it then jumps back to the first and starts a 2nd stripe.
Block: A block is the logical space on each disk where the data is written, the amount of space is set by the RAID controller and most commonly would be 16KB to 256KB in size. The data will fill up the space until the limit is reached and then move onto the next drive, until the last drive when it will jump to the start of the next stripe.
Left / Right Symmetry: The symmetry in a RAID controls how the data and parity are distributed across the drives. There are four main styles of symmetry, which one is used depends on the RAID vender. Some companies also make proprietary styles depending on their business needs.
Hot Spare: There are a few different methods for dealing with drive failures within a RAID, one is the use of a Hot Spare. It is a spare disk which can be used in place of the failed one.
Degraded mode: This happens when a drive in the RAID becomes unreadable, the drive is then considered bad and is withdrawn from the RAID. The new data and parity are then written to the remaining drives within the RAID, if any data is requested from the failed drive it is worked out with the parity on the others. This degrades the performance of the RAID, hence degraded mode.