NFSv4在linux中的挂载

  • 前提:在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服务。

你可能感兴趣的:(NFSv4在linux中的挂载)