Learn RAID (Redundant Array of Independent Disks) for SysAdmins, Storage Engineers, DevOps Engineers, and homelab enthusiasts, from the fundamentals to production-grade: prerequisite skills & environment setup, history & why you need RAID, core concepts & RAID levels, software vs hardware vs firmware RAID, mdadm create & assemble array, mdadm detail, status & monitoring, spare replacement & hot-swap, resize & reshape, ZFS RAIDZ (dRAID, AnyRaid), RAID 10 & performance workloads, RAID for SSD/NVMe, boot partitioning & OS integration, backup & disaster recovery, failure detection & monitoring, security & encryption, maintenance & scrub, troubleshooting & recovery scenarios, advanced mdadm features, performance tuning, advanced ZFS RAID (BRT, tiering), RAID-as-a-Service & cloud, modern features & roadmap, and the alternative ecosystem & final reflection — 23 episodes in total.
Before touching mdadm, you need to master basic Linux administration such as disk management, partitioning, and mounting. In this episode you will also set up a lab with additional disks, install mdadm and OpenZFS, and verify the environment.

This episode unpacks the origins of RAID from the 1987 Berkeley paper, the evolution of RAID levels from 0 to dRAID, and the real problems it solves: significant disk failure rates, performance needs, and combined capacity — each with its own tradeoffs.

This episode unpacks the three basic RAID mechanisms — striping, mirroring, and parity — as well as RAID levels 0, 1, 4, 5, 6, 10, and nested levels, including how to calculate capacity and overhead and the URE tradeoff for large disks.

This episode compares three RAID implementation paths: software RAID based on the kernel MD driver and mdadm, hardware RAID with controller cards and battery-backed cache, and firmware or fake RAID IMSM and DDF along with their limitations.

This episode teaches you how to create your first array with mdadm using --create, understand metadata versions from 0.90 to 1.2, write the mdadm.conf configuration, and ensure the array assembles automatically at boot.

This episode teaches you how to read an array's condition via /proc/mdstat and mdadm --detail, interpret states such as clean, active, degraded, and rebuilding, and set up mdadm --monitor and systemd mdmonitor for failure notifications.

This episode covers disk failure handling: adding a hot spare with --add-spare, re-adding a disk that was temporarily disconnected, the physical hot-swap disk replacement process, and verifying the rebuild completes via /proc/mdstat and mdadm --detail.

This episode teaches array capacity expansion with mdadm --grow, adding devices to RAID 1/5/6/10, filesystem resize with resize2fs and xfs_growfs, plus reshape between levels and changing the chunk size along with its risks.

This episode covers ZFS-based RAID: the differences between RAIDZ1/2/3, why ZFS doesn't use mdadm with RAID 5, RAIDZ expansion which is stable in OpenZFS 2.4, and dRAID and AnyRaid for large-capacity storage.

This episode covers RAID 10 as a combination of mirroring and striping for high-performance workloads, how to calculate IOPS and throughput, fast rebuilds, and when to choose RAID 10 over RAIDZ or RAID 6 for databases and VMs.
