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 吧。。。