RAID
RAID (Redundant Array of Independent Disks)
In the single-machine era, storing and accessing data on one disk could limit I/O performance because of seeking and read/write time, while also limiting capacity. A single disk could also suffer physical failure and lose data.
In 1988, Professor D. A. Patterson and colleagues at the University of California, Berkeley, first proposed RAID in a paper as a Redundant Array of Inexpensive Disks. Large-capacity disks were expensive, so the idea was to combine smaller, relatively inexpensive disks to obtain comparable capacity, performance, and reliability at lower cost. As disk costs and prices fell, “inexpensive” ceased to be the emphasis of the name, and Independent was also used in place of Inexpensive. RAID thus became Redundant Array of Independent Disks, a change in name rather than its underlying idea.
Industry widely adopted the RAID idea and invested considerable time and money in related products. Its main advantages include:
-
Large capacity: Combining multiple disks expands storage capacity. Individual disks can exceed 1 TB; with enough disks, a RAID system can reach petabyte-scale capacity and meet many storage needs.
-
High performance: A single disk's I/O performance is constrained by interfaces, bandwidth, and other technologies, potentially becoming a bottleneck. Striping distributes I/O across members and can provide higher aggregate performance for suitable workloads.
-
Reliability: RAID levels with redundancy improve availability and reliability. Within their supported disk-failure limits, they can prevent member failures from losing data and support continued operation.
RAID0
RAID0 is a simple striping technique without parity. It combines striped disks into a larger storage space, distributes data across all members, and permits independent parallel reads and writes.
RAID0 offers low cost and high read/write performance but no redundancy. Data damaged by a member failure cannot be recovered using the array. It therefore suits applications requiring high performance but less data safety and reliability, such as disposable or reproducible video/audio storage and temporary caches.
RAID1
RAID1 is mirroring: identical data is written to a working disk and its mirror. Two-copy mirroring has 50% space utilization. Writes may affect response time, and read performance depends on implementation and workload. RAID1 provides redundancy; if the working disk fails, the system can read from a healthy mirror. A two-copy RAID1 array tolerates one member failure, but costs more to implement.
RAID2
RAID2 is a Hamming-code error-correcting disk array. It uses Hamming codes for redundant checks, adding check bits to data to detect and correct errors. This allows RAID2 to correct errors within the code's capabilities and improve data safety.
Hamming codes impose substantial redundancy overhead, and RAID2 output performance is limited by the slowest drive in the array. Its operations are bit-level, and rebuilding requires additional processing. RAID2 is therefore rarely used in modern systems.
RAID3
RAID3 is a parallel-access array with dedicated parity. It uses byte-level striping, one dedicated parity disk, and other disks for data. Corresponding units in a stripe are XORed, and the result is stored on the parity disk. A healthy array reads stripes in parallel and can perform well for suitable workloads while providing fault tolerance. If one disk fails, data can still be read and reconstructed from parity and surviving data, although performance may decrease.
RAID3 needs only one parity disk, giving relatively high space utilization. Together with parallel access, this supports high-bandwidth transfers and suits sequential access to large datasets, such as image processing and streaming media.
RAID4
RAID4 works much like RAID3 but uses a different striping granularity. Data is organized in blocks, with each block stored entirely on one disk. Blocks on different disks can be read independently, although writes still require updating the dedicated parity disk.
RAID5
RAID5 is a common RAID level, similar to RAID4 but with parity distributed across all disks instead of a dedicated parity disk. This alleviates RAID4's single-parity-disk bottleneck under concurrent writes, though parity updates still impose overhead.
RAID5 disks store both data and parity. A data block and its parity reside on different disks. If one member fails, the system can reconstruct its data from the other data blocks and parity in the same stripe.
RAID5 balances storage performance, data safety, and cost, making it a common data-protection solution. It can meet many storage needs, but suitability depends on the workload and reliability requirements.
Fail and rebuild a disk
Unlock the complete interactive lab, deeper explanations, and curated reference answers.
KNOWLEDGE QUIZ
KNOWLEDGE QUIZ
Choose an array and recover a stripe
Each disk has 1 TB. Compare usable capacity and one-disk failure behavior for two-disk RAID0, two-disk RAID1, and three-disk RAID5. In the RAID5 Lab, fail D0 and reconstruct A1 from A2=3 and Ap=5. Which arrays suit disposable data, and which offer single-member failure protection?