NFS服务

1.nfs共享目录

1.1 NFS网络文件系统

NFS(网络文件系统)服务可以将远程Linux系统上的文件共享资源挂载到本地主机的目录上,从而使得本地主机(Linux客户端)基于TCP/IP协议,像使用本地主机上的资源那样读写远程Linux系统上的共享文件。

1.2 NFS的工作模式和工作机制

  • 基于C/S的架构体系工作
  • 基于RPC来实现网络文件共享

1.2.1 RPC

RPC是远程过程调用协议,本地主机通过网络对远程服务器请求服务,当本地主机请求的数据是动态数据时,服务器根据本地主机的请求查找数据的过程是远程调用,而请求静态数据时则不是。

rpc工作机制如上图所示,下面来描述一下它:

  • 客户端程序发起一个RPC系统调用基于TCP协议发送给另一台主机(服务端)
  • 服务端监听在某个套接字上,当收到客户端的系统调用请求以后,将收到的请求和其所传递的参数通过本地的系统调用执行一遍,并将结果返回给本地的服务进程
  • 服务端的服务进程收到返回的执行结果后将其封装成响应报文,再通过rpc协议返回给客户端
  • 客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行

1.2.2 nfs工作机制

//NFS服务器端运行着四个进程
		nfsd	
		mountd
		idmapd
		portmapper

nfsd		//nfs的守护进程,监听的端口是tcp/udp(2049),不负责文件存储(由NFS服务器本地内核负责调度存储),由客户端发起的rpc请求,并将其转交给本地内核,而后存储在指定的文件系统上

mountd	//用于验证客户端是否在允许访问此NFS文件系统的客户端列表中,在则允许访问(发放一个令牌,持令牌去找nfsd),否则拒绝访问,mountd的服务端口是随机的,由rpc服务(portmapper)提供随机端口号

idmapd	//实现账号的集中映射,把所有本地主机在共享目录中创建的文件的所有账号都映射为NFSNOBODY,但是在访问时却能以本地用户的身份去访问

portmapper		//NFS服务器的rpc服务,其监听的端口是tcp/udp(111),这是rpc服务的端口号,用于管理远程过程调用

1.2.3 nfs的工作流程

  • 当客户端想要查看某一文件时,会将查看信息的指令发送给内核,内核通过nfs模块得知此文件不是本地文件,而是在远程nfs主机上
  • 客户端主机的内核通过RPC协议把查看文件信息的指令(系统调用)封装成rpc请求,通过rpc的tcp111端口发送给NFS服务器主机的portmapper
  • NFS服务器主机的portmapper(RPC服务进程)告诉本地客户机说NFS服务端的mountd服务在某一个端口上,(mountd的端口随机生成),去找mountd验证
  • 当本地客户机得知服务端的mountd进程端口号后,通过已知的服务器mountd端口请求验证
  • 当服务器的mountd收到验证请求后,验证请求的客户机是否在允许访问此NFS文件系统的客户端列表中,在则允许访问(发放一个令牌,持令牌去找nfsd),否则拒绝访问
  • 验证通过后客户端持mountd发放的令牌去找服务端的nfsd进程,请求查看某文件
  • 服务端的nfsd进程发起本地系统调用,向内核请求查看客户端要查看的文件的信息
  • 服务端的内核执行nfsd请求的系统调用,并将结果返回给nfsd服务
  • nfsd进程收到内核返回的结果后将其封装成rpc请求报文并通过tcp/ip协议返回给客户端

1.3 NFS的优缺点

1.3

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值