一、NFS介绍

1. 什么是NFS?


NFS(Network File System,网络文件系统),是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样


2. NFS的应用场景

A,B,C三台机器上需要保证被访问到的文件是一样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致



3. NFS的工作原理


远程客户端进行nfs请求,RPC获得请求,通知PORTMAP(rpcbind)来获取端口号,然后PORTMAP(rpcbind)将可用的端口号传给NFS、RPC,然后NFS模块再进行权限检验,如果有足够的权限,RPC就通过PORTMAP给出的端口进行数据传输,并通过该端口到达客户端。




nfs 开源服务 nfs原理及安装配置_IP




二、NFS服务端安装配置


两台机器


A机器IP:192.168.177.7     服务端


B机器IP:192.168.177.8     客户端



1. A机器  安装 nfs-utils 和 rpcbind 这两个包,执行如下命令


yum install -y nfs-utils rpcbind


2. B机器  安装 nfs-utils 这个包,执行如下命令

yum install -y nfs-utils

 


vim /etc/exports


在文件中加入1行:


/home/nfstestdir 192.168.177.8/24(rw,sync,all_squash,anonuid=1000,anongid=1000)


4. A机器 创建分享的目录并更改权限为777


mkdir /home/nfstestdir
 
chmod 777 /home/nfstestdir


5. A机器 启动NFS服务


systemctl start nfs


6. A机器 设置NFS开机启动


systemctl enable nfs



三、NFS配置选项


rw       读写


ro       只读


sync   同步模式,内存数据实时写入磁盘


async 非同步模式


no_root_squash    客户端挂载NFS共享目录后,root用户不受约束,权限很大


root_squash          与上面选项相对,客户端上的root用户收到约束,被限定成某个普通用户


all_squash             客户端上所有用户在使用NFS共享目录时都被限定为一个普通用户


anonuid/anongid 和上面几个选项搭配使用,定义被限定用户的uid和gid



四、客户端挂载


showmount命令用于查询NFS服务器的相关信息


1. 查看通讯是否正常,B机器上执行命令


showmount -e 192.168.177.7


     showmount  -e   显示NFS服务器的输出清单


     如果出现报错,注意下防火请是否关闭


2. B机器 挂载磁盘,将磁盘挂载到mount下


mount -t nfs 192.168.177.7:/home/nfstestdir /mnt/