Overview and History
RAID (Redundant Array of Inexpensive Disks) is a storage technology that combines multiple physical hard drive components (HDDs, SSDs, etc) into one or more logical units for the purposes of data redundancy, performance improvement, or both. This was in contrast to a previous acronym, SLED, for "Single Large Expensive Disk", used to describe mainframe disk drives, which were usually veritcal, large floor-standing cabinets.
The data is distributed across the drives in various ways, referred to as RAID levels - which are numbered, such as RAID0 or RAID5. Each RAID level, provides different features and benefits between reliability, performance, and capacity. Levels greater than RAID0 provide redundancy against (partial or complete) drive failures.
The term "RAID" was invented at UC Berkeley in 1987/88, and published as "A Case for Redundant Arrays of Inexpensive Disks (RAID)", a paper which showed that multipe cheap HDs could beat the then-popular mainframe drives both in performance, and reliability, by adding redundancy to an array of the cheap disks.
Mirroring, (RAID 1), was well-established even in the 1970s, including, for example, Tandem NonStop Systems.
- RAID 0 - data is "Striped", gatling-gun-style, to 2 or more disks
- RAID 1 - data is "Mirrored" - copied identically to each of (exactly) 2 disks
- RAID 2 - bit-level striping with ECC / parity - No Longer Used
- RAID 2 - byte-level striping with ECC / parity - No Longer Used
- RAID 4 - block-level striping with ECC / parity - Rarely Used - still supported by Linux and NetBSD, some proprietary dual-parity implementations still exist
- RAID 5 - drive-level striping with a single added drive for ECC / parity - minimum 3 drives, vulnerable to failures during rebuild
- RAID 6 - drive-level striping with dual added drives for ECC / parity - minimum 4 drives, addresses issues with failures during rebuild
Compound RAID refers to two (or , rarely, more) RAID levels combined together, to provide new features / benefits.
It is also sometimes referred to as "Hybrid RAID", although that term collides with newer usage to mean Hybrid SSD RAID, see below.
- RAID 10 - Compound raid, stripes a set of mirrored drives (RAID 1+0) - requires an even number of drives 4 or greater.
- RAID 50 - Compound raid, stripes a set of RAID5 volumes, minimum 6 drives
- RAID 60 - Compound raid, stripes a set of RAID6 volumes, minimum 8 drives
- JBOD compound RAID - adds together smaller RAID sets (typically with a volume manager) to reduce rebuild time, such as 4x 12-drive RAID6 arrays, for 48 drives
Most good-quality hardware RAID controllers these days (2020 as of this writing) allow for hot-swapping of drives, as well as a "Hot Standby" or "Hot Spare", which is a drive that's installed into to array, but idle, awaiting a detected failure - and the controller automatically swaps it in, and does a rebuild in the event of a drive failure.
Industry manufacturers hated the word 'Inexpensive" in the RAID acronym, and later tried to revisionise history by changing the RAID acronym to stand for "Redundant Array of Independent Disks", but largely failed to do so.
RAID levels 5 and above use error-correction, where one extra disk is added for "parity" - typically a simple XOR, but RAID 6 uses two separate parities based on addition and multiplication (a Galois field or Reed–Solomon error correction).
RAID can also provide the best of both speed advantage, and redundancy / data protection, by using solid-state drives (SSDs), but without the expense of an all-SSD system. For example, a (fast) SSD can be mirrored with a rotating-platter HDD - For this configuration to provide a significant speed advantage an appropriate controller is needed that uses the fast SSD for all read operations. Adaptec calls this "hybrid RAID".
See our article "Flash Storage Myths" for more information.
eRacks Systems typically recommends:
- RAID 1 - for 2 drives
- RAID 1 with with hot spare - for 3 drives
- RAID 10 - for 4-drive arrays
- RAID 5 with hot-spare - for arrays 6-12 drives
- RAID 6 with hot-spare - for arrays 8-16 drives
- JBOD RAID - Break up arrays of 24-90 drives into multiple 12-18-drive arrays, per above, but with global hot-spare(s) for all arrays
Contact us today, at firstname.lastname@example.org for how we can help you configure your RAID array(s) to best meet your needs!