Some technical notes on migrating from 3-disk raid5 to raid1 without dataloss or reformatting.
My setup: I had a 3-disk raid5 ( 500GBx3, giving 990ish GB of usable space)
*) Empty enough space, you need to go down to the smallest disk in your collection, in my case, cleaned out to some 340GB used space, simply because I could.
*) fsck, need to be done before resize.
fsck -f /dev/md0
*) resize the filesystem so it's smaller than the disk size. Preferably
with some margin.
resize2fs -p /dev/md0 400G
( this takes _TIME_ around 1.4Meg/second total )
*) pretend-shrink the array
mdadm --grow /dev/md0 --array-size=471859200
*) fsck-test ( read-only to check you don't lose any data)
fsck -n -f /dev/md0
*) reduce the array to a two-disk raid5 (takes time, needs to do a full
recovery, approx 22MB/sec )
mdadm --grow /dev/md0 --backup-file=/root/backup-mdadm --raid-devices=2
*) transform from a 2disk raid5 to a 2disk raid1
mdadm --grow /dev/md0 --level=raid1 --backup-file=/root/backup-raid5
*) resize the filesystem to fill the whole raid
mdadm --grow /dev/md0 --size=max
resize2fs -p /dev/md0
*) remove the spare device from your set.
After that, I just moved one of the drives into the other system, activated it as degraded, copied my files over, and resynced it all.