前提:在freebsd中用zfs创建了一个目录,并将目录使用nfs导出。

为什么使用zfs?因为使用zfs创建的目录可以使用NFSv4的acl,比POSIX的acl功能强大。至于此处的NFSv4与/etc/exports中的NFSv4有什么联系还不太清楚。

FreeBSD服务器端

NFS server的配置如下(仅列出NFS相关行):

root@static:~ # cat /etc/rc.conf

zfs_enable="YES"

nfs_server_enable="YES"

nfsv4_server_enable="YES"

nfsuserd_enable="YES"

root@static:~ # cat /etc/exports

/static/data/videos/channel v.srv.local

Linux客户端

在linux client中挂载:

root@vdo :~ #mount static.srv.local:/static/data/videos/channel /vlocal

挂载失败,提示信息:

mount.nfs: access denied by server while mounting static.srv.local:/static/data/videos/channel

同时:

root@static:~ #tail /var/log/message

RPC: server static.srv.local requires stronger authentication.

分析可能是因为NFSv4中有多种身份验证方式,而linux连接时并未使用NFS server默认的验证方式。

修改/etc/exports,在顶部加上一行

root@static:~ # cat /etc/exports

V4: /static/data -sec=sys

/static/data/videos/channel v.srv.local

指定NFS server使用的身份验证方式。NFS server重启mountd服务。

root@static:~ # service mountd onerestart

Stopping mountd.

Waiting for PIDS: 30245.

Starting mountd.

linux client挂载成功。

为了实现linux client在启动时自动挂载nfs,需要将挂载参数写入/etc/fstab

root@vdo :~ # cat /etc/fstab

static.srv.local:/static/data/videos/channel /vlocal nfs defaults,nolock 0 0

同时必须启动netfs服务。因为在系统挂载fstab中的挂载点时,网络接口可能并未启动,所以会导致无法挂载nfs。

如果挂载参数不加nolock,则必须启动rpcbind服务。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐