freebsd下nfs server的配置及其要点

freebsd 9开始,nfs采用v4协议,自然是版本高些,支持的特性多些,安全性更好些。我们今儿用的是最新的11.1-RELEASE

话说为啥要用FreeBSD?这linux不是也很好吗? 答曰:为了稳定。
话说linux不稳定吗?答曰:年轻人,你对比了就知道了。传统UNIX应用,为了能在大负荷下连续开机三五年不出现异样,FreeBSD是明知的选择。

默认安装的时候,系统就已经带了nfs,所以就不需要安装了,直接上配置:

root@h-r720xd-1:/exports/backup # cat /etc/rc.conf
...
rpcbind_enable="YES"
mountd_enable="YES"
mountd_flags="-r"

nfs_server_enable="YES"
nfs_server_flags="-u -t -n 10"
nfs_reserved_port_only="YES"

nfsv4_server_enable="YES"
nfsuserd_enable="YES"
nfsuserd_flags="-domain host.cziic.cn"
...

备注一下:nfsuserd其实就是linux下的idmap,
nfsuserd_flags里面的 -domain host.cziic.cn 是nfsv4特有的配置,nfsv4是用user@domain的方式来完成用户认证的。

然后再来配置 /etc/exports 文件,这个文件里面是配置哪些目录可以被nfs client挂到。

root@h-r720xd-1:/exports/discuz/html # cat /etc/exports
V4: /  -network 10.23/16

/exports/discuz -maproot=root

V4: 这一行,是表示用nfsv4的协议来导出;-network 10.23/16是表示仅允许10.23.0.0/255.255.0.0的机器来访问。
/exports/discuz 是要导出的目录, -maproot=root是表示,所有root的操作,都会用本地root账号的权限来操作。这个有点类似 no_root_squash 的意思。

再看client端:

client端是台linux,起如下的服务:

nfsd
nfsiod
rpc.idmapd
rpcbind
rpc.mountd
rpc.statd

上述服务基本是通过如下命令来启动:

systemctl  start nfs
systemctl  start rpcbind
systemctl  start rpc-statd
systemctl  start nfs-idmapd
systemctl start nfs-mountd

对于nfsv4来说,idmapd还需要一个配置文件:/etc/idmapd.conf

$ cat /etc/idmapd.conf 
[General]
Domain = host.cziic.cn
...
[Translation]
Method = nsswitch
...

host.cziic.cn是在服务器的配置里定义的,要对应起来。

好了,现在要看看nfs server和nfs client两台机器上,用户是不是对应了,如果没有对应就相互建一下,不然如果涉及到用户的操作会失败的(诸如chown之类的操作)

开始 mount -t nfs 吧。。。

    原文作者:贺鱼
    原文地址: https://www.jianshu.com/p/c005bbde1cb6
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞