Hello everybody!
Watch this video to find out how to migrate from RAID 1 and 0 to RAID 5, and how to use
mdadm or LVM to convert a software RAID 1 or 0 into RAID 5 without losing
data
on Linux.
RAID 0 is known for high read and write speeds, but it is very fragile in terms of reliability:
if one of the drives is out of order, all the data is going to be lost.
In fact, this type is not much of a disk array because it lacks redundancy.
On the contrary, RAID 1 is a very reliable solution, as all the data is duplicated to
the other disk, but this approach affects the read and write speeds of the whole array.
If you have a few spare drives, you can upgrade the existing disk array to RAID 5 which offers
a good improvement in reliability compared to RAID 0, and gives a speed boost in comparison
with RAID 1.
In the end, you get a RAID 5 system, which is both reliable and powerful enough to process
your data faster.
In today’s video, I’m going to show you how to migrate from RAID 0 and RAID 1 to RAID
5 without losing your precious data in the process.
How to convert RAID 1 (mirroring) into RAID 5 (parity)
All right, we’ve got a software md_RAID1 system created on a Linux operating system.
This array consists of two drives.
We need to convert it into RAID 5 and then add one more drive, and while doing that we
have to make sure that all the data from the disk array doesn’t disappear.
The array contains some photos, video and documents.
Before you start the conversion, it is recommended to back up important information because if
you make a mistake while typing commands, some data can be erased.
Open the terminal, and run this command to make sure that all the operations are performed
from the administrator’s account: sudo -i
and enter the password.
If the disk array is mounted, you need to unmount it with this command:
umount /dev/md0 или umount /mnt If the operating system tells you the target
is busy, try to force this action: umount -f /dev/md0
After that, you have to stop your RAID 1 system, with the following command:
mdadm --stop /dev/md0 (whether it is md0 or another name depends on the path, which needs
to be checked) where md0 is the identifier for your RAID
system.
Of course, you can’t stop it if this is the RAID system you boot from, and in this
case you’ll have to use a Live CD.
Now you need to overwrite the metadata of the old RAID 1 system; to do it, create a
RAID 5 system with the same drives that were included into the RAID 1 system - sdb and
sdc - by typing this command: mdadm --create /dev/md0 -a yes -l 5 -n 2 /dev/sdb1
/dev/sdc1 where l5 sets the array level,
n2 sets the number of drives it includes, and then these drives are specified.
When the command is performed, the program will warn you that these drives are already
used in a RAID 1 system, so hit Enter to continue.
To check if the conversion was successful, type this command: cat /proc/mdstat.
Now all you have to do is to wait until RAID 5 is built: the status of this process is
shown here, in percent.
When it’s over, the command cat /proc/ mdstat will display this information.
After that, you can add a new drive to the array, and make it a full-featured RAID 5
system.
This new drive is added as a spare one.
Use the following command for this step: mdadm --add /dev/md0 /dev/sdd1
After that, extend the RAID system to the three active drives (now including the spare
drive) with this command: mdadm --grow /dev/md0 --raid-disks=3
Check the result with the command cat /proc/mdstat.
Now you can see that the RAID system is using three drives - sdb, sdc, sdd and the process
of conversion (reshape) has begun.
Its progress is shown in percent; wait until it is complete.
In the end, check the disk array for errors with the following command:
e2fsck -f /dev/md0 and use another command to extend it:
resize2fs -p /dev/md0 Finally, the last command updates the configuration
file: mdadm --examine --scan >> /etc/mdadm.conf
If there are no errors in the course of performing these commands, all the data existing on your
RAID 1 system will be transferred onto the new RAID 5.
Mount it and check what’s going on: as you can see, all the files are still here, and
the array type has changed to RAID 5.
How to convert RAID 0 (striping) into RAID 5 (parity)
However, you can’t use this method to change from RAID 0 to RAID 5 without formatting and
losing all the data.
Instead, there is a way to convert it quickly with a single command.
Migration from RAID 0 to RAID 5 is only possible when there are two drives - then RAID 0 coincides
with RAID 5 in terms of structure.
All the changes will affect the array level only, while the information on the drives
remains intact.
Here is the command that transforms a RAID 0 consisting of two drives into a RAID 5 including
three drives.
mdadm --grow /dev/md0 --level=5 --raid-devices=3 --add /dev/sdc --backup-file=/tmp/grow_md0.bak
Before you run it, unmount the array.
Type the command cat /proc/mdstat to check the situation.
Wait until the reshape process is over.
As you can see, all the files are still there.
After changing the array type to RAID 5, you can add more drives with the command you have
already seen in this video: mdadm --add /dev/md0 /dev/sdc1
After restarting, the array name will change to RAID 5.
If the RAID 0 system contains more than two drives, you need to reduce their number, and
only then you’ll be able to convert the array to RAID 5.
How to convert LV RAID 1 into LV RAID 5 If you used LVM features to create a RAID
system, then you can convert it from one array type to another with the command lvconvert.
First of all, let’s have a look at the information stored in this array.
It contains some photos, video and documents.
Run the command pvdisplay to view the information on this group of disks.
If you want to know more about creating MD and LV RAID systems, check one of the previous
videos by following the link below.
To start the conversion, unmount the logical volume.
Type the command: umount /dev/vg1/lv1.
Type “y” to confirm and hit Enter.
Use the following command to change the RAID level:
lvconvert --type raid5 /dev/vg1/lv1 The last step is to add the third drive to
the existing group of disks with this command: vgextend vg1 /dev/sdd1
When you perform it, the program warns you that the disk is already formatted.
Type “y” to confirm your decision and press Enter.
To make sure that the disk is added to the group, use the command pvdisplay.
Now you can see the group consists of three disks.
Mount the array again and open it in the file manager: all the data is here, nothing is
lost.
How to convert LV RAID 0 into LV RAID 5 The same command is used to change from RAID
0 to RAID 5.
The only important step is to add the third disk to the group before you start the conversion;
otherwise, you’ll see the warning that you don’t have enough space for this command
to run.
lvconvert --type raid5 /dev/vg1/lv1 Add the third disk:
vgextend vg1 /dev/sdd1 Use the following command to change the RAID
level: lvconvert --type raid5 /dev/vg1/lv1
Mount the array and check what information is available.
As you can see, all files are here.
How to recover data from damaged RAID systems If there was an error in the process of converting
one RAID level into another, or if you erased some information accidentally, use a reliable
data recovery tool, Hetman RAID Recovery.
It reads from the storage system all the information about the controller, the motherboard, or
the software used to create a disk array, and then rebuilds the damaged RAID to let
you copy the lost data.
Find more information about recovering MD and LV RAID in one of the previous videos
- I’ll put the link in the description as always.
Conclusion Changing from one RAID level to another may
take several steps.
At first, you’ll have to convert it into an interim level, and then into the type you
would like to have.
For example, to change RAID 1 into RAID 6 you need to convert your system into RAID
5, and only then will it become possible to convert it into RAID 6.
On the Internet, you can find a lot more information on all possible variants of changing from
one level to another, and this video tutorial will help you do it step by step.
That is all for now!
Hopefully, this video was useful.
Remember to click the Like button and subscribe to our channel.
Push the bell button to receive notifications and never miss new videos.
Leave comments to ask questions.
Thank you for watching.
Good luck.