Setting up Raid? Here is a quick Guide
So you have some Disks and you want to archive things now, here's some help lol
Here is a step-by-step of me setting up RAID 5 on 15x 10TB drives using mdadm
Important Pre-requisites:
mdadminstalled:sudo apt install mdadm(for Debian/Ubuntu based systems like Pop!_OS)Root privileges: Commands will use
sudo.
Step 0: Identify your Partitions Before starting, ensure you have a clear list of the partitions you intend to use. For this guide, we are using the 15 x 9.1TB partitions identified previously:
/dev/sde1 /dev/sdq1 /dev/sdr1 /dev/sds1 /dev/sdz1 /dev/sdaa1 /dev/sdab1 /dev/sdac1 /dev/sdad1 /dev/sdae1 /dev/sdaf1 /dev/sdag1 /dev/sdah1 /dev/sdai1 /dev/sdaj1
WARNING: ALL DATA ON THESE PARTITIONS WILL BE DESTROYED.
Step 1: Zero Out Existing mdadm Superblocks
This step clears any old RAID metadata from the partitions, ensuring they are clean for the new array. Even if you suspect they are clean, running this command is harmless for non-RAID partitions and essential for those that might have old metadata.
sudo mdadm --zero-superblock /dev/sde1 /dev/sdq1 /dev/sdr1 /dev/sds1 /dev/sdz1 /dev/sdaa1 /dev/sdab1 /dev/sdac1 /dev/sdad1 /dev/sdae1 /dev/sdaf1 /dev/sdag1 /dev/sdah1 /dev/sdai1 /dev/sdaj1
Expected Output: You might see "Unrecognised md component device" for some partitions. This is normal and means no old superblock was found on that device, confirming it's clean. For other partitions,
mdadmwill simply zero the superblock without a specific message.
Step 2: Create the RAID 5 Array
This command initializes your RAID 5 array. We'll name it /dev/md1.
sudo mdadm --create /dev/md1 --level=5 --raid-devices=15 /dev/sde1 /dev/sdq1 /dev/sdr1 /dev/sds1 /dev/sdz1 /dev/sdaa1 /dev/sdab1 /dev/sdac1 /dev/sdad1 /dev/sdae1 /dev/sdaf1 /dev/sdag1 /dev/sdah1 /dev/sdai1 /dev/sdaj1
Explanation of options:
--create /dev/md1: Creates a new array namedmd1.--level=5: Specifies RAID level 5.--raid-devices=15: Tellsmdadmto use all 15 specified devices.
Confirmation: You will be prompted to confirm the creation. Type
yand press Enter.Expected Output:
mdadm: Defaulting to version 1.2 metadataandmdadm: array /dev/md1 started.
Step 3: Monitor Array Synchronization (Optional but Recommended) After creation, the array will immediately begin synchronizing (or "resyncing"). This process involves calculating and writing parity data across all drives and can take a very long time for large drives (hours to days). The array is usable during sync, but performance might be slightly degraded.
cat /proc/mdstat
Expected Output: Look for a line similar to
[>....................] resync = XX.X%which indicates the progress. Do not interrupt this process.
Step 4: Create a Filesystem on the New RAID Array
Once the array is created (you don't have to wait for sync to finish to do this), you need to format it with a filesystem. ext4 is a common and robust choice. For very large arrays, XFS is also a popular option.
sudo mkfs.ext4 -F /dev/md1
(Alternatively, for XFS: sudo mkfs.xfs -f /dev/md1)
Verification: You can check if the filesystem was created successfully:
Bashsudo blkid /dev/md1You should see
TYPE="ext4"(orxfs) in the output.
Step 5: Create a Mount Point and Mount the Array A mount point is a directory where the contents of your RAID array will be accessible.
sudo mkdir /mnt/raid5data
sudo mount /dev/md1 /mnt/raid5data
Verification: After mounting, you should see your new array listed in
df -h:Bashdf -hLook for a line showing
/dev/md1mounted at/mnt/raid5datawith the expected large capacity.
Step 6: Configure Automatic Mounting with /etc/fstab
To ensure your RAID array is automatically mounted every time your system boots, you need to add an entry to the /etc/fstab file.
Get the UUID of your RAID array:
Bashsudo blkid -s UUID -o value /dev/md1Copy the UUID (e.g.,
bfafcdb9-e4b7-7310-2285-8ce38d46).Edit the
/etc/fstabfile:Bashsudo nano /etc/fstabAdd the following line to the very end of the file, replacing
YOUR_MD1_UUIDwith the actual UUID you copied:UUID=YOUR_MD1_UUID /mnt/raid5data ext4 defaults,nofail 0 0UUID=...: Identifies the array by its unique ID./mnt/raid5data: The mount point.ext4: The filesystem type (match what you used in Step 4).defaults: Standard mounting options.nofail: Crucial! Prevents the system from getting stuck at boot if the array isn't available.0 0:dumputility setting (0 to disable) andfsckpass (0 to disable for RAID).
Save and exit the editor (in Nano: Ctrl+X, then Y, then Enter).
Step 7: Update mdadm.conf and Initramfs for Boot Assembly
This step ensures your system knows how to assemble the RAID array very early in the boot process.
Update
mdadm.conf:Bashsudo mdadm --detail --scan --verbose | sudo tee /etc/mdadm/mdadm.confThis command scans for all active RAID arrays and writes their configuration to
/etc/mdadm/mdadm.conf. You should see entries for bothmd0and your newmd1array printed to the screen as they are written to the file.
Update Initramfs:
Bashsudo update-initramfs -uThis command regenerates the initial RAM filesystem, which contains the necessary modules and configuration to detect and assemble your RAID array before the main system starts.
(Note: On some distributions like Fedora/CentOS, the command might be
sudo dracut -H -f)
Final Verification: After completing all steps, perform a reboot:
sudo reboot
Once your system is back up, log in and verify:
Is the array assembled?
Bashcat /proc/mdstatYou should see
md1listed asactive(andresyncmight still be running).Is the array mounted?
Bashdf -hYou should see
/dev/md1mounted at/mnt/raid5data.Can you write to it?
Bashsudo touch /mnt/raid5data/test_file.txt ls /mnt/raid5data/
Comments
Post a Comment