RAID50 mdadm
Here’s a brief overview of how you’d do this. First, you’d need to create two new RAID5 arrays (wait for the parity calculation to complete), then add each of them to the md stripe. You’d need 6 disks at a minimum to set this up. It would look something like this…
mdadm --create /dev/md1 -v --raid-devices=3 --level=5 /dev/sd[bcd]1 mdadm --create /dev/md2 -v --raid-devices=3 --level=5 /dev/sd[efg]1 mdadm --create /dev/md0 -v --raid-devices=2 --level=0 /dev/md1 /dev/md2
This would give you a RAID50. In the future, if you wanted to expand, you’d need to add another RAID5 array to the set disks to grow the array. Here’s what that would look like…
mdadm --create /dev/md3 -v --raid-devices=3 --level=5 /dev/sd[hij]1 mdadm --manage /dev/md0 --add /dev/md3 mdadm --grow /dev/md0 --raid-devices=3
Then, you’ll need to grow your filesystem to take advantage of the new space. I didn’t do any performance testing in this configuration, so I can’t speak to performance penalties. I can see where managing this could be tricky in the case of a disk failure and could be detrimental to your data, but it’s worth showing how to set this up. mdadm is a very versatile tool and makes software RAID a very manageable thing.