ZFS NFS共享未导出Ubuntu 16.04

ZFS NFS共享未导出Ubuntu 16.04,ubuntu,ubuntu-16.04,nfs,zfs,Ubuntu,Ubuntu 16.04,Nfs,Zfs,我正在Ubuntu服务器16.04LTS上安装ZFS和NFS,有一个奇怪的问题让我发疯。我已经使用ZFS共享设置了ZFS和NFS,如中所述。正如您在下面的日志中所看到的,尽管我已将zfs share设置为在引导期间运行zfs share-a,但这些共享仍然没有导出。更奇怪的是,当我手动运行zfs share-a时,zfs share-a仍然不能运行。只有重置其中一个共享的sharenfs属性,然后重新运行zfs共享-a,我才能使zfs共享工作。见下文 $ showmount -e Export

我正在Ubuntu服务器16.04LTS上安装ZFS和NFS,有一个奇怪的问题让我发疯。我已经使用ZFS共享设置了ZFS和NFS,如中所述。正如您在下面的日志中所看到的,尽管我已将zfs share设置为在引导期间运行
zfs share-a
,但这些共享仍然没有导出。更奇怪的是,当我手动运行zfs share-a时,
zfs share-a仍然不能运行。只有重置其中一个共享的
sharenfs
属性,然后重新运行
zfs共享-a
,我才能使zfs共享工作。见下文

$ showmount -e
Export list for apu:
/mnt localhost
$ sudo zfs share -a
$ showmount -e
Export list for apu:
/mnt localhost
$ sudo zfs share pool1
cannot share 'pool1': filesystem already shared
$ sudo zfs get sharenfs pool1
NAME   PROPERTY  VALUE     SOURCE
pool1  sharenfs  on        local
$ sudo zfs set sharenfs=on pool1
$ showmount -e
Export list for apu:
/s/apu/a/homes *
/s/apu/a       *
/s/apu/a/sys   *
/mnt           localhost
$ sudo zfs share -a
$ showmount -e
Export list for apu:
/s/apu/b       *
/s/apu/a/homes *
/s/apu/a       *
/s/apu/a/sys   *
/s/apu/b/cwc   *
/mnt           localhost

老实说,在NFS服务器和
sharenfs
设置之间的交互中似乎至少有一个bug:

  • 首先,如果任何文件系统启用了
    sharenfs
    ,那么对
    zfs share-a
    的调用应该使这些文件系统在NFS上可见(正如您所期望的那样)。我相当肯定这是一个错误
  • 其次,令人惊讶的是,第二个
    zfs share-a
    调用暴露了任何额外的文件系统(
    /s/apu/b
    /s/apu/b/cwc
    )。这不一定是一个单独的错误(可能是
    zfs set sharenfs=on
    调用修复了以前导致
    zfs share-a
    失败的内部错误,因此它实际上与上面的问题相同),但是如果
    /s/apu/b
    pool1
    上,那么我也会对这种行为感到惊讶
OpenZFS社区(特别是Linux子社区)非常友好和活跃——我建议对他们的Github页面提出一个问题,以便更多地关注这个问题: