Changing recordsize on existing ZFS dataset
You need to copy the data off and back onto the filesystem if you want to take advantage of the new record size.
I'm not sure what your question is, though.
Late reply, I know, but here are a couple of pointers:
-
zfs receive
has a-o recordsize
option which lets you override the value on the receiving end. -
IMHO syncing ZFS datasets are most easily achieved with syncoid's help (which is part of the Sanoid suite). For example, the following reasonably simple command line would replicate the given dataset from existing Zpools
apool
tobpool
whilst forcing the desiredrecordsize
to 64k on the receiving end:syncoid --recursive --recvoptions="o recordsize=64k" apool/DATASET bpool/DATASET
syncoid
is a wrapper around zfs send/receive
, which operates off snapshots that it manages itself; so you can use it while your system is running and also send incrementals. --recvoptions
are passed through to zfs receive
. This option is only documented in syncoid
's manpage, not on the Github page, but it works exactly as expected.