zfs上不完整的recursion快照

我在我们的一个系统上得到了一堆新的磁盘,并想将一个现有的池转移到它们上面,所以我做的是这样的:

zfs snapshot -r old-pool@replicaton zfs send -R old-pool@replication | mbuffer -m 1G | zfs receive -F -d new-pool 

但是在操作过程中,我收到了zfs send的警告,抱怨说快照old-pool/some/fileset@replication不存在…

当我去调查时,我发现确实zfs snapshot -r忽略了在old-pool/some/fileset上创build一个快照。 所以我跑了

 zfs list -r -o name old-pool | \ xargs -n1 perl -e 'system "zfs","list",$ARGV[0]."\@replication"' 

发现有大约10%的文件集没有这个快照。

然后我开始单独创build缺less的快照,并且工作正常。

我已经重复了这个实验,又发现了同样的问题。

任何想法如何可以?

这发生在omnios r151010上

天啊! 多么尴尬……我find了原因…

我尝试复制的池(旧池)本身是一个备份存储,通过zfs receive -F接收定期更新

所以当我的recursion快照最初完成时,当新的快照被集成到单个文件集中时,它被“清除”了。

一旦我停止了将快照发送到old-pool的备份脚本,世界再次按预期工作。