# RAID 5 array creation
sudo mdadm --create /dev/md5 --level=5 --assume-clean --raid-devices=3 /dev/sd{d,e,f}1

# Create a high-performance RAID10 array (2x read speed compared to RAID1)
sudo mdadm --create /dev/md6 --level=10 -p f2 --assume-clean --raid-devices=2 /dev/sd{i,k}1

# Save configuration (not necessary)
/usr/share/mdadm/mkconf > /new/etc/mdadm/mdadm.conf


Stripe cache size

Increase 1 MiB default to 16 MiB (№ 4K blocks):

echo 4096 | sudo tee /sys/block/md0/md/stripe_cache_size
echo 4096 | sudo tee /sys/block/md1/md/stripe_cache_size

Write-intent bitmaps

Write-intent bitmaps speed-up RAID resyncs significantly, at the expense of a little write performance.

   1 # Create write-intent bitmap
   2 mdadm --grow --bitmap=internal /dev/mdX
   4 # Remove write-intent bitmap
   5 mdadm --grow --bitmap=none /dev/mdX


Examine array component

Displays superblock information, including last event, RAID UUID, other components, etc.

mdadm --examine /dev/sda1


Inactive array

If an array comes out as inactive, e.g.:

md8 : inactive sdp1[0](S) sds1[4](S) sdx1[2](S) sdj1[1](S)
      7814054094 blocks super 1.2

Stop the array before we continue to work on it.

mdadm --stop /dev/md8

First, use examine the array components and figure out which component is out of sync (it's best to do this manually). Then, with the remaining components, reassemble the array. E.g. if /dev/sds1 was the bad device:

mdadm --assemble /dev/md8 /dev/sd{p,x,j}1 --force

to restart the array. If supposedly bad device is fine, go ahead and re-add it:

mdadm --manage /dev/md8 --add /dev/sds1


# btrfs RAID0
mkfs.btrfs -d raid0 /dev/sd{b,c}1


SamatsWiki: CheatSheet/LinuxSoftwareRAID (last edited 2020-09-23 06:34:48 by SamatJain)