ZFS Receive Doubles REFER Size
I have a dataset on one pool with 2 disks in a mirror, ashift=12. This dataset has recordsize=4K and is consuming around 450 GB. When I zfs send this dataset (using sanoid + syncoid for the first time) to my backup pool with 6 disks in RAIDZ2, ashift=12, it nearly doubles the storage usage to 890 GB. Any idea why this is?
The dataset has a VM qcow2 file in it. The file reports the correct size via ls, but du shows 890 GB used on the backup dataset and zfs list shows this amount under REFER.
I only have two clues right now:
1. I have an Optane ZIL slog device on the backup pool that was created ashift=9. Would this have any effect? Does zfs receive use sync writes?
2. syncoid doesn't create the target dataset using the same recordsize as the source (4K in my case), so I changed that setting right when it started syncing. Would this cause the issue since there is only one file in the dataset? Is the recordsize set per file and immutable no matter how much more data comes in?