RAID

« Back to Glossary Index

RAID (Redundant Array of Independent Disks, originally “Inexpensive Disks”) is a data storage technology that combines multiple physical disk drives into a single logical unit to improve performance, provide fault tolerance, or both.

Rather than storing data on one drive, RAID spreads or duplicates data across several drives according to a specific scheme, called a RAID level, that determines how the drives work together. First defined by researchers at UC Berkeley in 1987, RAID became a foundational technology in servers, workstations, and storage arrays because it lets a group of standard, relatively inexpensive drives behave like a faster or more resilient single volume. Today it remains widely used in on-premises servers and storage arrays, even as newer techniques like erasure coding have taken over in many large-scale distributed systems.

How RAID Works

Every RAID level is built from a small set of underlying data-distribution techniques. Understanding these building blocks makes it much easier to understand why each RAID level behaves the way it does in terms of speed, capacity, and fault tolerance.

1

Striping

Striping divides data into fixed-size blocks (also called stripes or chunks) and writes consecutive blocks across multiple drives in a round-robin fashion. Because the drives can read and write their portions of the data simultaneously, striping increases throughput and I/O performance. Striping alone, however, provides no redundancy — if any one drive in the stripe fails, the data on the entire array is lost.

2

Mirroring

Mirroring writes an identical copy of the data to two or more drives at the same time. If one drive fails, the mirrored copy on the other drive keeps the data available with no interruption. Mirroring is simple and fast to recover from, but it is capacity-inefficient: a two-drive mirror provides only 50% usable capacity, since half the raw storage is consumed by the duplicate copy.

3

Parity

Parity-based RAID levels calculate a mathematical value (typically using an XOR operation) derived from the data blocks in a stripe and store that value alongside the data, either on a dedicated drive or distributed across all drives in the array. If a drive fails, the missing data can be reconstructed by combining the surviving data blocks with the parity information. Parity offers a middle ground between mirroring’s redundancy and striping’s efficiency — it protects against drive failure while consuming less capacity than mirroring, at the cost of additional computation on every write.

RAID Levels Explained

RAID levels are standardized configurations that apply striping, mirroring, and parity in different combinations to hit different balances of performance, capacity, and fault tolerance. There is no single “best” level — the right choice depends on the workload’s tolerance for downtime, its need for read/write speed, and how much usable capacity the deployment can afford to give up for protection. The table below summarizes the technical specifics of the most common RAID levels.

RAID LevelMinimum DrivesHow It WorksFault ToleranceTypical Use Case
RAID 02Block-level striping across all drives, no redundancyNone — any single drive failure causes total data lossVideo editing scratch disks, temporary caches, workloads where raw speed matters more than data safety
RAID 12Mirroring — identical data written to every drive in the setSurvives failure of all but one drive in the mirrorOperating system/boot drives, small servers needing simple redundancy
RAID 53Block-level striping with a single distributed parity block per stripeSurvives 1 drive failureGeneral-purpose file and application servers where cost-efficient redundancy is the priority
RAID 64Block-level striping with two independent distributed parity blocks per stripeSurvives 2 simultaneous drive failuresLarge-capacity arrays and archival storage, especially with high-capacity drives that take longer to rebuild
RAID 10 (1+0)4A striped set of mirrored drive pairs — data is mirrored, then the mirrors are stripedSurvives multiple drive failures, as long as no mirrored pair loses both of its drivesHigh-transaction databases and other I/O-intensive workloads needing both speed and redundancy

Beyond these core levels, some environments use nested (hybrid) configurations such as RAID 50 (striped RAID 5 sets) or RAID 60 (striped RAID 6 sets) to combine parity protection with the performance benefits of striping across larger drive counts. RAID 2, 3, and 4 also exist in the original specification but are rarely used in modern systems, having been effectively superseded by RAID 5 and RAID 6.

Benefits of RAID

1

Fault Tolerance

By duplicating data (mirroring) or making it mathematically reconstructible (parity), most RAID levels allow an array to keep operating, without data loss, after one or more drive failures — a critical property for systems that cannot tolerate downtime.

2

Improved Performance

Striping lets multiple drives service read and write requests in parallel, which can significantly increase throughput and reduce latency compared to a single drive, particularly for sequential I/O and multi-threaded workloads.

3

Better Capacity Efficiency Than Simple Duplication

Parity-based levels like RAID 5 and RAID 6 protect against drive failure while sacrificing far less usable capacity than full mirroring, letting organizations balance protection against cost more precisely.

4

Continuous Availability During Failure

A properly configured redundant RAID array can typically continue serving reads and writes even while it is in a “degraded” state after a drive failure, giving administrators a window to replace the failed drive and rebuild the array without taking the system offline.

Hardware RAID vs. Software RAID

RAID can be implemented in two fundamentally different ways, and the choice affects performance, cost, and management overhead.

Hardware RAID uses a dedicated RAID controller card with its own processor and often its own cache memory to manage striping, mirroring, and parity calculations independently of the host system’s CPU. This offloads the computational work (especially parity calculations) from the server, can include battery- or flash-backed cache to protect in-flight writes during a power loss, and generally delivers consistent performance. The tradeoffs are cost, a dependency on that specific controller (recovering an array typically requires an identical or compatible controller if it fails), and less flexibility.

Software RAID implements the same logic in the operating system or storage stack instead of dedicated hardware — common examples include Linux’s mdadm, Windows Storage Spaces, and RAID functionality built into many NAS operating systems and hypervisors. Software RAID is less expensive since it requires no special controller, is more portable across hardware, and has improved substantially in performance on modern multi-core CPUs. It does consume some host CPU and memory resources, and it typically lacks the battery-backed write cache that protects a hardware controller from certain power-loss scenarios, though this gap has narrowed as software implementations have matured.

RAID vs. Erasure Coding

Erasure coding is a newer, related data-protection technique that generalizes the idea behind parity RAID to much larger scales. Instead of protecting a handful of drives within a single array, erasure coding breaks data into a configurable number of fragments (commonly expressed as “k” data fragments plus “m” coding fragments) and distributes those fragments across many drives, nodes, or even geographic locations, using algorithms such as Reed-Solomon coding. This allows a system to survive the loss of several drives or entire nodes at once — often far more than RAID 6’s two-drive tolerance — while keeping storage overhead lower than equivalent mirroring would require.

RAID is generally simpler, has lower computational overhead, and is well suited to a single array or server with a modest, fixed number of drives. Erasure coding is more computationally intensive and more complex to implement, but it scales far more effectively across large, distributed clusters and is the dominant protection scheme in most modern object storage and scale-out storage systems, where data may be spread across dozens or hundreds of nodes rather than a handful of drives in one chassis. Many modern cloud and software-defined storage platforms, including Zadara’s, use erasure coding or RAID-like redundancy schemes under the hood to protect customer data across distributed infrastructure, abstracting the underlying disk management away from the end user entirely.

Common Use Cases for RAID

1

Database Servers

Transactional databases often use RAID 10 to get the fast, low-latency reads and writes that high-volume applications demand, combined with redundancy that protects against the data loss a database cannot tolerate.

2

File and Application Servers

General-purpose file servers commonly use RAID 5 or RAID 6, prioritizing a balance of usable capacity and protection against drive failure over maximum raw speed.

3

Backup and Archival Storage

Large-capacity backup targets frequently use RAID 6, since its ability to survive two simultaneous drive failures provides extra protection during the long rebuild times associated with high-capacity drives.

4

Video Editing and Media Production

Workstations handling large uncompressed video files often use RAID 0 for its raw sequential throughput, sometimes on top of a separate backup strategy since RAID 0 offers no redundancy of its own.

5

Virtualization Hosts

Hypervisor hosts running many virtual machines commonly use RAID 10 or RAID 6 to provide the consistent I/O performance and fault tolerance that consolidated workloads require from shared underlying storage.

Limitations and Considerations

1

RAID Is Not a Backup

RAID protects against drive hardware failure, but it does nothing to protect against accidental deletion, file corruption, ransomware, or a natural disaster affecting the physical location of the array — if a file is deleted or encrypted by malware, that change is faithfully replicated or reconstructed across the RAID set along with everything else. A separate, ideally offsite or immutable, backup strategy is still required regardless of RAID level.

2

Rebuild-Time Risk with Large Drives

When a drive fails and is replaced, the array must “rebuild” by recalculating and rewriting the missing data onto the new drive — a process that reads every remaining bit of data on the surviving drives. As drive capacities have grown into the tens of terabytes, rebuild times have stretched from hours into days, and the array remains in a vulnerable degraded state (or, for RAID 5, with zero fault tolerance) for that entire window. Worse, the extended, intensive read load on the surviving drives during a rebuild increases the statistical odds of hitting an unrecoverable read error or a second drive failure before the rebuild completes — a major reason RAID 6 or RAID 10 is now often recommended over RAID 5 for large-capacity drives.

3

Write Performance Overhead

Parity-based RAID levels incur a “write penalty” because updating any data block requires recalculating and rewriting the associated parity, often requiring multiple read and write operations for what is logically a single write. This overhead is most pronounced on RAID 6, due to its dual parity calculations, and can be a meaningful bottleneck for write-heavy workloads.

4

Controller and Configuration Risk

A hardware RAID controller is itself a potential single point of failure, and RAID configuration parameters (stripe size, drive order) are often specific to the controller model, which can complicate recovery if the controller fails and needs to be replaced with an identical or compatible unit.

RAID in Modern Storage Architectures

RAID remains a foundational technique for protecting data against drive failure and improving storage performance, and it continues to underpin a large share of the servers and storage arrays deployed today. But it is best understood as one tool among several in a broader data-protection strategy, not a complete one on its own: it needs to be paired with real backups, and for very large or distributed environments, complemented or replaced by techniques like erasure coding that scale beyond what a single array of drives can offer. Choosing the right RAID level — or deciding that RAID isn’t the right layer at all — comes down to matching the workload’s actual requirements for capacity, performance, and fault tolerance against the tradeoffs each approach makes.

« Back to Glossary Index