freebsd下nfs|freebsd下nfs server的配置及其要点

freebsd 9开始,nfs采用v4协议,自然是版本高些,支持的特性多些,安全性更好些。我们今儿用的是最新的11.1-RELEASE
【freebsd下nfs|freebsd下nfs server的配置及其要点】话说为啥要用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

上述服务基本是通过如下命令来启动:
systemctlstart nfs systemctlstart rpcbind systemctlstart rpc-statd systemctlstart 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 吧。。。

    推荐阅读