Skip to content
Search

Redundant Array of Independent Disks

lastmod 2020-07-04created 2015-04-228 edits

Redundant Array of Independent Disks (or Redundant Array of Inexpensive Disks) is a technology that splits and stores partially redundant data across multiple hard disks. There are various ways of splitting the data, called levels, and depending on the level it can serve different purposes, such as increasing the reliability of storage or improving overall performance.

When first proposed there were five levels; later, various other levels, including nested levels, were added.

RAID combines multiple disks so they operate as a single logical disk, and there are hardware and software approaches. The hardware approach makes the disks appear to the operating system as a single disk. The software approach is mostly implemented within the operating system and makes the disks appear to the user as a single disk.

Standard RAID levels

A summary of commonly used RAID levels:

RAID 0
Striped set without parity (error detection) (at least 2 disks). Its advantage is improved performance plus additional storage, but it cannot guarantee data safety in case of failure. A disk failure destroys the array, and the more disks installed, the more likely such destruction is. A single disk failure destroys the array completely, because when data is written to RAID 0, it is split into multiple pieces. The number of pieces matches the number of disks in the drive. The pieces are written to the same sector on each disk simultaneously. Small slices of a complete chunk of data can be read from the drives in parallel, and this kind of array provides high bandwidth. However, when a sector on one of the disks fails, the matching sectors on all the other disks are marked unusable, because part of the data is not corrupted. Because RAID 0 provides no error detection, it cannot recover from any error. Adding more disks to the array allows higher bandwidth, but brings a greater risk of data loss.
RAID 1
Mirrored set without parity (error detection) (at least 2 disks). Provides fault tolerance against disk errors and single disk failure. Read performance improves when using an operating system with multithreading that supports split seeks. However, there is a slight performance penalty when writing. The array keeps working as long as at least one drive is functioning.
RAID 3 and RAID 4
Striped set with dedicated parity (dedicated) (at least 3 disks).
RAID 5
Striped set with distributed parity (distributed) (at least 3 disks).
RAID 6
Striped set with distributed parity (distributed) (at least 4 disks).
RAID 0+1
RAID 0+1 first stripes the disks (RAID 0), then mirrors them (RAID 1). (at least 4 disks)

With 6 disks, it stripes 3 at a time and then performs mirroring.

RAID 10(RAID 1+0)
RAID 10 first mirrors the disks (RAID 1), then stripes them. (at least 4 disks)

With 6 disks, it mirrors 2 at a time, then stripes the 3 mirrored sets.

RAID 50(RAID 5+0)
Stripes (RAID 0) striped sets with distributed parity (distributed) again. (at least 6 disks)
RAID 1E
A combination of mirroring and data striping. (at least 3 disks).

Stripe alignment

RAID stripe alignment, partition alignment based on stripe boundaries.

Data striping

See the corresponding page.

Stripe Size

Think of Stripe Size as the unit of I/O between the RAID controller and a single disk.

Read Policy

  • Read Ahead
  • No Read Ahead
  • Adaptive Read Ahead

Write Policy

  • Write Through
  • Write Back

Disk Cache Policy

Access Policy

Hot spare

See also

Favorite site

author Zer0 sitemap