MDADM (Linux Software RAID) Cheatsheet



Published: 2018-03-23 00:00:51 +0000
Categories: BASH,

Language

BASH

Description

You should always partition disks rather than using the disk itself. Different manufacturers and models can have very slightly different capacities. So if you try to replace a 4TB WD drive with (say) a 4TB Hitachi, you may find you can't add it to the array. Creating a partition of a set size tends to address this, though on slightly larger disks it may leave a few bytes unused

After any changes, remember to skip down to the bottom and save the array config so it'll persist after reboot!

Snippet

## Creating Arrays

# Create a RAID1 array
mdadm --create /dev/md1 --metadata 1.2 --level=mirror --raid-devices=2 /dev/sdb1 /dev/sdb1

# Create a RAID10 array
mdadm --create /dev/md1 --level=10 --raid-devices=4 /dev/sd[b-e]1

# Create a RAID5 array (it's 2019, _don't_ do this!)
mdadm --create --verbose /dev/md1 --level=5 --raid-devices=3 /dev/sd[b-d]1

# Create a RAID6 array
mdadm --create --verbose /dev/md1 --level=6 --raid-devices=4 /dev/sd[b-e]1

# Temporarily create a RAID1 with 1 disk missing (i.e. only use a single disk)
#
# you might risk this if you've limited disk slots and are trying to transfer 
# from one array to a new one so you can use larger capacity disks
# Beware the risk of that single drive failing whilst you do it
#
# See Adding disks for next step below
mdadm --create /dev/md1 --metadata 1.2 --level=mirror --raid-devices=2 missing /dev/sdb1

## Adding Disks

# Add an drive into an array (will default to Hot Spare if enough drives already present)
mdadm --manage /dev/md1 --add /dev/sdc1

# Growing an array
# We assume here the array was previously created with 3 drives
mdadm --manage /dev/md1 --add /dev/sdc1 # Effectively creating hot spare
mdadm --grow /dev/md1 --raid-devices=4 # Grow it to 4 drives, will start a resync
umount /dev/md1
fsck -f /dev/md1
resize2fs /dev/md1 # Command may differ depending on your filesystem

## Removing disks

# Fail and remove 
mdadm --fail /dev/md1 /dev/sdb1 --remove /dev/sdb1

# Force remove (if the disk is no longer visible to the kernel)
mdadm -r /dev/md1 failed # Remove all failed devices
mdadm -r /dev/md1 detached # Remove all devices not in /dev

## Removing arrays
mdadm --stop /dev/md1
mdadm --remove /dev/md1
mdadm --zero-superblock /dev/sdb1

## General

# Check status of the arrays
cat /proc/mdstat

# Save array details to config so they persist after reboot
mdadm --detail --scan >> /etc/mdadm.conf

Keywords

RAID, mdadm, linux, software, RAID, arrays, cheatsheet, howto, documentation,

Latest Posts


Copyright © 2022 Ben Tasker | Sitemap | Privacy Policy
Available at snippets.bentasker.co.uk, http://phecoopwm6x7azx26ctuqcp6673bbqkrqfeoiz2wwk36sady5tqbdpqd.onion and http://snippets.bentasker.i2p
hit counter