目录
1. nfs简介
1.1 nfs特点
1.2 nfs的应用场景
1.3 nfs的体系组成
2.2 nfs工作机制
2.1 RPC
首页 常见问题 nfs是什么

nfs是什么

Nov 29, 2022 am 11:16 AM
nfs

nfs是指网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。NFS是基于UDP/IP协议的应用,其实现主要是采用远程过程调用RPC机制,RPC提供了一组与机器、操作系统以及低层传送协议无关的存取远程文件的操作。

nfs是什么

本教程操作环境:linux7.3系统、Dell G3电脑。

1. nfs简介

网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。

NFS是基于UDP/IP协议的应用,其实现主要是采用远程过程调用RPC机制,RPC提供了一组与机器、操作系统以及低层传送协议无关的存取远程文件的操作。RPC采用了XDR的支持。XDR是一种与机器无关的数据描述编码的协议,他以独立与任意机器体系结构的格式对网上传送的数据进行编码和解码,支持在异构系统之间数据的传送。

1.1 nfs特点

  • NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源
  • 在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样
  • nfs适用于Linux与Unix之间实现文件共享,不能实现Linux与Windows间的文件共享功能
  • nfs是运行在应用层的协议,其监听于2049/tcp和2049/udp套接字上
  • nfs服务只能基于IP进行认证

1.2 nfs的应用场景

nfs有很多实际应用场景,以下是一些常用的场景:

  • 多个机器共享一台CDROM或其他设备。这对于在多台机器中安装软件来说更加便宜与方便
  • 在大型网络中,配置一台中心NFS服务器用来放置所有用户的home目录可能会带来便利。这些目录能被输出到网络以便用户不管在哪台工作站上登录,总能得到相同的home目录
  • 不同客户端可在NFS上观看影视文件,节省本地空间
  • 在客户端完成的工作数据,可以备份保存到NFS服务器上用户自己的路径下

1.3 nfs的体系组成

nfs体系至少有两个主要部分:

  • 一台nfs服务器
  • 若干台客户机

nfs体系的架构图如下:

1.png

客户机通过TCP/IP网络远程访问存放在NFS服务器上的数据
在NFS服务器正式启用前,需要根据实际环境和需求,配置一些NFS参数

2. nfs工作机制

nfs是基于rpc来实现网络文件系统共享的。所以我们先来说说rpc。

2.1 RPC

RPC(Remote Procedure Call Protocol),远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。

RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。

2.png

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

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

2.2 nfs工作机制

NFS服务器端运行着四个进程:

  • nfsd

  • mountd

  • idmapd

  • portmapper

idmapd 

实现用户帐号的集中映射,把所有的帐号都映射为NFSNOBODY,但是在访问时却能以本地用户的身份去访问

mountd 

用于验证客户端是否在允许访问此NFS文件系统的客户端列表中,在则允许访问(发放一个令牌,持令牌去找nfsd),否则拒绝访问

mountd的服务端口是随机的,由rpc服务(portmapper)提供随机端口号

nfsd 

nfs的守护进程,监听在2049/tcp和2049/udp端口上

不负责文件存储(由NFS服务器本地内核负责调度存储),用于理解客户端发起的rpc请求,并将其转交给本地内核,而后存储在指定的文件系统上

portmapper

NFS服务器的rpc服务,其监听于111/TCP和111/UDP套接字上,用于管理远程过程调用(RPC)

下面通过一个例子来说明NFS的简单工作流程:

需求:查看file文件的信息,此file存储在远程NFS服务端主机上(挂载在本地目录/shared/nfs中)

3.png

  • 客户端发起查看file信息的指令(ls file)给内核,内核通过NFS模块得知此文件并不是本地文件系统中的文件,而是在远程NFS主机上的一个文件
  • 客户端主机的内核通过RPC协议把查看file信息的指令(系统调用)封装成rpc请求通过TCP的111端口发送给NFS服务端主机的portmapper
  • NFS服务端主机的portmapper(RPC服务进程)告诉客户端说NFS服务端的mountd服务在某某端口上,你去找它验证

因为mountd在提供服务时必须要向portmapper注册一个端口号,所以portmapper是知道其工作于哪个端口的

  • 客户端得知服务端的mountd进程端口号后,通过已知的服务端mountd端口号请求验证
  • mountd收到验证请求后验证发起请求的客户端是否在允许访问此NFS文件系统的客户端列表中,在则允许访问(发放一个令牌,持令牌去找nfsd),否则拒绝访问
  • 验证通过后客户端持mountd发放的令牌去找服务端的nfsd进程,请求查看某文件
  • 服务端的nfsd进程发起本地系统调用,向内核请求查看客户端要查看的文件的信息
  • 服务端的内核执行nfsd请求的系统调用,并将结果返回给nfsd服务
  • nfsd进程收到内核返回的结果后将其封装成rpc请求报文并通过tcp/ip协议返回给客户端

更多相关知识,请访问常见问题栏目!

以上是nfs是什么的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

linux NFS是什么及怎么用 linux NFS是什么及怎么用 May 12, 2023 pm 04:13 PM

nfs,是networkfilesystem的简写,即网络文件系统。网络文件系统是freebsd支持的文件系统中的一种,也被称为nfs.nfs允许一个系统在网络上与他人共享目录和文件。通过使用nfs,用户和程序可以像访问本地文件一样访问远端系统上的文件。nfs基于rpc协议,nfs本身只是起到共享的作用而和客户端进行连接和数据传输则是rpc协议的功能nfs主要通过两个daemon来进行控制:1.rpc.nfsd-------它用来控制客户端是否可以连接到,nfsserver2.rpc.mount

linux下NFS安装配置的方法是什么 linux下NFS安装配置的方法是什么 May 19, 2023 pm 07:46 PM

1,服务器端软件:安装nfs-utils和portmap(rpcbind)nfs-utils:提供rpc.nfsd及rpc.mountd这两个nfsdaemons的套件portmap:nfs其实可以被看作是一个rpcserverprogram,而要启动一个rpcserverprogram,都要做好port的对应工作,而且这样的任务就是由portmap来完成的。通俗的说portmap就是用来做port的mapping的。nfs需要启动的daemonspc.nfsd:主要复杂登陆权限检测等必须por

linux如何通过nfs网络文件系统挂载设置 linux如何通过nfs网络文件系统挂载设置 May 15, 2023 pm 05:25 PM

nfs简介nfs是networkfilesystem的简写,即网络文件系统.网络文件系统是freebsd支持的文件系统中的一种,也被称为nfs.nfs允许一个系统在网络上与他人共享目录和文件。通过使用nfs,用户和程序可以像访问本地文件一样访问远端系统上的文件。nfs最显而易见的好处:  1.本地工作站使用更少的磁盘空间,因为通常的数据可以存放在一台机器上而且可以通过网络访问到。  2.用户不必在每个网络上机器里头都有一个home目录。home目录可以被放在nfs服务器上并且在网络上处处可用。 

linux nfs共享存储服务详细解释。 linux nfs共享存储服务详细解释。 Feb 19, 2024 pm 06:00 PM

LinuxNFS(NetworkFileSystem)是一种协议和服务,用于在网络上共享文件系统。客户端计算机可以通过网络访问远程服务器上的文件和目录,实现类似本地文件的操作。客户端-服务器模型:LinuxNFS采用客户端-服务器模型。服务器是文件系统的提供者,它负责管理文件和目录,并响应客户端的请求。客户端是使用NFS协议的计算机,通过网络连接到服务器并请求文件和目录的访问权限。文件共享:通过LinuxNFS,服务器上的文件系统可以被共享给多个客户端。客户端可以像访问本地文件一样,读取、写入、

nginx如何搭建NFS服务器 nginx如何搭建NFS服务器 May 23, 2023 pm 12:55 PM

简介什么是nfs服务器?NFS(NetworkFileSystem)即网络文件系统,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件,使用者访问网络上别处的文件就像在使用自己的计算机一样。为什么需要nfs服务器到同一个地方拿数据,保障网站数据的一致性,不管负载均衡器将请求分配到哪台后端的服务器,客户机看到的内容是一致的。nfs服务器是否是最佳的解决方法不是的,nfs是比较廉价的解决方法1,一般公司不会使用,性能不是特别高,建议使用专用的存储服务器。nfs的优点和缺点优

nfs是什么 nfs是什么 Nov 29, 2022 am 11:16 AM

nfs是指网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。NFS是基于UDP/IP协议的应用,其实现主要是采用远程过程调用RPC机制,RPC提供了一组与机器、操作系统以及低层传送协议无关的存取远程文件的操作。

如何在Linux上设置高可用的网络存储(如NFS) 如何在Linux上设置高可用的网络存储(如NFS) Jul 06, 2023 am 09:33 AM

如何在Linux上设置高可用的网络存储(如NFS)介绍:网络文件系统(NFS)是一种常用的分布式文件系统,允许不同的计算机之间共享文件。在Linux环境下,我们可以通过设置高可用的网络存储来确保系统的稳定性和可靠性。本文将介绍如何在Linux上设置高可用的NFS,并提供一些代码示例。步骤一:安装NFS首先,我们需要在所有节点上安装NFS软件包。在大多数Lin

一条指令彻底删除扫描出来的有害程序 一条指令彻底删除扫描出来的有害程序 Feb 19, 2024 pm 01:57 PM

一条指令彻底删除扫描出来的有害程序作者:田逸(formyz)一个NFS服务器,为多个Web项目所共享。这些目录包括PHP程序、图片、HTML页面和用户上传的文档和附件等。因为某些Web框架古老,存在诸如不对上传文件做严格的安全性检查,虽然此NFS服务器位于受保护的内部网络,但任然被别有用心的人上传了大量的恶意文件。强烈要求程序员进行程序(Discuz)更新,答复说更新难度太大,无法在程序上进行处理。从系统管理层面上,临时的措施仅仅是安装shadu软件,对这个共享目录进行扫描,然后删除这些有害的文