NFS
nfs简介
NFS是基于UDP/IP协议的应用,其实现主要是采用远程过程调用RPC机制,RPC提供了一组与机器、操作系统以及低层传送协议无关的存取远程文件的操作。RPC采用了XDR的支持。XDR是一种与机器无关的数据描述编码的协议,他以独立与任意机器体系结构的格式对网上传送的数据进行编码和解码,支持在异构系统之间数据的传送。
nfs特点
- NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源
- 在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样
- nfs适用于Linux与Unix之间实现文件共享,不能实现Linux与Windows间的文件共享功能
- nfs是运行在应用层的协议,其监听于2049/tcp和2049/udp套接字上
- nfs服务只能基于IP进行认证
nfs的应用场景
nfs有很多实际应用场景,以下是一些常用的场景:
-
多个机器共享一台CDROM或其他设备。这对于在多台机器中安装软件来说更加便宜与方便
-
在大型网络中,配置一台中心NFS服务器用来放置所有用户的home目录可能会带来便利。这些目录能被输出到网络以便用户不管在哪台工作站上登录,总能得到相同的home目录
-
不同客户端可在NFS上观看影视文件,节省本地空间
-
在客户端完成的工作数据,可以备份保存到NFS服务器上用户自己的路径下
nfs的体系组成
nfs体系至少有两个主要部分:
一台nfs服务器
若干台客户机
nfs体系的架构图
客户机通过TCP/IP网络远程访问存放在NFS服务器上的数据
在NFS服务器正式启用前,需要根据实际环境和需求,配置一些NFS参数
nfs工作机制
nfs是基于rpc来实现网络文件系统共享的。所以我们先来说说rpc
RPC
RPC(Remote Procedure Call Protocol),远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。
RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oKmiRz1e-1632585657486)(https://s3.bmp.ovh/imgs/2021/09/b9aa5159c4855d67.jpg)]
rpc工作机制如上图所示,下面来描述一下它:
客户端程序发起一个RPC系统调用基于TCP协议发送给另一台主机(服务端)
服务端监听在某个套接字上,当收到客户端的系统调用请求以后,将收到的请求和其所传递的参数通过本地的系统调用执行一遍,并将结果返回给本地的服务进程
服务端的服务进程收到返回的执行结果后将其封装成响应报文,再通过rpc协议返回给客户端
客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行
nfs工作机制
NFS服务器端运