【问题标题】:zfs send warning: snapshot does not exist (it exists)zfs 发送警告:快照不存在(存在)
【发布时间】:2017-12-08 03:58:15
【问题描述】:

我在机器 A 中有下一个“zfs 池”:

root@machineA:/ # zfs list -t all
NAME                                            USED  AVAIL  REFER  MOUNTPOINT
tank                                           7.44M  28.8G    20K  /tank
tank/test                                        92K  28.8G    19K  /tank/test
tank/test@SNAP_2017-June-30_10:00:00              9K      -    19K  -
tank/test@SNAP_2017-July-01_10:00:00              9K      -    19K  -
tank/test@SNAP_2017-July-02_10:00:00              9K      -    19K  -
tank/test@SNAP_2017-July-03_10:00:00              9K      -    19K  -
tank/test@SNAP_2017-July-04_10:00:00               0      -    19K  -
tank/test@BACKUP_from_2017-June-30                 0      -    19K  -
tank/test/exe                                    37K  28.8G    19K  /tank/test/exe
tank/test/exe@EXE_2017-June-29_13:58:49           9K      -    19K  -
tank/test/exe@EXE_2017-July-03_10:00:00           9K      -    19K  -
tank/test/exe@EXE_2017-July-04_10:00:00            0      -    19K  -
tank/test/exe@BACKUP_from_2017-June-29

并且我想向机器 B 发送快照:

root@machineB:/ # zfs list -t all
NAME   USED  AVAIL  REFER  MOUNTPOINT
tank  6.04M  28.8G    23K  /tank

使用 netcat 我可以发送快照,但系统返回一个非常不寻常的错误...

如果我这样做:

B: nc -w 5 -l 7766 | zfs recv tank/test/exe
A: zfs send -R tank/test/exe@EXE_2017-July-04_10:00:00 | nc -w 5 192.168.99.2 7766

没关系,但如果我这样做:

B: nc -w 5 -l 7766 | zfs recv tank/test
A: zfs send -R tank/test@SNAP_2017-July-04_10:00:00 | nc -w 5 192.168.99.2 7766

快照流已发送,但在源端我可以显示:

root@machineA:/ # zfs send -R tank/test@SNAP_2017-July-04_10:00:00 | nc -w 5 192.168.99.2 7766
WARNING: could not send tank/test/exe@SNAP_2017-July-04_10:00:00: does not exist
WARNING: could not send tank/test/exe@SNAP_2017-July-04_10:00:00: does not exist

为什么 ZFS 采用数据集 tank/test/exe?有什么建议吗?

【问题讨论】:

    标签: dataset send snapshot zfs


    【解决方案1】:

    实际上,它所抱怨的快照 存在于源系统上——tank/test/exe 只有@EXE_<date> 快照,而您正在尝试发送tank/test/exe@SNAP_<date>。出现此警告是因为您正在从顶级 tank/test 文件系统发送 -R (递归),该文件系统首先发送父文件系统上的指定快照,然后在子文件系统中搜索相同的快照名称以尝试也发送那些。通常,这仅在您使用 -R 在父文件系统上拍摄快照时才符合您的预期——在您的系统上,您只对父文件系统进行了快照,而同时对子文件进行了快照。

    在发送系统上,您可能希望将命令更改为: zfs send -R tank/test/snap@SNAP_2017-July-04_10:00:00 | nc -w 5 192.168.99.2 7766

    【讨论】:

    • 谢谢你,你有理由。我将验证是否可以在我的应用程序中执行zfs send function,以避免在更改树之前出现此警告。
    猜你喜欢
    • 1970-01-01
    • 2018-01-28
    • 2018-10-07
    • 2021-06-19
    • 2018-08-18
    • 2020-09-26
    • 1970-01-01
    • 2016-06-08
    • 2019-01-24
    相关资源
    最近更新 更多