RAID (redundant array of independent disks or redundant array of inexpensive disks) is a way of storing the same data on multiple hard disks to protect data in the case of a drive failure. However, not all RAID levels provide redundancy. Data is distributed across the drives in one of several ways, referred to as RAID levels, depending on the required level of redundancy and performance. It is important not to confuse RAID with BACKUP as RAID cannot replace BACKUPS, only protect from drive failure.
RAID is composed of 4 elements: STRIPING, MIRRORING, PARITY, and INDEXING.
- STRIPING – this is when data is divided across 2 or more drives and not all the data is always found on each drive.
- MIRRORING – this is when a complete copy of all the data is found on more than one disk.
- PARITY – this is when a MIRROR is STRIPED. Thus there are multiple copies of the data spread across multiple drives.
- INDEXING – this is used to keep track of where the data is kept on each drive.
The different RAID levels
- RAID 0 (min 2 disks) – pure striping and no mirror or parity. Also known as No-RAID or RAID-None as it provides NO REDUNDANCY. A failure of a single drive in a RAID 0 array corrupts ALL the data. RAID 0 is usually used by gamers to provide more performance. The total space available is the sum of all the disk capacities i.e. 3 1TB drives = (3 x 1TB) = 3TB available space. Performance is increased as data reads/writes are spread across all drives.
- RAID 1 (min 2 disks) – This is pure data mirroring with no striping. Data is always written in identical copies to all drives. Performance is as fast as the slowest drive. Space is limited to the size of the smallest drive, regardless of how many drives are used. The array can survive disk failure as long as at least one drive remains functional.
Uncommon RAID types
- RAID 2 (historic) – consists of bit-level striping with dedicated Hamming-code parity. All disk spindle rotation is synchronized and data is striped such that each sequential bit is on a different drive. This RAID level is no longer in use and is of historic interest only.
- RAID 3 (historic) – consists of byte-level striping with dedicated parity. All disk spindle rotation is synchronized and data is striped such that each sequential byte is on a different drive. This RAID level is also no longer in use and is of historic interest only.
- RAID 4 (proprietary) – consists of block-level striping with dedicated parity. This level was previously used by NetApp, but has now been largely replaced by a proprietary implementation of RAID 4 and is not in common use outside proprietary environments.
Industrial Strength RAID
- RAID 5 (min 3 disks) – this is compromised of striping and distributed mirroring called PARITY. This provides the performance benefits of RAID 0 with added redundancy. The downside is that space (on equal-sized drives) is always equal to (Drive Capacity x (Number of Drives – 1)). RAID 5 can survive a SINGLE drive failure only. RAID 5 is slowly phasing out as the very act of rebuilding an array may cause more drives to fail.
- RAID 6 (min 4 disks) – this consists of block-level striping with double-distributed parity. Double parity provides fault tolerance up to two failed drives. With a RAID 6 array, using drives from multiple sources and manufacturers, it is possible to mitigate most of the problems associated with RAID 5. Available space is thus approx. (Drive Capacity x (Number of Drives – 2)).
Other RAID levels
Hybrid RAID levels combine existing levels. RAID 10 = RAID 1+0, RAID 50 = RAID 5+0, RAID 60 = RAID 6+0
There are also hardware/software raid combinations and specialized hardware raid types which we will not cover here.
We will discuss HARDWARE, SOFTWARE RAID, and HOT SPARES in our next RAID article.