======Setup software RAID1 with mdadm on Ubuntu 16.04======
This guide will detail how to setup a RAID1 array using MD in Ubuntu 16.04, while also providing a demonstration of how to swap disks in the event of a failure.
=====Installing mdadm=====
First install mdadm:
$ sudo apt install mdadm
=====Create RAID1=====
Create partitions for each device first (don't format)
$ sudo cfdisk /dev/sdX
Follow the terminal interface to create the relevant partitions on your drives. (you can use any tool for this)
Create a RAID1 array by using the --level=mirror setting, then specify your drives. (It's that simple).
$ sudo mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=2 /dev/sdb1 /dev/sdc1
Now that the array is set-up, we can format the drives.
This is as easy as formatting the /dev/mdX raid "block device" we created.
$ sudo mkfs.ext4 /dev/mdX
====Update the configuration file====
By default, most of mdadm.conf is commented out, and it contains just the following:
''/etc/mdadm.conf''
DEVICE partitions
This directive tells mdadm to examine the devices referenced by /proc/partitions and assemble as many arrays as possible. A more precise approach is to explicitly add the arrays to ''/etc/mdadm.conf'':
$ sudo mdadm --detail --scan >> /etc/mdadm/mdadm.conf
Once the configuration file has been updated the array can be assembled using mdadm:
$ sudo mdadm --assemble --scan
In order for the arrays to be detected by the initial root filesystem, the initramfs **needs** to be updated:
$ sudo update-initramfs -u
If this is note done, the system will hang at boot, if the md devices were added to /etc/fstab, as they will be assigned random device names such as ''/dev/md127''.
====Mounting MD raid in fstab====
Mounting an md array at boot simply requires the /dev/mdX device to be specified, such as:
''/etc/fstab''
/dev/md0 /media/drive1 ext4 defaults 0 2
/dev/md1 /media/drive2 ext4 defaults 0 2
====Checking Status====
You can check the status of any ongoing operations of your md raid anytime.
$ cat /proc/mdstat
The output may look something like this:
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdd1[0] sde1[1] 1953382464 blocks super 1.2 [2/2] [UU]
[============>........] resync = 63.6% (1242973952/1953382464)
finish=83.5min speed=141708K/sec bitmap: 8/15 pages [32KB], 65536KB chunk
md1 : active raid1 sdb1[0] sdc1[1] 976630464 blocks super 1.2 [2/2] [UU]
[===================>.] resync = 95.3% (930960832/976630464)
finish=8.6min speed=88130K/sec bitmap: 4/8 pages [16KB], 65536KB chunk