I am unable to create a replica of an existing ZFS volume and snapshots. For my other volumes, I am synchronizing the backups nightly via zfs send / zfs receive and that works okay.
That said, I thought the process to create a replica of an existing volume was basically:
zfs send -vR zfs_volume_name@snapshot_name | ssh -x backup_server sudo zfs receive zfs_backup_volume_name
However, when I do that, I get:
cannot receive new filesystem stream: invalid backup stream
When I start the command to sync, it looks like it is going to work. It starts saying the expected size for each snapshot it is going to send, but then it quickly dies with the above error.
If it is of any significance, I am doing this as one of my backup volumes was not synced in a very long time and, I am missing some incremental snapshots, so there is no common ground. I renamed the existing volume with the date I discovered the problem and intend to create a new volume from the new master. Once I get the new backup volume up and running, I will drop the old one.
I believe the only difference between my incremental and this is I am sending -I to send incremental, so I would expect this to work for a full backup.
If I simply send the backup stream to a file, it works okay. I have the same version of ZFS on both the source and target, albeit a newer kernel. I am suspecting that the pools are different versions, the version number doesn't display on either when I do zpool get version .
Depending on the specific ZFS version, this can be due to a mismatched dnodesize.
Please update both ZFS boxes and try again.
I believe the problem was caused by using an older OS (despite the ZFS version installed being the same). I am using the same OS version (dd if=current_root of=usb_device) on both boxes now and am able to sync as expected.