NFS服务
一、NFS简介
NFS(Network File System)即网络文件系统,它允许网络中的不同计算机相互之间共享资源。NFS客户端可以透明地读写远程NFS服务器上的文件,就像访问本地文件一样。
二、NFS服务概述
NFS是1980年由SUN发展出来在UNINX&Linux系统间实现文件共享的一种方法。它是一种文件系统协议,支持应用程序在客户端通过网络存取位于服务器磁盘中的数据。
NFS只提供网络文件共享功能,不提供数据传输的功能。因此NFS客户端和NFS服务器需要借助RPC(Remote Procedure Calls)远程过程调用协议实现数据传输。RPC定义了一种进程间通过网络进行交互通信的机制,它允许客户端进程通过网络向远程服务进程请求服务,而不需要了解服务器底层的通信协议详细信息。
NFS服务器自开启服务之后一直处于等待状态,由NFS客户端建立过程调用的请求,将调用参数发送到远程NFS服务器,并等待响应。当请求到达远程NFS服务器后,NFS服务器处理客户端的请求,调用指定的程序,并将结果返回NFS客户端。NFS服务器上的目录如果可以被过程用户访问,就称为导出(export);客户主机访问服务器导出目录的过程称为挂载(mount)或导入(import)。
三、NFS工作流程
当访问程序通过NFS客户端向NFS服务端存取文件时,其工作流程如下所述:
步骤1,首先用户访问NFS共享资源,由程序在NFS客户端上发出NFS文件存取功能的询问请求,这时NFS客户端(即执行程序的服务器)RPC服务(portmap 或 rpcbind 服务)就会通过网络向NFS服务端的RPC服务(即 portmap 或 rpcbind 服务)的111端口发出NFS文件存取功能的询问请求。
步骤2,NFS服务端的RPC服务(即 portmap 或 rpcbind 服务)找到对应的已注册的NFSdaemon端口后,通知NFS客户端的RPC服务(即 portmap 或 rpcbind 服务)。
步骤3,此时NFS客户端就可以获取到正确的端口,然后就直接与NFS daemon 联机存取数据。
步骤4,NFS客户端把数据存取成功后,告诉用户存取结果。
由于NFS的各项功能都需要向RPC服务注册,所以RPC服务能获取到NFS服务的各项对应的端口号、PID、NFS在主机监听的IP等,从而NFS客户端才能够通过RPC服务询问从而找到正确的端口。也就是说,NFS需要有RPC服务,NFS服务只需在服务端后于RPC启动,客户端无需启动NFS服务。
四、NFS服务实践
案例1:
某公司新购一台服务器,服务器上已安装Linux操作系统,现要求将服务器配置成NFS服务器,实现文件共享服务,公司网络的网段为192.168.X.0/24。具体共享要求如下:
(1)在服务器端创建目录/nfs<y>1,并在其中创建文件rodir.txt,再创建目录