**
NFS
1.1 nfs特点
1.2 使用nfs的好处
1.3 nfs的体系的组成
1.4 nfs的应用场景
二. nfs工作机制
2.1 RPC
2.2 NIS
2.3 nfs工作机制
三. exports文件的格式
四. nfs管理
五. 在服务器和客户端上操作
1.NFS简介
1.1 nfs特点
NFS (Network File Sytem)即网络文件系统,是FreeBSD支持的文件系统中的一 一种,它允许网络中的计算机之间通过TCP/IP网络共享资源
●在NFS的应用中, 本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样
●nfs适用于Linux与Unix之间实现文件共享, 不能实现Linux与Windowsi间的文件共享功能nfs是运行在应用层的协议,其监听于2049/tcp和2049/udp套接字上
●nfs服务只能基于IP进行认证,这也是它的缺点之-
1.2使用nfs的好处
●节省本地存储空间, 将常用的数据存放在-台NFS服务 器上且可以通过网络访问, 那么本地终端将可以减少自身存储空间的使用
.用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用
●一些存储设备如软驱、CDROM和Zip (- 种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量
1.3 nfs的体系组成
nfs体系至少有两个主要部分:
- 一台nfs服务器
- 若干台客户机
nfs体系的架构图如下:
客户机通过TCP/IP网络远程访问存放在NFS服务器上的数据 在NFS服务器正式启用前,需要根据实际环境和需求,配置-些NFS参数
1.4 nfs的应用场景
nfs有很多实际应用场景,以下是一些常用的场景:
-
多个机器共享一台CDROM或其他设备。这对于在多台机器中安装软件来说更加便宜与方便
-
在大型网络中,配置一台中心NFS服务器用来放置所有用户的home目录可能会带来便利。这些目录能被输出到网络以便用户不管在哪台工作站上登录,总能得到相同的home目录
-
不同客户端可在NFS上观看影视文件,节省本地空间
-
在客户端完成的工作数据,可以备份保存到NFS服务器上用户自己的路径下
2.nfs工作机制
nfs是基于rpc来实现网络文件系统共享的。所以我们先来说说rpC。
2.1 RPC
RPC (Remote Pocedor Cal PotoC),远程过程调用协议,它是种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
RPC协议假定某些传输协议的存在,如加TCP或UP,为通信程序之间携带信息数据, 在OS网络通信模型中,RPC跨越了传输层和应用层。
rpc工作机制如上图所示,下面来描述一下它:
- 客户端程序发起一一个RPC系统调用基于TCP协议发送给另一 台主机(服务端)
- 服务端监听在某个套接字上,当收到客户端的系统调用请求以后, 将收到的请求和其所传递的参数通过本地的系统调用执行一遍,
并将结果返回给本地的服务进程 - 服务端的服务进程收到返回的执行结果后将其封装成响应报文,再通过rpc协议返回给客户
- 客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行
2.2 NIS
NIS(Network Information System),网络信息系统,是对主机帐号等系统提供集中管理的网络服务。
用户登录任何一台NIS客户机都会从NIS服务器进行登录认证,可实现用户帐号的集中管理。
NIS协议是明文的,所以NIS -般不建议在公网中使用而通常在局域网中使用。
此章主要是讲NFS,所以NIS的配置这里就不详说了,有兴趣的朋友可以去网上搜索。
2.3 nfs工作机制
//NFS服务器端运行着四个进程:
nfsd
mountd
imapd
portmapper
idmapd // 实现用户帐号的集中映射,把所有的帐号都映射为NFSNOBODY,但是在访问时却能以本地用户的身份去访问
mountd //用于验证客户端是否在允许访问此NFS文件系统的客户端列表中,在则允许访问(发放一个令牌,持令牌去找nfsd),否则拒绝访问
//mountd的服务端口是随机的,由rpc 服务(portmapper) 提供随机端口号
nfsd7 //nfs的守护进程,监听在2049/ tcp和2049/ udp端口上
//不负责文件存储(由NFS服务器本地内核负责调度存储), 用于理解客户端发起的rpc请求并将其转交给本地内核,而后存储在指定的文件系统上
portmapper // INFS服务器的rpc服务,其监听于111/ TCP和1117UDP套接字上,用于管理远程过程调用(RPC)
下面通过一一个例子来说明NFS的简单工作流程:
需求:查看file文件的信息,此file存储在远程NFS服务端主机上(挂载在本地目录/ shared/nfs中)
- 客户端发起查看ile信息的指令 (Is fle)
给内核,内核通过NFS模块得知此文件并不是本地文件系统中的文件,而是在远程NFS主机上的一个文件 - 客户端主机的内核通过RPC协议把查看tle信息的指令(系统调用)封装成rpc请求通过TCP的111端口发送给NFS服务端主机的portmapper
- NFS服务端主机的portmapper (RPC服务进程)告诉客户端说NFS服务端的mountd服务在某某端口上,你去找它验证
因为mountd在提供服务时