NFS文件系统协议及解析概要
- 格式:pdf
- 大小:498.82 KB
- 文档页数:43
NFS(Network File System,网络文件系统)是当前主流异构平台共享文件系统之一。
主要应用在UNIX环境下。
最早是由SUN开发,现在能够支持在不同类型的系统之间通过网络进行文件共享,允许一个系统在网络上与他人共享目录和文件。
通过使用NFS,用户和程序可以象访问本地文件一样访问远端系统上的文件,使得每个计算机的节点能够像使用本地资源一样方便的使用网上资源。
换言之,NFS可用于不同类型计算机、操作系统、网络架构和传输协议运行环境中的网络文件远程访问和共享NFS的工作原理是使用客户端/服务器架构,由一个客户端程序和服务器程序组成。
服务器程序向其它计算机提供对文件系统的访问,其过程就叫做“输出”。
NFS客户端程序对共享文件系统进行访问时,把它们从NFS服务器“输送”出来。
文件通常以“块”为单位进行传输,其尺寸是8K(虽然它可能会将操作分成更小尺寸的分片)。
NFS传输协议用于服务器和客户机之间的文件访问和共享的通信,从而使客户机远程的访问保存在存储设备上的数据。
NFS在文件传送或信息传送过程中依赖于RPC协议。
RPC,远程过程调用(Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。
可以说NFS本身就是使用RPC的一个程序。
或者说NFS也是一个RPC SERVER。
所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER(服务器)或者NFS CLIENT(客户端)。
这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。
可以这么理解RPC 和NFS的关系:NFS是一个文件系统,而RPC是负责信息的传输。
(1)访问一个本地文件还是一个NFS文件对于客户端来说是透明的,当文件被打开时,由内核决定这一点。
文件被打开之后,内核将本地文件的所有引用传递给名为“本地文件访问”的框中,而将一个NFS文件的所有引用传递给名为“NFS客户端”的框中。
Linux网络文件系统(NFS)分析1. 网络文件系统概述_____________________________________________________ 41.1 远程文件存取____________________________________________________ 4 1.2 网络文件系统概述________________________________________________ 4 1.3 网络文件系统上层实现____________________________________________ 5 1.3.1 Mount安装协议和NFS远程过程 __________________________________ 5 1.3.2 访问文件的具体流程___________________________________________ 5 1.4 网络文件系统下层实现——远程过程调用(RPC) ____________________ 6 1.4.1 RPC的概念模型_______________________________________________ 7 1.4.2 SUN RPC的定义 _______________________________________________ 7 1.4.3 SUN RPC的传输层实现机制 _____________________________________ 8 1.4.3.1 通信语义__________________________________________________ 8 1.4.3.2 动态端口映射______________________________________________ 8 1.4.4 一次RPC远程调用的具体流程 ___________________________________ 9 2. Linux的NFS系统框架 _________________________________________________ 112.1 源码分析环境___________________________________________________ 11 2.2 Linux下NFS的体系结构___________________________________________ 12 2.3 NFS的Client端___________________________________________________ 12 2.3.1 Client端的VFS层______________________________________________ 13 2.3.2 Client端的RPC层_____________________________________________ 20 2.3.3 Client端的NFS层______________________________________________ 27 2.3.3.1 NFS过程层_______________________________________________ 27 2.4 NFS的Server端 __________________________________________________ 33 2.4.1 Server端的RPC层 _____________________________________________ 33 2.4.2 Server端的NFS层_____________________________________________ 37 2.4.3 NFS Server端启动___________________________________________ 39 2.4.4 nfsservctl系统调用实现________________________________________ 40 2.4.5 RPC鉴别机制________________________________________________ 46 3 Mount安装协议的具体实现_____________________________________________ 483.1 NFS Client端Mount协议数据结构_______________________________ 48 3.2 NFS Client端Mount协议实现___________________________________ 50 3.2.1Linux根文件系统的NFS Mount协议安装________________________ 51 3.2.1.1 nfs_root_setup函数的实现_________________________________ 52 3.2.1.2 nfs_root_mount函数的功能________________________________ 54 3.2.2命令行下的动态NFS Mount协议安装___________________________ 60 3.2.2.1 nfs_read_super函数的实现 _________________________________ 60 4NFS文件操作具体流程 _________________________________________________ 64 4.1 NFS文件协议的数据结构 ______________________________________ 64 4.2 打开一个NFS文件的具体流程 __________________________________ 65 4.2.1 VFS层操作分析_______________________________________________ 65 4.2.2 NFS层操作分析______________________________________________ 67 4.2.3 RPC层操作分析______________________________________________ 694.2.4 Server端操作分析 _____________________________________________ 69 4.3 读写一个NFS文件的具体流程 __________________________________ 70 4.3.1 sys_read函数_______________________________________________ 71 4.3.2nfs_file_read函数 ____________________________________________ 71 4.3.3nfs_readpage nfs_readpage_sync函数___________________________ 72 5 NFS文件系统FAQ _____________________________________________________ 76 参考文献:______________________________________________________________ 791. 网络文件系统概述1.1 远程文件存取许多早期的网络系统提供了文件传输(File transfer)服务,它允许用户把某文件的一个副本从一台机器移到另一台机器上。
介绍NFS协议的概念和作用NFS(Network File System)协议是一种用于在计算机网络中实现跨平台文件共享的协议。
它允许不同操作系统的计算机之间通过网络共享文件和目录,使得用户可以像访问本地文件一样访问远程服务器上的文件。
NFS协议的作用是简化跨网络的文件共享和访问过程。
它允许客户端计算机通过网络连接到服务器,将服务器上的文件系统挂载到客户端的本地文件系统中。
这样,客户端可以像访问本地文件一样访问远程服务器上的文件和目录,而无需了解服务器文件系统的具体细节。
NFS协议的概念基于一种客户端‑服务器(client‑server)模型。
服务器端运行NFS服务器软件,负责管理文件系统和处理客户端的文件访问请求。
客户端运行NFS客户端软件,通过网络与服务器通信,并发送文件访问请求。
服务器接收请求后,执行相应的操作并将结果返回给客户端。
NFS协议的优点之一是它的跨平台性。
它可以在不同的操作系统之间实现文件共享,包括UNIX、Linux、Windows 等。
这使得不同操作系统的用户能够方便地共享和访问彼此的文件,促进了跨平台的协作和数据共享。
此外,NFS协议还提供了一些高级功能,如文件锁定、缓存机制和权限管理。
文件锁定允许多个客户端同时读取文件,但只允许一个客户端进行写操作,从而确保数据的一致性。
缓存机制可以提高文件访问的性能,减少网络传输的开销。
权限管理则允许服务器对文件和目录进行访问控制,保护敏感数据的安全性。
总之,NFS协议是一种用于在计算机网络中实现跨平台文件共享的重要协议。
它简化了文件共享和访问的过程,提供了跨操作系统的互操作性,同时具备一些高级功能,以满足不同用户的需求。
解释NFS协议的基本原理和工作方式NFS(Network File System)协议是一种用于实现跨网络的文件共享的协议。
它的基本原理是通过客户端‑服务器模型,将远程服务器上的文件系统挂载到客户端的本地文件系统中,实现对远程文件的透明访问。
6网络文件系统(NFS)的工作原理和应用技术郭英见图2R PC 工作过程计算机网络的软件环境包括网络协议和网络操作系统两个方面:网络协议用于实现各种操作系统的网络连接和数据通信;而网络操作系统是网络协议中的网络服务系统,是网络的核心。
工业标准的网络文件系统NFS 由于具有网络操作系统文件服务器的功能,且使用维护均比较方便,从而也被广泛地应用在各系统中。
本文从N FS 工作原理和应用技术两方面深入讨论N FS 。
一、网络文件系统NFS 的工作原理N FS 包括N FS 服务器和N FS 客户两部分,采用星型拓扑结构连接。
NFS 服务器是中心,N FS 客户是端点,见图1。
N FS 服务器:提供共享本地硬盘上的任何文件系统或目录等文件信息的计算机。
N FS 客户:能够安装远地文件系统和目录,并且从其他计算机上获取文件信息的计算机。
N FS 服务器与N FS 客户之间并无严格的界定,多任务的操作系统可同时作为客户和服务器,读取网络上其他正在访问自己硬盘的计算机上的文件。
为了NFS 的开发应用专门引入了远程过程调用RPC(Remote Pr ocedure Call)的概念,RPC 过程调用可以作为对话层和报文交换器用于所有的NFS 的应用程序。
RPC 由一系列过程组成,这些过程可以视为处理任何所需网络访问的高层应用程序,即可以透明地访问远地文件系统。
R 通过网络作用于客户和服务器之间,具体工作过程是首先客户向服务器发出请求报文,服务器接收到报文后,从中提取出请求,然后执行请求的过程,并且将结果汇编成响应报文。
客户将接收到的报文响应后,对报文进行反汇编,继续执行应用程序的正常过程。
这个过程的每一步都由RPC 程序库(与应用程序相连)的例程控制。
见图2。
二、网络文件系统NFS 的配置由于N FS 是由N FS 客户和N FS 服务器组成的,所以N FS 的配置就需分成NFS 服务器的配置和N FS 客户的配置。
nfs协议
NFS(Network File System)是一种用于在不同计算机
间进行文件共享的协议。
该协议旨在使远程文件访问像本地文件访问一样简单,而无需用户意识到其实际的远程性质。
NFS
协议主要基于RPC(Remote Procedure Call)协议,提供了
高效的网络通信机制。
NFS协议的主要优点之一是其在网络上数据传输的高效性。
它能够被用来在不同计算机之间传输大文件或大量的数据。
由于它的基本设计是面向连接的,因此它可以追踪和管理多个连接。
此外,NFS协议还能够缓存数据,以减少网络流量和延迟。
这样子系统能够快速地访问并处理数据,而不会是因为网络传输瓶颈而导致延迟。
NFS协议还提供了安全性的特性。
该协议支持基于Kerberos的身份验证机制,这样用户可以保密地访问文件,
而其他用户则无权访问。
同时,该协议还支持通过卷的权限来控制文件的读写权限,可以快速地管理文件。
然而,NFS协议也存在一些不足之处。
例如,如果传输的数据量非常大,就可能会导致网络传输瓶颈,甚至可能导致网络的崩溃。
此外,如果网络故障,对于已经开始传输数据的NFS就行就可能会遭受数据丢失和损坏的风险。
因此,在设计
和部署网络文件共享时,需要对系统进行适当的规划和优化。
总的来说,NFS协议是一个高效的网络文件共享协议,它提供了面向连接、快速缓存和安全身份验证等主要特性。
然而,
在部署这个网络文件共享系统时需要注意其局限性和安全性要求。
nfs 协议NFS(Network File System)是一种网络文件共享协议,用于在计算机网络上实现文件共享和远程访问。
它是由Sun Microsystems开发的,最初用于UNIX系统。
NFS的主要目的是允许不同计算机上的用户通过网络访问和管理远程文件,就像本地硬盘上的文件一样。
它基于客户端-服务器架构,其中主机(服务器)提供文件服务,而用户端(客户端)则通过访问该主机来获取和操作文件。
NFS协议采用了基于RPC(Remote Procedure Call)的通信方式。
通过RPC,客户端可以请求服务器执行某些操作,如读取文件、写入文件等。
客户端和服务器之间的通信是通过网络完成的,因此可以在本地的计算机上对远程文件进行访问和操作。
NFS提供了很多优点。
首先,它使文件共享变得容易和高效。
用户可以像访问本地文件一样方便地访问远程文件,并且可以通过网络共享文件,而无需将文件复制到本地机器。
这对于多用户环境和跨平台的开发团队非常有用。
其次,NFS具有良好的可扩展性。
它支持多线程处理和并发访问,可以同时处理多个请求,提高了系统的处理能力和响应速度。
同时,NFS还支持分布式存储,可以将文件存储在多个服务器上,使得存储容量可以灵活扩展。
此外,NFS还具有很好的跨平台兼容性。
它可以在不同的操作系统和网络环境中使用,包括UNIX、Linux、Windows等。
这使得用户可以在不同的平台上访问和共享文件,提高了工作效率和文件管理的灵活性。
然而,NFS也存在一些局限性。
首先,由于数据传输是通过网络进行的,因此数据的传输速度可能受到网络速度的限制。
如果网络状况不佳或带宽有限,可能会影响到文件的传输速度和响应时间。
其次,由于NFS是基于文件的操作,因此不适合处理大型数据库或需要实时访问的应用程序。
对于这些要求高性能和实时性的应用,通常会采用专门的分布式文件系统或数据库。
总的来说,NFS是一种非常有用和广泛应用的协议,它大大简化了文件共享和远程访问的过程。
NFS⽹络⽂件系统详解第1章 NFS基本概述1.1 什么是nfsNFS是Network File System的缩写及⽹络⽂件系统。
主要功能是通过局域⽹络让不同的主机系统之间可以共享⽂件或⽬录。
NFS系统和Windows⽹络共享、⽹络驱动器类似, 只不过windows⽤于局域⽹, NFS⽤于企业集群架构中, 如果是⼤型⽹站, 会⽤到更复杂的分布式⽂件系统FastDFS,glusterfs,HDFS1.2 为什么要使⽤NFS服务进⾏数据存储1.实现多台服务器之间数据共享2.实现多台服务器之间数据的⼀致1.3 本地⽂件操作⽅式当⽤户执⾏mkdir命令, 该命令会通过shell解释器翻译给内核,由内核解析完成后驱动硬件,完成相应的操作。
1.4 NFS实现原理(需要先了解[程序|进程|线程])1.⽤户进程访问NFS客户端,使⽤不同的函数对数据进⾏处理2.NFS客户端通过TCP/IP的⽅式传递给NFS服务端。
3.NFS服务端接收到请求后,会先调⽤portmap进程进⾏端⼝映射。
4.nfsd进程⽤于判断NFS客户端是否拥有权限连接NFS服务端。
5.Rpc.mount进程判断客户端是否有对应的权限进⾏验证。
6.idmap进程实现⽤户映射和压缩7.最后NFS服务端会将对应请求的函数转换为本地能识别的命令,传递⾄内核,由内核驱动硬件。
rpc是⼀个远程过程调⽤,那么使⽤nfs必须有rpc服务1.5 NFS存储优点1.NFS⽂件系统简单易⽤、⽅便部署、数据可靠、服务稳定、满⾜中⼩企业需求。
2.NFS⽂件系统内存放的数据都在⽂件系统之上,所有数据都是能看得见。
1.6 NFS存储局限1.存在单点故障, 如果构建⾼可⽤维护⿇烦。
(web-》nfs()-》backup)2.NFS数据明⽂, 并不对数据做任何校验。
3.客户端挂载⽆需账户密码, 安全性⼀般(内⽹使⽤)1.7 ⽣产应⽤建议1.⽣产场景应将静态数据尽可能往前端推, 减少后端存储压⼒2.必须将存储⾥的静态资源通过CDN缓存(jpg\png\mp4\avi\css\js)3.如果没有缓存或架构本⾝历史遗留问题太⼤, 在多存储也⽆⽤第2章 NFS基本使⽤2.1 环境准备服务器系统⾓⾊外⽹IP内⽹IP主机名CentOS 7.5NFS服务端eth0:10.0.0.31eth1:172.16.1.31nfsCentOS 7.5NFS客户端eth0:10.0.0.7eth1:172.16.1.7web012.2 关闭防⽕墙及selinux(客户端,服务端都要关闭)2.2.1 关闭防⽕墙systemctl disable firewalldsystemctl stop firewalld2.2.2 关闭selinuxsed -ri '#^SELINUX=#cSELINUX=Disabled' /etc/selinux/configsetenforce 02.3 服务端安装nfs[root@nfs ~]# yum -y install nfs-utils2.3.1 配置nfs我们可以按照共享⽬录的路径允许访问的NFS客户端(共享权限参数)格式,定义要共享的⽬录与相应的权限。
nfs常用命令-概述说明以及解释1.引言1.1 概述在网络文件系统(Network File System,NFS)中,常用命令是管理和操作NFS的关键工具。
NFS是一种分布式文件系统协议,允许远程计算机之间共享文件和目录。
通过使用NFS常用命令,系统管理员可以方便地管理文件、目录和权限设置,实现文件共享和访问控制。
NFS常用命令包括基本命令、文件和目录管理命令以及网络相关命令,可以帮助管理员快速有效地操作和管理NFS系统。
掌握这些命令对于系统管理人员来说是至关重要的,可以提高工作效率,确保系统运行稳定和安全。
在本文中,我们将介绍NFS常用命令的基本用法和实际应用场景,探讨这些命令在系统管理中的重要性和作用。
通过深入了解和掌握这些命令,管理员可以更好地管理和维护NFS系统,确保系统的可靠性和稳定性。
1.2文章结构1.2 文章结构本文主要分为引言、正文和结论三个部分。
在引言部分,我们将介绍NFS(Network File System)的概述、文章的结构以及撰写该文的目的。
正文部分将详细介绍NFS常用的基本命令、文件和目录管理命令以及网络相关命令。
在结论部分,我们将总结本文介绍的常用命令,并探讨这些命令在实际应用场景中的重要性和对于系统管理的意义。
通过这样的结构,读者可以全面了解NFS的常用命令及其应用。
1.3 目的本文的主要目的是介绍NFS(Network File System)常用命令,帮助读者更好地理解和掌握NFS文件系统的管理和操作。
通过学习本文内容,读者可以了解如何使用不同的命令来管理文件和目录,以及在网络环境下如何使用NFS进行文件共享和访问。
此外,本文还将讨论NFS在系统管理中的重要性,以及实际应用中的具体场景。
通过学习本文,读者可以提高对NFS的理解,从而更有效地管理和维护文件系统。
2.正文2.1 基本命令在使用NFS(Network File System)时,了解一些基本的命令是非常重要的。
6.1 NFS服务概述NFS(Network File System,网络文件系统)是分布式计算机系统的一个组成部分,可实现在异构网络中共享和装载远程文件系统,目前已经成为文件服务的一种标准。
NFS主要用于不同系统之间的交互使用,所以其通信技术与主机和操作系统无关,通过NFS可在网络中的Unix 和Linux操作系统间共享数据,NFS将远程网络中的主机中的文件挂载到本机中,客户端可以使用复制、移动等命令对文件进行操作。
NFS虽然可以在网络中进行资源共享,但NFS本身并不提供数据传输服务的功能,必须借助于RPC协议来实现数据的传输,RPC定义了一种进程间通过网络进行交互通信的机制,RPC允许客户端通过网络向远程服务器发出请求,而不需要了解底层通信协议的细节。
当发生数据传输时,NFS服务器将起到RPC服务器的作用,而NFS客户端类似于RPC客户端,这样,NFS服务器和客户端就可以通过RPC协议进行数据传输。
NFS通常在局域网中使用,用于多台主机共享同一主机上的资源。
NFS服务器只要将其文件系统共享,NFS客户端就可以将该文件系统挂载到本地系统中,这样就在不同的系统之间建立了透明的文件共享机制。
6.2 NFS协议使用NFS,客户端可以透明地访问服务器上的文件和文件系统。
这不同于提供文件传输的FTP协议:FTP协议会产生一个文件的完整副本,而NFS只访问进程引用文件的那一部分,这意味着任何能够访问本地文件的客户端程序都可以访问一个NFS文件。
NFS是一个使用SunRPC构造的客户端/服务器应用程序。
NFS客户端通过向一个NFS 服务器发出RPC请求来访问服务器上的文件。
6.3 NFS工作原理(1)客户端访问的是一个本地文件还是一个NFS文件对客户端来说是透明的。
当文件被打开时,由内核决定这一点。
文件被打开后,内核将本地文件的所有引用传递给名为“本地文件访问”的框中,而将一个NFS 文件的所有引用传递给名为“NFS客户端”的框中。