In my ongoing effort to copy the contents of a mirrored two-drive NAS to a four-drive NAS with RAIDZ2 I have concluded that rsync will provide the cleanest copy. Having no intention of copying snapshots I could not figure out how to accomplish this with a TrueNAS replication task. The copy is currently ongoing and will take many more days to complete.
I have decided that it is not a good idea to suspend backups to the two-drive NAS for the duration of that operation and started the UrBackup app again. This means that the source of the rsync run will be changing while it is running.
Will it be okay to simply repeatedly re-run rsync until there are very few files to synchronize and I can finally transition the UrBackup server role to the four-drive NAS? Of course I would suspend UrBackup on the two-drive NAS and let rsync one last time.
The issues you described don’t apply to ZFS replications and snapshots, so I’m not sure why you’re going with the less efficient route?
Rsync needs to crawl the entire directory tree of a source and destination, can bump into permission issues, and is susceptible to changes on the live filesystem. You will also lose any snapshot protections of previous filesystem states.
In theory this should work, but it is much less efficient than ZFS replication.
the best approach depends on your goals… I did once migrate all my data manually, not even with rsync, from one pool to another. This was on purpose, though somewhat painful. I did take (and still have) the zfs send image from that original pool as an insurance policy in case I missed something…
If you did find that you wanted to do rsync, I think what you describe would be fine - I’d recommend disabling the NFS/SMB/iSCSI/whatever share entirely before doing the final rsync before cutover, though.
As pointed out by others, though, ZFS replication is definitely the easiest and safest way to achieve the migration if you have no specific reason to do it another way.