This article on RAID – Part 1, is one of an ongoing series of articles in the Storage Switzerland “What Is” series. These articles provide a refresher on key fundamentals of various storage technologies, for those who are new to, or considering entering the IT field, and those who simply wish to “brush up” on the basics.
In the late 1980’s through the early 1990’s, companies were experiencing dramatic increases in the amount of data they needed to store on their file servers. But increasing server storage capacity by adding more high capacity hard drives was becoming an increasingly expensive solution. A more cost effective alternative was needed and RAID was created by David Patterson, Garth Gibson and Randy Katz of the University of California at Berkeley to meet this need.
So what is RAID? Simply stated, RAID (Redundant Array of Independent Disks) is a system that allows a large number of inexpensive hard drives to be linked together to form a single high capacity storage device which offers superior performance, storage capacity and reliability over the older storage solutions.
RAID provides four primary advantages over stand alone disks.
- Redundancy – Storing the same data on different places on multiple hard disks provides redundancy of that data thus increasing fault tolerance. This was the most important factor in the development of RAID for server environments because it allowed a type of backup of the data in the array in the event of a drive failure. If a drive failed it could be swapped out for a new one or an existing redundant drive could be used without needing to shut down the system. This feature is referred to as hot-swappable. There are various methods of redundancy which depend on the version of RAID being used.
- Higher Performance – Performance can be improved by placing data on multiple disks so that I/O (Input/Output) operations can be overlapped in a balanced manner. Essentially it is a form of parallel I/O processing that spreads the workload over a number of disks thus increasing performance. The level of performance is primarily dependent on the version of RAID used along with the number of drives in the array and the controller although there are other factors which also impact the performance of the array.
- Increased Fault Tolerance – The use of multiple disks increases the MTBF (mean time between failures) so storing data redundantly in this manner increases fault tolerance.
- Lower Costs – Using a number of smaller, less reliable but less expensive drives to equal the storage capacity of a more expensive single high capacity drive results in lower costs.
The RAID physical volumes appear as a single, logical hard drive to the OS (Operating System). RAID technology utilizes a method, known as disk striping, to partition the storage space on each drive into logical units that can range from a single sector of 512 bytes up to several megabytes. These stripes on the disks of an array are interleaved and addressed in order. These striping methods are referred to as RAID levels.
It should be understood that the RAID levels refer to specific individual techniques or methods for placing the data on the drives in the array rather than a progressive hierarchy of some type where each level builds on a previous one.
In the initial definition of RAID levels back in 1988, levels 1 through 5 were defined. Since then a number of other levels have been added to the mix. In this entry we will take a brief look at the original RAID levels. We will examine them in more detail along with the additional levels in the next part of this series.
Original standard RAID levels were defined as:
RAID 1: Disk Mirroring
Data is written to two disks and both disks are peers with no master or primary disk. This method is also referred to as disk mirroring and provides minimal fault tolerance through data duplication. Read performance is also improved since both disks can be read at the same time.
RAID 2: Bit level striping with Hamming code ECC (Error Correction Code)
Data is split at the bit level and spread over a number of data disks and redundancy disks. It provides high data transfer rates and fault tolerance through Hamming error correction. The advent of Hamming error correction in hard drives made it obsolete and it is no longer in use.
RAID 3: Virtual Disk Blocks
Byte level striping across multiple disks with an additional disk that calculates and stores parity information. It provides a good fault tolerance since all data remains fully available if a disk fails.
RAID 4: Dedicated Parity Disk
Block level striping across multiple disks with a cache added to increase read and write performance. Striping blocks rather than bytes, combined with a cache provides higher performance than RAID 3 along with good fault tolerance since data remains fully available in the event a disk fails.
RAID 5: Striped Parity
Identical to RAID 4 with added rotating parity protection. Provides higher performance than RAID 4 since it eliminates the single parity disk bottleneck.
In part 2 of this series we will take a more in-depth look at the various RAID levels as well as other factors that affect their performance for various applications.