This is a paper about what RAID is. It was written by Marko Bekric, for South East European University. It was submitted to Electronics Fanboy by the author to be posted.
Redundant Array of Independent Disks [RAID]
By, Marko Bekric
In the need of improvements in data storage, also secondary storage, the RAID has been invented. It’s an acronym for Redundant Array of Independent Disks. This technology has made the disk storage system perhaps the main focus of concern in improving overall computer system performance.
RAID involves the configuration of two or more drives in combination for fault tolerance and performance. RAID disk drives are used frequently on servers and are increasingly being found in home and office personal computers. RAID technology is actually a method of creating hard drives. The exact meaning of RAID has been much debated and much argued. The use of “Redundant” is, in itself, a contentious point. RAID was formerly called Redundant Array of Inexpensive Disks. There are various designs of RAID systems, and they have two key targets: to increase data reliability and to increase input/output performance
 The RAID concept was first invented by David A. Patterson, Garth A. Gibson and Randy Katz at the University of California, Berkeley in 1987, firstly as Redundant Arrays of Inexpensive Disks. Later, there has been an attempt by RAID manufacturers of reinventing the term to describe a redundant array of independent disks as a means of dissociating a low-cost expectation from RAID technology. As a result of that research, the basis was formed of today’s complex RAID storage systems.
3. RAID STANDARD LEVELS
There are three common characteristics about RAID to be shared :
- RAID is a set of physical disk drives viewed by the operating system as a single logical drive.
- Data are distributed across the physical drives of an array in a scheme known as striping, described subsequently.
- Redundant disk capacity is used to
store parity information, which guarantees data recoverability in case of a disk failure.
From that point of view, there are levels in RAID technology, such as :
- RAID 0 (block-level striping without parity or mirroring) provides improved performance and additional storage but no redundancy or fault tolerance (making it not true RAID, according to the acronym’s definition).
- RAID 1 (mirroring without parity or
- striping), where data is written identically to multiple disks (a “mirrored set”).
- RAID 2 (bit-level striping with dedicated Hamming-code parity), where all disk spindle rotation is synchronized, and data is striped such that each sequential bit is on a different disk. Hamming-code parity is calculated across corresponding bits on disks and stored on one or more parity disks. Extremely high data transfer rates are possible.
- RAID 3 (byte-level striping with dedicated parity), where all disk spindle rotation is synchronized,
and data is striped such that each sequential byte is on a different disk. Parity is calculated across corresponding bytes on disks and stored on a dedicated parity disk. Very high data transfer rates are possible.
- RAID 4 (block-level striping with dedicated parity) is identical to RAID 5 (), but confines all parity data to a single disk, which can create a performance bottleneck. In this setup, files can be distributed between multiple disks. 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; drive failure requires replacement, but 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
- RAID 6 (block-level striping with double distributed parity) provides fault tolerance from two drive failures; array continues to operate with up to two failed drives. This makes larger RAID groups more practical, especially for high-availability systems.
We can mention that there is no basic RAID level numbered larger than 9. There are nested RAIDs who are usually unambiguously described by attaching the numbers. Those numbers indicate the RAID levels, sometimes with a “+” in between. The order of the digits in a nested RAID designation where the nested array is built: for RAID 1+0 first pairs of drives are combined into two or more RAID 1 arrays (mirrors), and then the results which are RAID 1 arrays are combined into a RAID 0 array (stripes). It is also possible to combine stripes into mirrors (RAID 0+1). The final step is called the top array. When the top array is a RAID 0 (such as in RAID 10 and RAID 50), most vendors omit the “+”, therefore RAID 5+0 is clearer.
4. RAID Parity
 There is an error protection scheme in many RAID levels which is called “parity”. This calculation is a one of the most used methods in information technology to provide fault tolerance in a given set of data. How does it work? It works with some mathematic and arithmetic functions. In Boolean logic, there is an operator called “exclusive or”, or shorthand, “XOR”, meaning “one or the other, but not neither nor both.” For example:
0 XOR 0 = 0 0 XOR 1 = 1 1 XOR 0 = 1 1 XOR 1 = 0
This operator has the main role in parity data, it is created and used within an array. It is widely used for the protection of data, and also for the recovery of missing data.
For example, we have simple RAID made up of six hard disks (four for data, one for parity, and one for use as hot spare), where each drive is capable of holding just a single byte worth of storage. This is how our initial RAID configuration would look, considering that there is no data has yet written to it:
Drive #1: -------- (Data) Drive #2: -------- (Data) Drive #3: -------- (Data) Drive #4: -------- (Data) Drive #5 -------- (Hot Spare) Drive #6 -------- (Parity)
Another step, we will write some random bits to each of our four data drives.
Drive #1: 00101010 (Data) Drive #2: 10001110 (Data) Drive #3: 11110111 (Data) Drive #4: 10110101 (Data) Drive #5 -------- (Hot Spare) Drive #6 -------- (Parity)
Every time we write something on our data drives, calculation parity is needed to ensure we can recover if we have a disk failure. For calculating the parity for this RAID, we need to take the XOR of each drive’s data. The resulting value is our parity data.
00101010 XOR 10001110 XOR 11110111 XOR 10110101 = 11100110
“11100110” is the parity data of our example. We will now write that data to our dedicated parity drive:
Drive #1: 00101010 (Data) Drive #2: 10001110 (Data) Drive #3: 11110111 (Data) Drive #4: 10110101 (Data) Drive #5: -------- (Hot Spare) Drive #6: 11100110 (Parity)
Now, lets suppose one of those drives has disappeared. We can pick any, but, for this example, let’s say that Drive #3 has failed. In order to know what the contents of Drive #3 were, we perform the same XOR calculation against all the remaining drives, and substituting our parity value (11100110) in place of the missing/dead drive:
00101010 XOR 10001110 XOR 11100110 XOR 10110101 = 11110111
With the complete contents of Drive #3's now successfully recovered, the data is written to the hot spare, and the RAID can continue operating as it had before.
Drive #1: 00101010 (Data) Drive #2: 10001110 (Data) Drive #3: --Dead-- (Data) Drive #4: 10110101 (Data) Drive #5: 11110111 (Hot Spare) Drive #6: 11100110 (Parity)
At this stage, someone will surely replace the dead drive with a working one of the same size. When this happens, the hot spare's contents are then automatically copied to it by the array controller, allowing the hot spare to return to its original purpose as an emergency standby drive. The resulting array is identical to the value before the failing.
Drive #1: 00101010 (Data) Drive #2: 10001110 (Data) Drive #3: 11110111 (Data) Drive #4: 10110101 (Data) Drive #5 -------- (Hot Spare) Drive #6 11100110 (Parity)
5. Data Backup
 A RAID system could be used as a main system disk, but it is not intended as a replacement for data back up. In the configurations with parity RAID will provide a backup- like feature to protect from catastrophic data loss caused by physical damage or errors on a single drive. Most of the other features of backup systems cannot be provided by RAID arrays alone. The most notable is the ability to restore an earlier version of data, which is needed to protect against software errors causing unwanted data to be written to the disk, and to recover from user error or malicious deletion. RAID can also be overwhelmed by catastrophic failure that exceeds its recovery capacity and, of course, the entire array is at risk of physical damage by fire, natural disaster, or human forces. RAID is also vulnerable to controller failure since it is not always possible to migrate a RAID to a new controller without data loss.
RAID drives can serve as excellent backup drives when employed as
removable backup devices to main storage, and particularly when located off-site from the main systems. However, the use of RAID as the only storage solution does not replace backups.
6. ADVANTAGES OF RAID
 The biggest advantage of using a RAID drive is that it increases the performance and reliability of the system. A most common example is that the RAID could be used in a server. The RAID increases the parity check and thus it regularly checks for any possibility of a system crash. Another important topic when we discuss about the RAID drives is disk stripping. The performance is much highlighting and increases a lot when the disk stripping is done. How the performance increases a lot by the disk stripping? This is actually done by the interleaving of the bytes or the group of bytes. The interleaving of this sort is done across the multiple drives. By this procedure only one disk is reading or writing the data. The reading and writing of the data are done in a simultaneous process.
The mirroring is the complete duplication of the data. Or in the other sense the mirroring is the 100% duplication of the data on two drives. The drives may be considerably the RAID 1. The concept of parity comes after the concept and application of the mirroring. The parity involves that the data from the crashed system be matched up with the data that is stored in the other disk. The parity check is the term allotted for the work it carries out. The procedure involved is done as described below: the parity is used to calculate the data in the two drives and store the results in the third drive. In case there are more than two drives the parity check is done on all of them and the results are stored on a completely altogether different drive. The preferable device may be the RAID
3 or the RAID 5. And the failed drive is replaced.
7. DISADVANTAGES OF RAID
 The biggest disadvantage regarding the RAID drive is that there needs to be written the drivers for a Network Operating System (NOS). The major fact and also the most important usage of the RAID system is that it is essentially designed and extensively used in a server. So when the server comes into the picture, there must be a network.
The device drivers should be included so as to design the system. The design is a quite complex and process as far as the RAID is concerned. Another disadvantage regarding the RAID is that it is very much difficult for an administrator to configure the RAID system. Dynamically enlarging the RAID server is also complex process; especially for those administrators who are also the LAN administrators.
Another big disadvantage is that the system should support the RAID drives. Most of the RAID drives include the different types like the RAID 0, RAID 1, and RAID 2 etc. If the server system is using a different type of RAID drive and that is not supported by the system then the problem of availability may arise.
The situation involves the determination of the RAID drives that are needed because some of the systems might support some different types of RAID drives and the other systems may support some different types of RAID drives. The administrator is allowed by the DGR technology of any network system to reconfigure the storage and dimensions of RAID System. The DGR here stands for the Storage Dimensions Dynamic Growth and Reconfiguration. Along with the disadvantages also the RAID system offers a lot of growth and stability and the advantages override these things. RAID is still the most widely used server even along with the above mentioned disadvantages.
http://portal.acm.org/results.cfm?h=1&cfid=113497075&c ftoken=44044112 [PDF e-book]
Computer Organization and Architecture – William Stallings
www.cs.cmu.edu/~garth/RAIDpaper/Patterson88.pdf [PDF e- book]