Network File System (NFS)
网络文件系统:可以把网络上的某个资源做为本地硬盘来使用的一种系统。
该服务主要依赖于:nfsd、mountd以及rpcbind
- nfsd: 接收 NFS 客户端发起的请求
- mountd: 处理由nfsd接收的请潮州
- rpcbind: 允许客户端发现当前的 NFS 服务端口
服务端配置
编辑/etc/rc.conf
并加入以下配置:
rpcbind_enable="YES"
nfs_server_enable="YES"
mountd_flags="-r"
mountd_enable="YES"
接着编辑/etc/exports
,配置文件服务内容:
/yzpool/hosts/20pro -maproot=root 192.168.1.20
上述配置实现了: 可将本地/yzpool/hosts/20pro
映射给192.168.1.20客户端。且当192.168.1.20客户端中的root权限等同于本机的root权限。
然后我们重启一下服务器,以及上面的服务全部生效。
如果编辑过/etc/exports
文件,则需要执行:/etc/rc.d/mountd reload
客户端配置
客户端操作系统以debian11为例,该客户机的 IP 地址为在服务端设置的192.168.1.20
首先我们安装nfs客户端应用:
# sudo apt install nfs-common
然后创建一个挂载点,比如我创建一个位于根路径下的yz做为持载点:
# sudo mkdir /yz
最后我们完成挂载:
# sudo mount -t nfs 192.168.1.2:/yzpool/hosts/20pro /yz
如果我们希望在系统启动的时候同步进行挂载,则需要编辑/etc/fstab
文件来完成。
192.168.1.2:/yzpool/hosts/20pro /yz nfs defaults 0 0
然后重新启动服务器进行测试.
locked 锁定
有些应用程序(比如mysql)需要一个锁定的操作,rpc.lockd
能够提供这个功能。值得注意的是:客户端和服务端都需要配置这个功能。
服务端(FreeBSD)
在文件/etc/rc.conf
中增加
rpc_lockd_enable="YES"
rpc_statd_enable="YES"
然后使用以下命令启动服务:
# /etc/rc.d/lockd start
# /etc/rc.d/statd start
此时在客户端应用lock操作时,便不会发生无法锁定文件的错误了。
其它
dir client1 (options) [client2(options)...]
详解:
ro / rw
: a) ro: 只读 b) rw: 写入加读取sync / async :
a) sync: 服务端应答完上次请求后,才会应答下次请求; b) async: 异应应答。wdelay / no_wdelay
a) wdelay服务器预测是连续请求时,将延迟提交上次的写请求(提升写入效率,数据断电易丢失)no_all_squash / all_squash
a) no_all_squash: 不改变客户端的
参考文档
https://vitux.com/debian-nfs-...