一、什么是NFS
NFS(网络文件系统)是一种分布式文件系统,能够使用户透明地访问远程资源,系统之间能够
共享文档、数据和程序等。
1.1 NFS(网络文件系统)介绍
NFS是一种基于远程过程调用(RPC)协议,采用客户端\服务器结构实现的分布式文件系统。在
NFS的网络环境中,一个Linux系统中既可以作为NFS服务器,提供共享的文件系统或目录,供NFS客户系
统访问;也可以作为NFS客户系统,安装其他服务器提供的远程文件系统或目录,访问其中的目录或文件
资源。
远程资源可安装于本地系统的任何目录位置,一旦安装了NFS服务器提供的远程共享目录或文件系
统,只要给予足够的权限,客户端就可以像访问本地的系统一样,透明地访问服务器中的目录和文件。可以(cp、mv、create、rm)中的文件与目录。
NFS是一种强有力的数据集中存储于客户访问工具,使客户系统能够快速地访问大批量的数据。
如存储在中央数据库中的业务数据。还可以采用NFS方式安装linux系统,还可以利用NFS服务器存储引导
程序,直接引导客户系统。
1.2 NFS协议
工作原理如下:
1.访问一个本地文件还是一个NFS文件对于客户端来说就是透明的,当文件被打开时,有内核决定这
一点,文件被打开之后,内核将本地文件的所有应用传递到名为‘本地文件访问‘的框中,而将NFS文件
的所有引用传递到名为’NFS客户端‘的框中。
2.NFS客户端通过其TCP/IP模块向NFS服务器发送RPC请求,NFS主要使用UDP,最新的实现也可以使用
TCP。
3.NFS服务器在端口2049接收作为UDP数据包的客户端请求,尽管NFS可以被实现为使用端口映射器,
允许服务器使用一个临时端口,但是大多数实现都是直接指定UDP端口2049。
4.当NFS服务器收到一个客户端请求时,它将这个请求传递本地文件访问例程,然后访问服务器主机
上的一个本地磁盘文件。
5.NFS服务器需要话一定的时间来处理一个客户端的请求,访问本地文件系统一般也需要时间。
6.在客户端主机上,NFS客户端需要花一定的时间处理一个用户进程的请求。NFS客户端向服务器主机
发出一个RPC调用,然后等待服务器的应答。为了给使用NFS的客户端主机上的用户进程提供更多的并发
性,在客户端内核中一般运行着多个NFS客户端。
NFS客户端与NFS服务器典型结构
1.3RPC(远程过程调用)
当我们在使用某些服务来进行远程联机的时候,有些信息,例如主机的IP、服务的端口、与对应到的服务的PID 等等,都需要管理与对应!这些管理 port 的对应与服务相关性的工作,就是这个 Remote
Procedure Call, RPC 的任务了,NFS本身的服务并没有提供资料传递的协议,但是 NFS 却能让我们进行
档案的分享,这其中的原因,就是 NFS 使用到一些其它相关的传输协议!而这些传输的协议,就是使用
到这个所谓的 RPC 的功能!也就是说, NFS本身就是使用RPC的一个 program 就是了!所以只要用到
NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实
现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责信息的传
输。这样 Server 端与Client 端才能由RPC的协议来进行program port 的对应喔!NFS 主要在管理分享
出来的目录,而至于资料的传递,就直接将他丢给 RPC 的协议来运作就是了。
1.客户端会向服务器的RPC(Port 111)发出NFS文件存取功能的询问请求。
2.服务器找到对应的已注册的NFS守护进程的端口后会回报给客户端。
3.客户端了解正确的端口后,就可以直接与NFS守护进程来联机。
NFS与RPC服务及操作系统的相关性
本文出自 “10989640” 博客,转载请与作者联系!
原文:http://10999640.blog.51cto.com/10989640/1722539