Creating RAID 5 (Striping with Distributed Parity) in Linux


RAID (Redundant Array of Inexpensive Disks) is a technology that combines multiple disks into a single logical unit for performance, redundancy, or both. RAID 5 is a type of RAID that uses striping with distributed parity to provide both performance and redundancy. In this tutorial, we will show you how to create a RAID 5 array in Linux.

Before we start, let's first understand the concept of striping with distributed parity.

What is Striping with Distributed Parity?

In striping with distributed parity, data is split into blocks and distributed across multiple disks. Parity information is also distributed across the disks. Parity is used to reconstruct data if one of the disks fails.

For example, if we have three disks (Disk1, Disk2, and Disk3) and we want to create a RAID 5 array, data is striped across all three disks. The parity information for each stripe is stored on a different disk. The parity information for the first stripe is stored on Disk2, for the second stripe on Disk3, and for the third stripe on Disk1.

This way, if one of the disks fails, the RAID controller can use the parity information to reconstruct the data and recover the lost information.

Now that we understand the concept of striping with distributed parity, let's move on to creating a RAID 5 array in Linux.

Creating a RAID 5 array in Linux

Follow the below steps to create a RAID5 array in Linux.

Step 1: Install mdadm

The first step is to install the mdadm package, which is the tool we will use to create the RAID array. To install mdadm, run the following command −

sudo apt-get install mdadm

Step 2: Create Partitions on the Disks

Next, we need to create partitions on the disks that will be used in the RAID array. In this example, we will use three disks (/dev/sdb, /dev/sdc, and /dev/sdd) for the RAID array.

We will create a single partition on each disk that spans the entire disk. To create the partitions, run the following command for each disk −

sudo fdisk /dev/sdX

Replace 'X' with the appropriate disk identifier (b, c, or d). Then, enter the following commands in fdisk:

Command (m for help): n Partition type: p  primary (0 primary, 0 extended, 4 free) e extended Select (default p): Using default response p. Partition number (1-4, default 1):First sector (2048-83886079, default 2048): Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-83886079, default 83886079):

Press 'p' to verify that the partition has been created. Repeat this process for all three disks.

Step 3: Create the RAID 5 Array

Now we can create the RAID 5 array using the mdadm tool. Run the following command −

sudo mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1

This command creates a RAID 5 array named /dev/md0 with a level of 5 and three devices (/dev/sdb1, /dev/sdc1, and /dev/sdd1).

Step 4: Format the RAID 5 Array

Once the RAID 5 array is created, we need to format it with a file system. In this example, we will use the ext4 file system.

To format the RAID 5 array, we will use the mkfs.ext4 command −

sudo mkfs.ext4 /dev/md0

Replace /dev/md0 with the name of your RAID 5 array.

Step 5: Mount the RAID 5 Array

After formatting the RAID 5 array, we need to mount it to a directory. We will create a directory called "raid5" in the "/mnt" directory and mount the RAID 5 array to it −

sudo mkdir /mnt/raid5
sudo mount /dev/md0 /mnt/raid5

To automatically mount the RAID 5 array at boot time, we need to add an entry to the "/etc/fstab" file −

sudo nano /etc/fstab

Add the following line to the end of the file −

/dev/md0 /mnt/raid5 ext4 defaults 0 0

Save and close the file.

Step 6: Test the RAID 5 Array

To test the RAID 5 array, we can create a file on the RAID 5 array and verify that it is accessible −

sudo touch /mnt/raid5/testfile
ls /mnt/raid5

If the file "testfile" is listed, the RAID 5 array is working correctly. Congratulations! You have successfully created a RAID 5 array in Linux.

Note: To add more disks to the RAID 5 array, use the following command −

sudo mdadm --add /dev/md0 /dev/sdx

Replace /dev/sdx with the device name of the disk you want to add.

In the next section, we will discuss how to monitor the status of the RAID 5 array.

Monitoring the RAID 5 Array

It is important to monitor the status of the RAID 5 array to ensure that it is functioning properly. The following commands can be used to monitor the array −

  • To display the status of the RAID 5 array, use the following command −

sudo mdadm --detail /dev/md0

    This will display detailed information about the array, including its status, number of active disks, and the number of failed disks (if any).

  • To monitor the status of the array in real-time, use the following command −

watch -n 1 cat /proc/mdstat

    This will display a real-time view of the status of the array, including the percentage of the array that has been synced and any errors that are occurring.

  • o receive email notifications when the status of the array changes, we can set up email notifications using the mdadm tool. To do this, we first need to install the mailutils package −

sudo apt-get install mailutils
  • Once the package is installed, we can set up email notifications by editing the mdadm.conf file −

sudo nano /etc/mdadm/mdadm.conf
  • Add the following lines to the end of the file −

MAILADDR your_email_address
NOTIFYFLAG all
  • Replace 'your_email_address' with your actual email address.

  • Save and close the file.

Now, whenever the status of the array changes, an email notification will be sent to the specified email address.

By monitoring the status of the RAID 5 array, we can ensure that it is functioning properly and take corrective action if necessary.

Conclusion

RAID 5 is a popular data storage solution for its balance between performance and redundancy. In this tutorial, we covered the steps to create a RAID 5 array using mdadm in Linux. We started by installing mdadm, creating partitions for the drives, and creating the RAID 5 array with distributed parity. Then, we formatted the array with the ext4 file system and mounted it as a permanent storage location.

It's important to monitor the RAID 5 array's health regularly to detect any issues and prevent data loss. We covered how to use mdadm to check the array's status and how to replace a failed drive.

Implementing a RAID 5 array can be a reliable and cost-effective solution for data storage needs. It provides a balance of performance, redundancy, and capacity that can benefit both personal and business use cases.

Updated on: 26-Jun-2023

207 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements