====== Create a software RAID 1 setup with two hard disks ====== ====== Intro ====== RAID 1 = mirrored pair of two hard disks \\ If one disk fail, the raid will continue to be operational. \\ Read performance will be increased for parallel read operations. \\ Write performance will be likely the same (almost the same). \\ ====== Prerequisites ====== * Two hard disks of same size. * mdadm should be installed. yum install mdadm ====== Setup ====== ==== Format first hard disk (/dev/sda) with xfs (supports also hard disks higher than 2TB) ==== mkfs.xfs -f -L DISK1 /dev/sda -f = force \\ -L = hdd label ==== Format second hard disk (/dev/sdb) with xfs ==== mkfs.xfs -f -L DISK2 /dev/sdb ==== Create the raid array ==== mdadm --verbose --create /dev/md0 --level=raid1 --raid-devices=2 /dev/sda /dev/sdb ==== Format the raid array as xfs ==== mkfs.xfs /dev/md0 ==== Mount the raid array (in /data1 folder) ==== mkdir /data1 mount /dev/md0 /data1 ==== Automatically mount the raid volume at startup ==== Edit **/etc/fstab** and add: /dev/md0 /data1 xfs defaults 0 0 ==== Load automatically the raid 1 configuration at startup ==== mdadm --detail --scan --verbose >> /etc/mdadm.conf ==== Check the raid configuration ==== mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Mon Apr 13 03:07:50 2020 Raid Level : raid1 Array Size : 3906886464 (3725.90 GiB 4000.65 GB) Used Dev Size : 3906886464 (3725.90 GiB 4000.65 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Intent Bitmap : Internal Update Time : Mon Apr 13 15:24:47 2020 State : clean, resyncing Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Consistency Policy : bitmap Resync Status : 90% complete Name : medjavaro:0 (local to host medjavaro) UUID : 257d9837:5eda9e27:59a51c12:d139b615 Events : 15822 Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sda 1 8 32 1 active sync /dev/sdb ==== Replace a failed hard disk in the raid configuration ==== Suppose the /dev/sdb hard disk failed. \\ To replace it with a good hdd, set it as failed and remove it from the array: mdadm /dev/md0 --fail /dev/sdb --remove /dev/sdb Add the new device to the array: mdadm --add /dev/md0 /dev/sdb ==== Re-add a good hard disk (after cable disconnection for example) ==== After reinserting the hard disk, it may be mounted now on a different device letter.\\ Ckeck it by running: fdisk -l Output: ... Disk /dev/sdd: 4000.8 GB, 4000787029504 bytes, 7814037167 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes After identifying it, re-add it to the raid array with: mdadm --manage /dev/md0 --add /dev/sdd ==== Resizing the array ==== mdadm --grow /dev/md0 --size=max xfs_growfs /data1