mdadm

From Initq

Jump to: navigation, search

Mdadm is the modern tool most Linux distributions use these days to manage software RAID arrays; in the past raidtools was the tool we have used for this. This cheat sheet will show the most common usages of mdadm to manage software raid arrays; it assumes you have a good understanding of software RAID and Linux in general, and it will just explain the commands line usage of mdadm. The examples bellow use RAID1, but they can be adapted for any RAID level the Linux kernel driver supports.

Contents

Create a new RAID array

# mdadm --create --verbose /dev/md0 --level=1 /dev/sda1 /dev/sdb2
# mdadm -Cv /dev/md0 -l1 -n2 /dev/sd[ab]1

/etc/mdadm.conf

/etc/mdadm.conf or /etc/mdadm/mdadm.conf (on debian) is the main configuration file for mdadm. After we create our RAID arrays we add them to this file using:

# mdadm --detail --scan >> /etc/mdadm.conf
# mdadm --detail --scan >> /etc/mdadm/mdadm.conf

Stop and delete a RAID array

If we want to completely remove a raid array we have to stop if first and then remove it:

# mdadm --stop /dev/md0
# mdadm --remove /dev/md0

and finally we can even delete the superblock from the individual drives:

# mdadm --zero-superblock /dev/sda

Finally in using RAID1 arrays, where we create identical partitions on both drives this can be useful to copy the partitions from sda to sdb:

# sfdisk -d /dev/sda | sfdisk /dev/sdb

(this will dump the partition table of sda, removing completely the existing partitions on sdb, so be sure you want this before running this command, as it will not warn you at all).

There are many other usages of mdadm particular for each type of RAID level, and I would recommend to use the manual page (man mdadm) or the help (mdadm –help) if you need more details on its usage. Hopefully these quick examples will put you on the fast track with how mdadm works.

Add a Drive

# mdadm --add /dev/md0 /dev/sdb1

Remove a Drive

# mdadm --fail /dev/md0 /dev/sdb1
# mdadm --remove /dev/md0 /dev/sdb1
# mdadm /dev/md0 --fail /dev/sda1 --remove /dev/sda1

Get info

# cat /proc/mdstat
# mdadm --detail /dev/md0
Personal tools