Considering number of dedicated server rentals that just gives JBOD, setting up your own software raid is quite handy. This tutorial goes over the very basic of how it’s done.
All of this should be done under root.
Let’s say you have 3 disks: sda, sdb & sdc. The OS is mounted on the sda, so we’ll leave that alone and make a raid 1 with sdb and sdc.
Use mdadm to create your software raid
First, make sure mdadm is installed.
yum install mdadm
Assuming that the disks sdb & sdc are unmounted & unused, we can create a raid with the two of them by telling mdadm to create the partition.
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
If you have more disks, adjust the raid devices parameter and more devices listed at the end. Other levels of RAID can be setup as well like 0, 10, etc just by changing the –level parameter. So, if you were making a raid0 of 3 disks, you could call
mdadm --create /dev/md0 --level=0 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd
You can confirm the setup by looking at mdstat.
Now we add the device information to a configuration file for mdadm so that they’re always available.
echo "DEVICE /dev/sdb /dev/sdc" > /etc/mdadm.conf mdadm --detail --scan >> /etc/mdadm.conf echo "MAILADDR firstname.lastname@example.org" >> /etc/mdadm.conf mdadm -As /dev/md0
Including MAILADDR is critical for getting notifications, but it’s also critical for getting the monitor running. On newer versions (7’s repo), the monitor will not run without MAILADDR parameter.
mdmonitor for your RAID
Now that we have a RAID array, they need to be monitored. This can be done through the mdmonitor service.
service mdmonitor start chkconfig mdmonitor on
If you’re on Centos 7, you’ll need to use the new systemctl instead.
systemctl start mdmonitor systemctl enable mdmonitor
Making the file system & mounting it
Next, we’ll create the file system that uses this raid array and call it /dev/md0 with the file system ext4
mkfs -t ext4 /dev/md0
You can now mount md0 to any folder you want. Like…
mount /dev/md0 /home/grumpyland
The new mount point should now appear when you call df
We want the mount to be always there when we start up the server, so, we need to add it to fstab too using your favorite editor. I always found nano to be the most newbie friendly with the instruction on the bottom.
There, you’ll want to add a line about the md0 we just made. Note that the directory to be mounted must already exist!
/dev/md0 /home/grumpyland ext4 defaults 0 0
That’s it! I hope this simplified tutorial was helpful. For further information on mdadm, check out its man pages.