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.

  1. We create the same file system layout as on our other disks – sfdisk -d /dev/sdb | sfdisk /dev/sdc
  2. We are upgrading our current RAID5 array – mdadm –grow /dev/md0 –level=5
  3. 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
  4. 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!!!
  5. 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 😛

2 fast RAID 5 advice

  1. If you have RAID 5 system keep the disks in MBR instead of in GPT – at least he gave it to me +10 – +15% difference
  2. Be sure to set / sys / block / md0 / md / stripe_cache_size because it is too small by default. Here the values ​​are according to depends on me 32768 gave the most decent result