RAID is an acronym that stands for “redundant array of independent disks”. It is a technology that is geared to provide greater storage reliability by combining numerous low-cost, less-reliable disk drive components into a reasonable unit where all drives are interdependent.

Historically, RAID was first seen by Norman Ken Ouchi, when in 1978 he was awarded a U.S. patent called “System for recovering data stored in failed memory unit.” It was later termed RAID 5 with full stripe writes. The patent also states that, at that time, disk mirroring (which was later termed RAID 1), and protection with dedicated parity (which would later be termed RAID 4) were prior art. The actual term RAID was defined in 1987 by David A. Patterson, Garth A. Gibson and Randy Katz. They wrote a paper called “A Case for Redundant Arrays of Inexpensive Disks (RAID).” The paper suggested several combinations of drives with hypothetical advantages and disadvantages. As time has gone on, many different types of RAID have been developed.

Originally, there were five RAID levels that were the standard methods. However, many more levels have been developed since. Nested RAID levels are unmistakably portrayed by connecting the numbers representing the RAID levels. The digits in a nested RAID are in the order that the array was made. For example, RAID 0+1 are striped sets in a mirrored set that provide fault tolerance and improved performance, and RAID 1+0 are mirrored sets in a striped set that provide fault tolerance and improved performance as well.

In 1996, a new classification of RAID was introduced that divided it into three types. The first type, failure-resistant disk systems, protects against data loss due to disk failure. The second type, failure-tolerant disk systems, protects against loss of data access due to failure of any single component. The final type, disaster-tolerant disk systems, consists of two or more independent zones that provide access to stored data. There are also many configurations that have non-standard levels. For example, Linux has developed a RAID 10, which implements a broad RAID driver that defaults to a standard RAID 1 but can have any number of drives. Also, IBM has come up with a RAID 1E, which is an enhanced version of a level one that is similar to a RAID 10 array.

The data allocation between multiple drives can be managed by either hardware or software. Software-based RAID is now offered by most computer operating systems. A software layer is placed above the disk device drivers to form an abstraction layer between the logical drives and physical drives. Different operating systems support different RAID levels. For example, Linux supports RAID 0, RAID 1, RAID 4, RAID 5, and RAID 6. Software RAID, in comparison to hardware RAID, has its advantages and disadvantages. The software has to run on a host server attached to storage, and the server’s processor must use valuable processing time to run the RAID software. As the rate of data processing escalates with the number of disks in the array, so does the processing requirement. On the other hand, software RAID implementations may have more complex algorithms than hardware RAID implementations, therefore making them capable of increased performance. Hardware-based RAID controllers use different disk layouts, which makes it impossible to distance controllers from different manufacturers. A hardware implementation of RAID requires at least one special-purpose RAID controller, such as a PCI expansion card. The controller and disks can be in a computer or a separate case. Many hardware implementations are equipped with a read/write cache, and they provide guaranteed performance. Firmware-based RAID is another less common implementation.

For the most part, RAID is pretty reliable. Its rates of logical and system failures are fairly low. However, correlated failures in RAID have caused problems. Also, the disk system can recognize the write operation as soon as the data is in the cache, and this option is generally chosen without any protection. If a power outage or a system hang up should occur, a substantial amount of data would be lost. Equipment compatibility proves to be another issue when different storage methods between various RAID controllers are not compatible, thus making it impossible to read a RAID array on different hardware.


comments powered by Disqus