NFS原理流程及RPC服务的介绍

来源:互联网 发布:c语言有多少个函数 编辑:程序博客网 时间:2024/06/05 13:35

NFS主要功能是通过网络让不同的机器系统之间可以彼此共享文件或目录。NFS客户端可以通过挂在的方式将NFS服务端共享的数据文件目录挂载到NFS客户端本地系统之中。
NFS一般用来存储共享视频,图片,附件等静态数据(用户上传的文件在NFS存储服务器中。),是当前互联网系统架构中最常用的服务之一,特别是中小公司应用频率很高。大公司可能用MFS,GFS,FASTFS分布式系统。
NFS常用架构:
这里写图片描述
服务端共享都是在video,客户端挂载可以自定义

NFS在集群架构中的位置:
这里写图片描述

NFS原理:
经过前面介绍,NFS系统是通过网络来进行数据传输,所以必定会使用端口来进行网络传输。NFS的传输端口是随机选择的,并且通过RPC协议来实现客户端的协调。
什么是RPC服务?
RPC(远程调用服务)。因为NFS支持的功能特别多,而不同的功能都会使用不同的程序来启动,每启动一个功能端口就会用一些端口来传输数据,因此,NFS的功能所对应的端口才无法固定,而是随机取用一些未被使用的小于1024的端口来进行传输。(常规服务端口:0~655535,1024一下,系统服务常用)
所以,客户端要准确的获得NFS服务器所使用的端口,就需要RPC服务。 NFS RPC最主要的功能就是记录每个NFS功能所对应的端口号,并且在NFS客户端请求时将该端口和功能对应的信息传递给请求数据的NFS客户端,让客户端可以链接到正确的端口上去,从而实现数据传输。(本人觉得RPC像是中介)
RPC怎样知道NFS的每个端口呢?
原因是,当NFS服务启动时会随机取用数个端口,并主动向RPC服务注册取用的相关端口信息,这样,RPC服务就可以知道每个端口所对应的NFS功能了,然后RPC服务使用固定的端口号111来监听NFS客户端提交的请求,并将正确的NFS端口答应给NFS客户端,这样一来,就可以让NFS客户端与服务端进行数据传输了。

NFS工作原理流程简图:
这里写图片描述
关键点:服务端需要NFS服务和RPC服务,并且需要先启动RPC服务,客户端只需要RPC服务。
并且,当正式连接建立之后,RPC服务可以关掉,但当有新的请求出现时,必须开启RPC服务。
RPC服务在cestos5.x 下名字叫portmap,centos6.x下叫rpcbind