Migration from RAID1 to RAID5 turned out to be many times easier than I thought 🙄 In general they are 5 simple little wait steps and 1 a beer for courage.
For me, the system has been created RAID array md0 in which they participate 2 sda and sdb disk. I will add a 3rd sdc to them to create RAID5 from 3 disk. In general, this acrobatics is for the scientific purpose of a virtual I have not yet tested it in a real environment, but I don't expect dramas on a real machine when the time comes.
- We create the same file system layout as on our other disks – sfdisk -d /dev/sdb | sfdisk /dev/sdc
- We are upgrading our current RAID5 array – mdadm –grow /dev/md0 –level=5
- We add the new disk to the array – mdadm –manage /dev/md0 –add /dev/sdc . Here comes the thin point that the array is still RAID1 and will not start syncing because our new drive is spare
- The most important moment sdc becomes active and synchronization begins – mdadm –grow /dev/md0 –raid-devices=3 . Good time to open your beer if it is not done 😉 Do not interrupt the process under any circumstances!!!
- After the synchronization is over, it has to resize the partition because the loss of space in RAID1 is 1 / n and in RAID5 is 1-1 / n
The biggest bonus is that there is no need to restart the system or remove and create additional arrays.
sfdisk -d /dev/sdb | sfdisk /dev/sdc mdadm --grow /dev/md0 --level=5 mdadm --manage /dev/md0 --add /dev/sdc mdadm --grow /dev/md0 --raid-devices=3 resize2fs /dev/md0
Good evening 😛