ZFS NFS 共享未导出 Ubuntu 16.04

Posted

技术标签:

【中文标题】ZFS NFS 共享未导出 Ubuntu 16.04【英文标题】:ZFS NFS Shares not exported Ubuntu 16.04 【发布时间】:2017-03-01 03:08:23 【问题描述】:

我在 Ubuntu Server 16.04LTS 上设置 ZFS 和 NFS,遇到了一个让我发疯的奇怪问题。我已经按照https://pthree.org/2012/12/31/zfs-administration-part-xv-iscsi-nfs-and-samba/ 中的描述使用 ZFS 共享设置了 ZFS 和 NFS。正如您在下面的日志中看到的,虽然我已将 zfs-share 设置为在引导期间运行 zfs share -a,但共享仍然没有导出。更奇怪的是,zfs share -a 在我手动运行时仍然没有。如果我重置其中一个共享的sharenfs 属性然后重新运行zfs share -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

【问题讨论】:

【参考方案1】:

老实说,这看起来在 NFS 服务器和 sharenfs 设置之间的交互中至少存在一个错误:

首先,如果任何文件系统启用了sharenfs,对zfs share -a 的调用应该使这些文件系统在NFS 上可见(如您所料)。我很确定这是一个错误。 其次,令人惊讶的是,第二个zfs share -a 调用暴露了任何额外的文件系统(/s/apu/b/s/apu/b/cwc)。这不一定是一个单独的错误(也许zfs set sharenfs=on 调用修复了导致zfs share -a 之前失败的内部问题,所以它实际上与上面的问题相同),但是如果/s/apu/bpool1 上,那么我也会对这种行为感到惊讶。

OpenZFS 社区(尤其是 Linux 子社区)非常友好和活跃——我建议在他们的 Github 页面上提交问题,以便更多地关注这个问题:https://github.com/zfsonlinux/zfs/issues

【讨论】:

以上是关于ZFS NFS 共享未导出 Ubuntu 16.04的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Raspberry-Pi 设备共享 ZFS 格式的 USB 磁盘

ubuntu NFS 共享磁盘扩展

Ubuntu 通过 NFS 共享目录(qbit)

ubuntu虚拟机设置NFS文件共享

Ubuntu搭建NFS

NFS文件共享服务搭建(ubuntu-centos)