我正在 Ubuntu Server 16.04LTS 上设置 ZFS 和 NFS,但遇到了一个奇怪的问题,让我抓狂不已。我已使用 ZFS 共享设置了 ZFS 和 NFS,具体说明如下https://pthree.org/2012/12/31/zfs-administration-part-xv-iscsi-nfs-and-samba/。正如您在下面的日志中看到的,尽管我已将 zfs-share 设置为zfs share -a
在启动期间运行,但共享仍未导出。更奇怪的是,当我手动运行它时,它仍然没有导出 。如果我重置其中一个共享的属性然后重新运行,zfs share -a
我只能让 zfs 共享工作。见下文sharenfs
zfs share -a
$ 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
我的 Ubuntu 16.04.05 LTS 也有类似的问题。
第一个问题:您是否使用systemd或老式的在里面系统?16.04 使用systemd默认情况下,ZFS 组件的调试效果并不好。
下次重新启动并且您的共享不存在时,请尝试:
# systemctl restart zfs-share.service
然后看看股票是否存在显示安装。顺便说一句,我的系统上的 RPC 注册服务出现问题,因此您可能需要执行以下操作:
# systemctl start rpcbind.service
如果rpcbind不是先跑的。
如果这可以缓解您的问题,您可以考虑将这些命令添加到您的系统 rc 文件中,但我每次重新启动时都会手动执行此操作。
答案2
我在 Ubuntu 16.04 下也遇到了这个问题,但这可能也适用于较新的版本。有一个 bug,即 systemd 单元在启动时 zfs-share.service
不执行sharenfs -a
https://github.com/zfsonlinux/zfs/issues/1375
作为一种解决方法,您可以将其添加到/etc/rc.local
sudo zfs unshare -a
sudo zfs share -a
有关详细信息,请参阅此讨论:https://github.com/zfsonlinux/zfs/issues/2107#issuecomment-47182970