Basic usage of Software Raid (MDADM)
Contents
- 1 Creating and Using Software RAID with mdadm on Debian
- 1.1 Prerequisites
- 1.2 Step 1: Install mdadm
- 1.3 Step 2: Identify Available Disks
- 1.4 Step 3: Create the RAID Array
- 1.5 Step 4: Monitor the RAID Creation
- 1.6 Step 5: Create Filesystem on RAID Array
- 1.7 Step 6: Mount the RAID Array
- 1.8 Step 7: Save mdadm Configuration
- 1.9 Step 8: Automount on Boot
- 1.10 Optional: Assemble RAID After Reboot
- 1.11 Optional: Remove or Stop a RAID Array
- 1.12 Summary Table
- 1.13 See Also
Creating and Using Software RAID with mdadm on Debian
Software RAID on Debian is commonly configured using the mdadm
utility. This guide provides a step-by-step approach for creating, configuring, and managing a basic RAID array (RAID 0, RAID 1, or RAID 5), suitable for both virtual and dedicated servers.
Prerequisites
- Two or more storage devices (e.g., /dev/sdb, /dev/sdc)
- Root or sudo privileges
- Debian 10, 11, 12 or Ubuntu derivative
- Non-mounted and unformatted target disks
Step 1: Install mdadm
Install the RAID management tool:
<syntaxhighlight lang="bash"> sudo apt update sudo apt install mdadm -y </syntaxhighlight>
During installation, you may be prompted to configure mdadm to email alerts. You can skip or configure as preferred.
Step 2: Identify Available Disks
List all attached storage devices:
<syntaxhighlight lang="bash"> lsblk </syntaxhighlight>
Or use:
<syntaxhighlight lang="bash"> sudo fdisk -l </syntaxhighlight>
Ensure the devices are **unmounted** and **do not contain any important data**.
Step 3: Create the RAID Array
Examples:
RAID 1 (Mirroring, 2 Disks)
<syntaxhighlight lang="bash"> sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc </syntaxhighlight>
RAID 0 (Striping, 2+ Disks)
<syntaxhighlight lang="bash"> sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sdb /dev/sdc </syntaxhighlight>
RAID 5 (Striped with Parity, 3+ Disks)
<syntaxhighlight lang="bash"> sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd </syntaxhighlight>
You may need to confirm with yes to proceed.
Step 4: Monitor the RAID Creation
Check array status:
<syntaxhighlight lang="bash"> cat /proc/mdstat </syntaxhighlight>
To view detailed status:
<syntaxhighlight lang="bash"> sudo mdadm --detail /dev/md0 </syntaxhighlight>
Step 5: Create Filesystem on RAID Array
After creation completes, format the RAID array:
<syntaxhighlight lang="bash"> sudo mkfs.ext4 /dev/md0 </syntaxhighlight>
Step 6: Mount the RAID Array
Create mount point and mount it:
<syntaxhighlight lang="bash"> sudo mkdir /mnt/raid sudo mount /dev/md0 /mnt/raid </syntaxhighlight>
Optional: Set up ownership or permissions:
<syntaxhighlight lang="bash"> sudo chown user:user /mnt/raid </syntaxhighlight>
Step 7: Save mdadm Configuration
Save the array details for boot persistence:
<syntaxhighlight lang="bash"> sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf sudo update-initramfs -u </syntaxhighlight>
Step 8: Automount on Boot
Add entry to /etc/fstab
:
<syntaxhighlight lang="bash"> sudo nano /etc/fstab </syntaxhighlight>
Add:
<syntaxhighlight lang="text"> /dev/md0 /mnt/raid ext4 defaults,nofail 0 0 </syntaxhighlight>
Save and close.
Optional: Assemble RAID After Reboot
If RAID is not automatically detected:
<syntaxhighlight lang="bash"> sudo mdadm --assemble --scan </syntaxhighlight>
Optional: Remove or Stop a RAID Array
To stop the array:
<syntaxhighlight lang="bash"> sudo umount /mnt/raid sudo mdadm --stop /dev/md0 </syntaxhighlight>
To remove the array:
<syntaxhighlight lang="bash"> sudo mdadm --remove /dev/md0 </syntaxhighlight>
To zero out superblocks:
<syntaxhighlight lang="bash"> sudo mdadm --zero-superblock /dev/sdb sudo mdadm --zero-superblock /dev/sdc </syntaxhighlight>
Summary Table
Task | Command | Description |
---|---|---|
Install mdadm | apt install mdadm |
Install RAID tool |
Create RAID 1 | mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdX /dev/sdY |
Create mirrored array |
Monitor RAID | cat /proc/mdstat |
View sync/progress |
Format array | mkfs.ext4 /dev/md0 |
Prepare filesystem |
Mount array | mount /dev/md0 /mnt/raid |
Use RAID volume |
Auto-mount | /etc/fstab |
Persistent configuration |
Save config | mdadm --detail --scan >> /etc/mdadm/mdadm.conf |
Boot-time detection |