一、什么是NFS
NFS是Network File System的缩写,网络文件系统。它的主要功能是通过网络(一般是局域网)让不同主机系统之间可以共享文件或目录。NFS的客户端(一般为应用服务器如web)可以通过挂载(mount)方式将NFS服务器共享的数据目录挂载到NFS本地客户端(就是某一个挂载点下)。
NFS很像Windows系统的网络共享、安全功能、网络驱动器映射,这也和Linux系统里的samba服务类似。只不过一般情况下,Windows网络共享服务或samba服务用于办公局域网共享,而互联网中小型网站集群架构后端常用NFS数据共享。
大型网站,有可能还会用到更复杂的分布式文件系统,如Moosefes(MFS)、GlusterFS、FastDFS。
二、NFS系统原理介绍
企业工作中的NFS服务器与客户端挂载结构:

NFS服务两次重启向RPC服务注册的端口列表结果:

三、什么是RPC
这个RPC服务类似NFS服务器端和NFS客户端之间的一个中介。
因为NFS支持的功能相当多,而不同的功能会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此,NFS的功能所对应的端口无法固定。
因为端口不固定,这样一来就会造成NFS客户端与NFS服务器端的通信障碍,因为NFS客户端必须要知道NFS服务器端的数据传输端口才能进行通信,才能交互数据。
要解决上面的困扰,就需要通过远程过程调用RPC服务来帮忙了,NFS的RPC服务最主要的功能就是记录每个NFS功能所对应的端口号,并且在NFS客户端发出请求时将该端口和功能对应的信息传递给请求数据的NFS客户端,从而确保客户端可以连接到正确的NFS端口上去,达到实现数据传输、交互数据目的。
四、NFS的工作原理

1)用户访问网站程序,由程序在NFS客户端上发出存取NFS文件请求,这时NFS客户端(执行程序的服务器)的RPC服务(rpcbind服务)就会通过网络向NFS服务器端的RPC服务的111端口发出NFS文件存取功能的询问请求。
2)NFS服务器RPC服务找到对应已注册的NFS端口后,通知NFS客户端RPC服务。
3)此时NFS客户端获取到正确的端口,并与NFS daemon联机存取数据。
4)NFS客户端将数据存取成功后返回给前端访问程序,告知给用户存取结果,就完成了一次存取操作。
无论是NFS客户端还是NFS服务器端,当要使用NFS时都需要首先启动RPC服务,NFS服务必须在RPC服务启动之后启动,客户端无须启动NFS服务,但需要启动RPC服务。




