What are Redundant Array of Inexpensive Disks (RAID) and what are the types of RAID?
Redundant array of inexpensive disks (RAID) is a technique of pooling multiple computer disks in an enterprise. RAID increases read/write speeds, fault tolerance and resilience to computer systems. And a RAID controller is employed as interface to the logical disk drives. Moreover, it is a family of integrated technologies that is mainly used for improving the performance, reliability or size of disk based storage systems in an organization. Besides, it is used to create virtual disk volumes over an array of disk storage device and it can be configured in such a way that the failure of one disk drive in the array of disks will not affect the availability of data on the overall storage system.
RAID configuration is usually implemented on a hardware device known as a disk array. And the disk array is a chassis through which several hard disks can be installed and connected to a server that requires a storage service. Furthermore, the individual hard disk drives can be in a “hot swappable” arrangement in the chassis to repair individual disk failures while the array is still operating. If the disk arrays are configured with RAID, a failure of an individual disk drive will not have an effect on the overall availability of the disk arrays to the servers to which it is connected. Because data is separated into multiple units on the disk arrays using a process known as “striping”. And parity data can be used to easily rebuild the data of the lost disk. In addition, the defective disk drive can be easily removed and replaced while the disk arrays are still fully functioning.
There are many options of RAID configuration, commonly known as “levels”, that organizations can select from depending on their requirements. Some of the common RAID configurations include the following:
- RAID-0 (Block-level Stripping): a striped volume configuration in which a disk volume splits data evenly across two or more disks to improve performance, but provides no fault tolerance features.
- RAID-1(Mirroring): This configuration creates duplication of data, meaning data written to one disk drive in the array is also written to another disk drive in the array of disks. It makes the volume of the storage more reliable through the preservation of the data even if one disk in the array fails.
- RAID-2 (Bit-level Striping): It manages bit-level striping with error correction features. But RAID-2 is not commonly used because computational overhead exceeds its performance benefits.
- RAID-3 (Byte-level Striping with Parity Bits): It stripes data across multiple disk drives and a parity bit is established for data rebuilding in the event of a single disk drive failure.
- RAID-4 (Block-level Striping with Parity Bits): Employs data striping at the block level by adding dedicated parity disk. And the parity disk allows the rebuilding of data in the event that one of the other disks in the array fails.
- RAID-5 (Block-level Striping with Interleaved Parity): This is similar to RAID 4 block level striping with the exception that the parity data in RAID-5 is distributed evenly across all of the disks instead of dedicated on a single disk. And it permits the failure of one disk without losing data. It supports interleave parity stored across 3 or more disk drives.
- RAID-6 (Block-level Striping with Duplicate Interleaved Parity): An extension of RAID-5, where two parity blocks are used instead of one parity block. The advantage of RAID-6 over RAID-5 is that it can withstand the failure of any two disk drives in the array at a time, instead of a single disk. For this reason, it is known as double parity and two disks can fail in the array of disks. Because, it stores parity bits on two disks with the purpose of protecting against the failure of two separate disks. However, it requires a minimum of 4 disk to implement.
- RAID-10 (Striping + Mirroring): This RAID configuration is combination of striping (RAID-0) and mirroring (RAID-1). It employs striping for high performance and mirroring for redundancy or fault tolerance.