我无法创建现有 ZFS 卷和快照的副本。对于我的其他卷,我每晚通过 zfs send / zfs receive 同步备份,并且工作正常。
也就是说,我认为创建现有卷副本的过程基本上是:
zfs send -vR zfs_volume_name@snapshot_name | ssh -x backup_server sudo zfs receive zfs_backup_volume_name
但是,当我这样做时,我得到:
cannot receive new filesystem stream: invalid backup stream
当我启动同步命令时,它看起来会起作用。它开始说它将要发送的每个快照的预期大小,但随后它很快就因上述错误而死。
如果它有任何意义,我这样做是因为我的一个备份卷在很长时间内没有同步,而且我错过了一些增量快照,所以没有共同点。我用发现问题的日期重命名了现有卷,并打算从新的主卷创建一个新卷。一旦我启动并运行了新的备份卷,我将删除旧的备份卷。
我相信我的增量和这之间的唯一区别是我发送 -I 发送增量,所以我希望这适用于完整备份。
如果我只是将备份流发送到一个文件,它就可以了。我在源和目标上都有相同版本的 ZFS,尽管是更新的内核。我怀疑池是不同的版本,当我执行 zpool get version 时,版本号都不会显示。
根据特定的 ZFS 版本,这可能是由于dnodesize 不匹配造成的。
请更新两个 ZFS 框并重试。
我相信问题是由使用较旧的操作系统引起的(尽管安装的 ZFS 版本相同)。我现在在两个盒子上使用相同的操作系统版本(dd if=current_root of=usb_device)并且能够按预期同步。