Course contentsShow
← Linux
Lesson 698 of 1,8197. Storage Management and Logical VolumesFree lesson

Nested RAID levels (10 and 50)

Deploy high-performance, high-resilience RAID configurations for critical data.

In this lesson, you will learn how to combine RAID levels into nested configurations to balance the speed of striping with the safety of redundancy.

Understanding Nested RAID

Sometimes, a single RAID level isn't enough to meet the conflicting demands of high performance and extreme data protection. Nested RAID—often called "RAID hybrid" or "RAID spanning"—solves this by layering one RAID configuration on top of another.

RAID 10: Striped Mirrors

RAID 10 is a "stripe of mirrors." You take several pairs of drives and set each pair as a RAID 1 (mirror). Then, you take those mirrors and stripe them together (RAID 0).

  • Why use it? You get the incredible read/write speeds of striping, but if one drive in a mirrored pair fails, the system continues to work using the other drive in that pair.
  • Concept: Imagine four drives: (A+B) as a mirror, and (C+D) as a mirror. RAID 10 stripes data across both pairs.

RAID 50: Striped Parity

RAID 50 is a "stripe of parity sets." You create multiple RAID 5 arrays (which provide parity for safety) and then stripe those arrays together into a single logical volume.

  • Why use it? RAID 5 becomes very slow and risky as you add more drives to a single array due to the heavy parity calculation load. By splitting them into smaller RAID 5 "chunks" and striping them, you improve rebuild performance and fault tolerance.
  • Example: If you have 9 drives, you could create three sets of RAID 5 (3 drives each) and stripe them together.

Implementation Logic

Using mdadm, you create these by defining the underlying RAID devices first, then layering the top-level stripe over them:

# Example: Creating a RAID 10 layout (conceptually)
# First, create the mirrors
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdd /dev/sde

# Then, stripe the mirrors together
mdadm --create /dev/md2 --level=0 --raid-devices=2 /dev/md0 /dev/md1

While LVM makes managing these structures easier, understanding that you are essentially "nesting" arrays allows you to design storage pools that can survive multiple drive failures while maintaining high throughput for your critical Linux workloads.

Key Takeaway: Nested RAID levels like 10 and 50 combine striping and redundancy to achieve a superior balance of performance and fault tolerance than either level could provide alone.