NFS(网络文件系统)是linux操作系统下的一种特殊的文件系统,使用这一文件系统,当前主机可以加载其他提供NFS服务的linux主机,这种

方式可以便捷的实现linux主机之间文件的互相访问。NFS文件系统仅占用系统挂载点,NFS客户端用户的PC将网络远程的NFS主机分享的目录挂载到本地计

算机中,可以运行相应的程序,共享应用的文件,但不占用当前的系统资源。

将NFS服务器的共享文件夹挂载到客户端,使用协议RPC(远程进程调度)

p_w_picpath

NFS使用rpc

1.当服务器端的nfs和rpc 服务 启动后会形成很多进程:mountd ,nfs,nlockmgr,status进程。

2. 客户端有rpc.mountd ,rpciod , nlockmgr,status进程。

3.客户端需要挂载服务器端的文件,使用rpc.mountd进程项服务器的portmapper 发送请求连接。

4.服务器端的portmapper 收到请求后,向客户端回应,同时告诉客户端使用哪个端口与服务器相连。

5.客户端使用rpc.mountd 请求服务器端进程mountd,进行挂载。

6.挂载完毕后,客户端使用进程rpciod 调用服务端的nfs进程,进行磁盘io操作。

7.两端都调用nlockmgr锁机制,当服务器端在编写文档时,禁止客户端的访问。

8. 为了维持连接,两端都使用status进程。

linux主机服务器端配置:

[root@lyt ~]# rpm -qa |grep nfs     #查看nfs的服务是否安装

p_w_picpath

[root@lyt ~]# rpm -ql nfs-utils |less      #分页查看nfs-utils软件包

p_w_picpath 

[root@lyt ~]# rpcinfo –p #查看本地rpc进程

p_w_picpath

[root@lyt ~]# rpcinfo -p 192.168.101.36 #查看192.168.101.36的rpc进程

[root@lyt ~]# service nfs start #启动nfs服务

[root@lyt ~]# chkconfig nfs on #设置开机自动启动

[root@lyt ~]# mkdir /public      #创建一个目录public

[root@lyt ~]# vim /etc/exports       #编辑共享清单exports,该文件默认是空文件

p_w_picpath

[root@lyt ~]# cd /public/

[root@lyt public]# touch p1      #创建一个文件p1,用户在客户端上的测试

[root@lyt ~]#  exportfs –rv       #将设置共享的文件导出

p_w_picpath

linux主机客户端配置临时挂载:

[root@localhost ~]# rpcinfo –p      #查看本地rpc进程

p_w_picpath

[root@localhost ~]# showmount -e 192.168.101.66     #测试是否具有权限查看192.168.101.66服务器上的共享文件

p_w_picpath

[root@localhost ~]# mkdir /mnt/nfs       #创建一个挂载点nfs

[root@localhost ~]# mount 192.168.101.66:/public /mnt/nfs/      #将服务器上的共享文件临时挂载到本地的挂载点/mnt/nfs上

[root@localhost ~]#  cd /mnt/nfs/      #切换到挂载点

p_w_picpath

linux主机客户端配置开机自动挂载:

[root@localhost nfs]# fuser -km /mnt/nfs/      #强制卸载,执行完后,再次使用umount  /mnt/nfs进行卸载

[root@localhost nfs]# umount /mnt/nfs/         #如果还是不能卸载则可以重启系统即可

[root@localhost nfs]# vim /etc/fstab      #编辑开机自动挂载文件

p_w_picpath

[root@localhost nfs]# mount -a

linux主机客户端配置连接自动挂载:

[root@localhost nfs]# umount /mnt/nfs/       #将上一步骤中的开机自动挂载卸载掉

[root@localhost nfs]# rpm -qa |grep auto      #查看与自动挂载相关的软件包auto

p_w_picpath

[root@localhost nfs]# vim /etc/auto.master       #编辑与自动挂载相关的配置文件

p_w_picpath

[root@localhost nfs]# cp -p /etc/auto.misc /etc/auto.nfs       #产生auto.nfs文件

[root@localhost nfs]# vim /etc/auto.nfs       #编辑该文件

p_w_picpath

[root@localhost nfs]# service autofs restart      #重启autofs服务

[root@localhost nfs]# mount      #查看挂载的目录

p_w_picpath

[root@localhost nfs]# cd server1   #其实在/mnt/nfs下并没有server1目录,强制切换到server1中后,会自动产生该目录,此时已经将服务器上的

共享文件挂载到了客户端

[root@localhost server1]# mount      #使用mount查看是否挂载成功

p_w_picpath

[root@localhost server1]# cd      #离开server1目录

[root@localhost ~]# mount       #离开一份分钟后再次查看挂载情况,此时server1目录也不存在了

p_w_picpath