ubuntu20.04配置NFS文件共享服务器

NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。

NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。

首先我们先安装NFSserver

apt install nfs-kernel-server
systemctl enable nfs-server #然后设置开机启动
systemctl status nfs-server #查看当前nfs-server状态

创建共享文件目录

mkdir -p /data/nas

创建好以后还需要给予最高权限,不然在共享时,客户端使用可能会有权限不够的情况发生

chmod -R 777 /data/nas

接着需要编辑exports来共享上述共享目录

cat /etc/exports
/data/nas 192.168.1.71(rw,sync,no_subtree_check) #单个客户端使用
/data/nas 192.168.1.0/24(rw,sync,no_subtree_check) #整个网段都可以使用

上述参数解释

rw 允许读写
sync 文件同时写入硬盘和内存
no_subtree_check 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率

最后我们需要执行以下命令使配置生效

exportfs -arv

exportfs命令参数如下

exportfs [-aruv]
-a 全部挂载或卸载 /etc/exports中的内容 
-r 重新读取/etc/exports 中的信息 ,并同步更新/etc/exports、/var/lib/nfs/xtab
-u 卸载单一目录(和-a一起使用为卸载所有/etc/exports文件中的目录)
-v 在export的时候,将详细的信息输出到屏幕上。

具体例子:

exportfs -au 卸载所有共享目录
exportfs -rv 重新共享所有目录并输出详细信息

然后在需要挂载NFS共享目录的主机上使用showmount命令查看共享的目录

showmount -e 192.168.1.71

NFS客户端配置,首先安装NFS客户端

apt install -y nfs-common

然后创建一个需要挂载到本的目录,或者是需要挂载的路径

mkdir -p /data/share

可以直接使用以下命令进行临时挂载

mount -t nfs 192.168.1.71:/data/nas /data/share

让其永久生效可以写到fstab文件内

vi /etc/fstab
#最后面添加
192.168.1.71:/data/nas /data/share nfs defaults 0 0

常用命令

nfsstat #查看NFS的运行状态,对于调整NFS的运行有很大帮助。
rpcinfo #查看rpc执行信息,可以用于检测rpc运行情况的工具,利用rpcinfo -p 可以查看出RPC开启的端口所提供的程序有哪些。
showmount
-a 显示已经于客户端连接上的目录信息
-e IP或者hostname 显示此IP地址分享出来的目录
netstat #可以查看出nfs服务开启的端口,其中nfs 开启的是2049,portmap 开启的是111,其余则是rpc开启的


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/380.html