是否有一种方法,我可以只发送最新的快照到备份zfs系统,即使它有以前的快照?当我尝试的时候,我总是会犯错误:
“无法接收新的文件系统流:目的地有快照(例如.mirrorpool/ETC/物)必须销毁它们才能覆盖它”
我已经在-F中使用了zfs发送接收。
基本上,接收系统没有收到一堆快照,因为我发现它已经没有空间了。因此,我删除了接收zfs文件系统上的一堆非常老的快照,并留下了最近的快照,但是执行zfs发送的zfs系统拥有许多在zfs接收器(备份服务器)上不存在的更近期的快照。但我不想将所有丢失的快照复制回它们共有的快照。我只想简单地向zfs接收器发送最新的快照夫妇快照。
目前,zfs接收器已经创建了最初的几张快照,其余的都被删除了,仅剩下的几张是2018年10月左右的最新版本。因此,我想避免将自2018年10月以来的每一次每日快照从Zfs发件人系统发送到zfs接收器,只发送最后几张快照。
或者是否有某种类型的"rsync“类型的zfs send \ zfs接收,在这里我可以保持两个数据集保持同步而不发送任何快照?
发布于 2019-05-05 00:20:48
我在分析您的问题时遇到了一些困难,但我认为它的工作方式如下:
BoxA:pool/dataset@1,2,3,4,5,6,7,8,9,10
BoxB:pool/dataset@1,2,3
您希望在BoxB上获得快照10,但不希望获得所有中间快照(4、5、6、7、8、9)。
假设是这样的话,这就足够简单了:
root@BoxA:~# zfs send -Ri pool/dataset@3 pool/dataset@10 | ssh root@BoxB zfs receive pool/dataset
完成此操作后(注意,我们使用的是小写-i
,而不是大写-I
!),您最终会遇到以下情况:
BoxA:pool/dataset@1,2,3,4,5,6,7,8,9,10
BoxB:pool/dataset@1,2,3,10
注意,由于我们为-R
指定了zfs send
,实际上我们还将发送(并接收)任何假设的子数据集或zvols,例如pool/dataset/child0
、pool/dataset/child1
等等。(还请注意,如果在所有子数据集中没有完全相同的快照可用,那么当您将-R
与zfs send
结合使用时,事情会变得有些奇怪。)
https://serverfault.com/questions/964326
复制相似问题