Mdadm
Mdadm is used to create linux MD raids.
Usage
# Check the status of /dev/md0
mdadm -D /dev/md0
Create a raid array
First use gdisk to create a linux raid partition (FD00) on all your disks. Note that is purely convention and is optional.
Then run the following to create /dev/md0.
# Raid 1 example with 2 disks
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
# Raid 6 example with 4 disks
mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
# Now you have a block device /dev/md0 on which you can add LUKS, LVM, or a filesystem.
Add hot spare
See https://tuxfixer.com/how-to-add-hot-spare-volume-to-the-existing-mdadm-software-raid-array/
mdadm --add /dev/md0 $DEVICE
Scrubs
On Ubuntu, md will automatically scrub on the first Sunday of every month using a systemd timer.
During a scrub, you can check the status with
cat /proc/mdstat
You can check for bad blocks using
cat /sys/block/md0/md/mismatch_cnt
Changing Raid Levels
Note: I haven't tested this.
This procedure is primarilly for expanding when you get a new disk.