网络文件系统(NFS)简介

2023-05-16

网络文件系统(Network File System, NFS)是一种分布式文件系统协议,最初由Sun Microsystems公司开发,并于1984年发布。其功能旨在允许客户端主机可以像访问本地存储一样通过网络访问服务器端文件。NFS和其他许多协议一样,是基于开放网络运算远程过程调用(Open Network Computing Remote Procedure Call, ONC RPC)协议之上的。它是一个开放、标准的RFC(Request For Comments, 请求意见稿)协议,任何人或组织都可以依据标准实现它。

NFS版本包括:(1). NFSv1: 只在SUN公司内部用作实验目的;(2). NFSv2: RFC 1094,1989年3月发布;(3). NFSv3: RFC 1813,1995年6月发布;(4). NFSv4: RFC 3010,2000年12月发布; (5). NFSv4.1: RFC 5661,2010年1月; (6). NFSv4.2: RFC 7862,2016年11月发布。

NFS通常用在Unix操作系统上和其他类Unix的操作系统。同时在其他一些操作系统也提供了NFS实现,例如Mac OS、OpenVMS、Microsoft Windows。

NFS的启动需要透过所谓的远程过程调用(RPC),也就是说,我们并不是只要启动NFS就好了,还需要启动RPC这个服务才行。

NFS最大的功能就是可以透过网络,让不同的机器、不同的操作系统、可以彼此分享个别的档案(share files)。所以,你也可以简单地将它看做是一个文件服务器(file server)。这个NFS服务器可以让你的PC来将网络远程的NFS服务器分享的目录,挂载到本地端的机器当中,在本地端的机器看起来,那个远程主机的目录就好像是自己的一个磁盘分区槽一样(partition),使用上相当的便利。如下图所示:当我们的NFS服务器设定好了分享出来的/home/sharefile这个目录后,其它的NFS客户端就可以将这个目录挂载到自己系统上面的某个挂载点(挂载点可以自定义),例如下图所示中的NFS client1与NFS client2挂载的目录就不相同。我只要在NFS client1系统中进入/home/data/sharefile内,就可以看到NFS服务器系统内的/home/sharefile目录下的所有数据了(当然,权限要足够)。这个/home/data/sharefile就好像NFS client1自己机器里面的一个partition。只要权限对了,那么你就可以使用cp, cd, mv, rm…等等磁盘或档案相关的指令。

因为NFS支持的功能相当的多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此,NFS的功能所对应的端口才没有固定住,而是随机取用一些未被使用的小于1024的埠口来作为传输之用。但如此一来又造成客户端想要连上服务器时的困扰,因为客户端得要知道服务器端的相关埠口才能够联机。此时,我们就得需要RPC的服务。RPC最主要的功能就是在指定每个NFS功能所对应的port number,并且回报给客户端,让客户端可以连接到正确的埠口上去。那RPC又是如何知道每个NFS的埠口呢?这是因为当服务器在启动NFS时会随机取用数个埠口,并主动的向RPC注册,因此RPC可以知道每个埠口对应的NFS功能,然后RPC又是固定使用port 111来监听客户端的需求并回报客户端正确的埠口。要启动NFS之前,RPC就要先启动,否则NFS会无法向RPC注册。另外,RPC若重新启动时,原本注册的数据会不见,因此RPC重新启动后,它管理的所有服务都需要重新启动来重新向RPC注册。

NFS服务器在启动的时候就得要向RPC注册,所以NFS服务器也被称为RPC server之一。 那么NFS服务器主要的任务是进行文件系统的分享,文件系统的分享则与权限有关。 所以NFS服务器启动时至少需要两个daemons ,一个管理客户端是否能够登入的问题,一个管理客户端能够取得的权限。

NFS本身的服务并没有进行身份登入的识别,服务器端会以客户端的使用者UID与GID等身份来尝试读取服务器端的文件系统。

一般来说,NFS的服务仅会对内部网域开放,不会对因特网开放的。然而,如果你有特殊需求的话,那么也可能会跨不同网域。

NFS好处:(1). 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用;(2). 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用;(3). 一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用,这可以减少整个网络上可移动介质设备的数量。

NFS组成:NFS体系至少有两个主要部分,一台NFS服务器和若干台客户机,如下图所示,客户机通过TCP/IP网络远程访问存放在NFS服务器上的数据。在NFS服务器正式启用前,需要根据实际环境和需求,配置一些NFS参数。

NFS应用:NFS有很多实际应用,下面是比较常见的一些:(1). 多个机器共享一台CDROM或者其它设备,这对于在多台机器中安装软件来说更加便宜跟方便;(2). 在大型网络中,配置一台中心NFS服务器用来防止所有用户的home目录可能会带来便利。这些目录能被输出到网络以便用户不管在哪台工作站上登录,总能得到相同的home目录;(3). 不同客户端可以NFS上观看影视文件,节省本地空间;(4). 在客户端完成的工作数据,可以备份保存到NFS服务器上用户自己的路径下。NFS是运行在应用层的协议,随着NFS多年的发展和改进,NFS既可以用于局域网也可以用于广域网,且与操作系统和硬件无关,可以在不同的计算机或系统上运行

以上内容均来自网络整理,主要参考:

1. https://zh.wikipedia.org/wiki/%E7%BD%91%E7%BB%9C%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F

2. http://cn.linux.vbird.org/linux_server/0330nfs.php

3. https://baike.baidu.com/item/NFS/812203

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

网络文件系统(NFS)简介 的相关文章

  • Windows/Linux TCP Socket网络编程简介及测试代码

    典型的网络应用是由一对程序 即客户程序和服务器程序 组成的 xff0c 它们位于两个不同的端系统中 当运行这两个程序时 xff0c 创建了一个客户进程和一个服务器进程 xff0c 同时它们通过从套接字 socket 读出和写入数据在彼此之间
  • 基于BearSSL实现自签名证书双向认证测试代码

    客户端 服务器端双向认证大致过程 xff1a 可以参考 xff1a https blog csdn net fengbingchun article details 106856332 1 客户端发起连接请求 xff1b 2 服务器端返回消
  • C:\KEIL\C51\intrins.h包含不正确的路径。Keil 头文件路径错误

    步骤1 xff1a 先检查工程中的 include intrins h include stdio h xff0c 各文件之间 是否正确调用 步骤2 xff1a 将 include lt intrins h gt lt reg52 h gt
  • 分享一个Centos8的国内yum源

    使用的是阿里巴巴开源镜像站 xff0c 文件地址 xff1a https span class token punctuation span span class token operator span span class token o
  • 网络数据包分析软件Wireshark简介

    Wireshark是被广泛使用的免费开源的网络协议分析软件 network protocol analyzer 或网络数据包分析软件 xff0c 它可以让你在微观层面上查看网络上发生的事情 xff0c 它的功能是截取网络数据包 xff0c
  • HTTP请求方法介绍

    之前在https blog csdn net fengbingchun article details 85039308 中介绍过HTTP协议 xff0c 在https blog csdn net fengbingchun article
  • TCP Flags标志位介绍

    传输控制协议 Transmission Control Protocol xff0c TCP 是一种传输层协议 TCP使数据包从源到目的地的传输更加顺畅 它是一种面向连接的端到端协议 每个数据包由TCP包裹在一个报头中 xff0c 该报头由
  • 代理服务器简介及libcurl测试

    代理服务器英文全称是Proxy Server xff0c 其功能就是将局域网用户连接到Internet xff0c 代理网络用户去获得网络信息 形象地说 xff0c 它是网络信息的中转站 xff0c 是连接内部局域网和Internet的一种
  • CMake中find_package的使用

    CMake中的命令find package用于查找指定的package find package支持两种主要的搜索方法 xff1a 注意 xff1a lt PackageName gt 是区分大小写的 1 Config mode 配置模式
  • CMake中link_directories/target_link_directories的使用

    CMake中的link directories命令用于添加目录使链接器能在其查找库 add directories in which the linker will look for libraries xff0c 其格式如下 xff1a
  • UDP协议在Windows上使用示例

    UDP User Datagram Protocol xff0c 用户数据报协议 是无连接的 xff0c 因此在两个进程通信前没有握手过程 UDP协议提供一种不可靠数据传送服务 xff0c 也就是说 xff0c 当进程将一个报文发送进UDP
  • 代码覆盖率工具OpenCppCoverage在Windows上的使用

    OpenCppCoverage是用在Windows C 43 43 上的开源的代码覆盖率工具 xff0c 源码地址为https github com OpenCppCoverage OpenCppCoverage xff0c 最新发布版本为
  • nerfstudio介绍及在windows上的配置、使用

    nerfstudio提供了一个简单的API xff0c 可以简化创建 训练和可视化NeRF的端到端过程 该库通过模块化每个组件来支持可解释的NeRF实现 nerfstudio源码地址 https github com nerfstudio
  • Qt中QDebug的使用

    QDebug类为调试信息 debugging information 提供输出流 它的声明在 lt QDebug gt 中 xff0c 实现在Core模块中 将调试或跟踪信息 debugging or tracing information
  • OkHttpUtil

    package com example someutil util import com google gson Gson import java util Iterator import java util Map import java
  • Sourcetree介绍及使用

    Sourcetree是一个操作简单但功能强大的免费Git客户端管理工具 xff0c 可应用在Windows和Mac平台 Sourcetree的安装 xff1a 1 从Sourcetree Free Git GUI for Mac and W
  • C++14中lambda表达式新增加的features的使用

    lambda表达式是在C 43 43 11中引入的 xff0c 它们可以嵌套在其它函数甚至函数调用语句中 xff0c C 43 43 11中lambda表达式的使用参考 xff1a https blog csdn net fengbingc
  • OpenSSL简介及在Windows、Linux、Mac系统上的编译步骤

    OpenSSL介绍 xff1a OpenSSL是一个强大的安全套接字层密码库 xff0c 囊括主要的密码算法 常用的密钥和证书封装管理功能及SSL协议 xff0c 并提供丰富的应用程序供测试或其它目的使用 SSL是SecureSockets
  • 信息安全领域相关术语介绍

    一 SSL 安全套接字层 SSL Secure Sockets Layer 是一种协议 xff0c 支持服务通过网络进行通信而不损害安全性 它在客户端和服务器之间创建一个安全连接 然后通过该连接安全地发送任意数据量 SSL最初是用来保障数据
  • 对称加密算法之DES介绍

    DES Data Encryption Standard 是分组对称密码算法 DES采用了64位的分组长度和56位的密钥长度 xff0c 它将64位的输入经过一系列变换得到64位的输出 解密则使用了相同的步骤和相同的密钥 DES的密钥长度为

随机推荐

  • OpenSSL中对称加密算法DES常用函数使用举例

    主要包括3个文件 xff1a 1 cryptotest h ifndef CRYPTOTEST H define CRYPTOTEST H include lt string gt using namespace std typedef e
  • 对称加密算法之RC4介绍及OpenSSL中RC4常用函数使用举例

    RC4是一种对称密码算法 xff0c 它属于对称密码算法中的序列密码 streamcipher 也称为流密码 xff0c 它是可变密钥长度 xff0c 面向字节操作的流密码 RC4是流密码streamcipher中的一种 xff0c 为序列
  • 摘要算法之MD5介绍及OpenSSL中MD5常用函数使用举例

    MD5 Message DigestAlgorithm 5 是计算机中广泛使用的杂凑算法之一 主要可以实现将数据运算后转换为一串固定值 xff0c 其前身主要有MD2 MD3和MD4算法 MD2算法在1989年由Rivest设计开发 xff
  • 非对称加密算法之RSA介绍及OpenSSL中RSA常用函数使用举例

    RSA算法 xff0c 在1977年由Ron Rivest Adi Shamirh和LenAdleman xff0c 在美国的麻省理工学院开发完成 这个算法的名字 xff0c 来源于三位开发者的名字 RSA已经成为公钥数据加密标准 RSA属
  • 有效的rtsp流媒体测试地址汇总

    以下是从网上搜集的一些有效的rtsp流媒体测试地址 xff1a 1 rtsp 218 204 223 237 554 live 1 0547424F573B085C gsfp90ef4k0a6iap sdp 2 rtsp 218 204 2
  • Flask【第十章】:特殊装饰器 @app.before_request 和 @app.after_request 以及@app.errorhandler...

    特殊装饰器 64 app before request 和 64 app after request以及 64 app errorhandler 一 背景 xff1a Flask我们已经学习很多基础知识了 现在有一个问题 我们现在有一个 F
  • Linux Socket基础介绍

    Linux Socket函数库是从Berkeley大学开发的BSD UNIX系统中移植过来的 BSD Socket接口是众多Unix系统中被广泛支持的TCP IP通信接口 xff0c Linux下的Socket程序设计 xff0c 除了微小
  • libcurl库的使用(通过libcurl库下载url图像)

    1 从http curl haxx se download html下载libcurl源码 xff0c 解压缩 xff1b 2 通过CMake cmake gui 生成vs2013 x64位 CURL sln xff1b 3 打开CURL
  • 人工神经网络简介

    本文主要对人工神经网络基础进行了描述 xff0c 主要包括人工神经网络的概念 发展 特点 结构 模型 本文是个科普文 xff0c 来自网络资料的整理 一 人工神经网络的概念 人工神经网络 xff08 Artificial Neural Ne
  • 卷积神经网络(CNN)基础介绍

    本文是对卷积神经网络的基础进行介绍 xff0c 主要内容包括卷积神经网络概念 卷积神经网络结构 卷积神经网络求解 卷积神经网络LeNet 5结构分析 卷积神经网络注意事项 一 卷积神经网络概念 上世纪60年代 xff0c Hubel等人通过
  • C++中struct的使用

    C 43 43 语言继承了C语言的struct xff0c 并且加以扩充 在C语言中struct是只能定义数据成员 xff0c 而不能定义成员函数的 而在C 43 43 中 xff0c struct类似于class xff0c 在其中既可以
  • Windows与Linux之间互传文件的方法

    以下方法均是以Windows为操作机 xff1a 1 通过WinSCP WinSCP是一款开源的SFTP客户端 xff0c 运行于Windows系统下 xff0c 遵照GPL发布 WinSCP除了SFTP xff0c 还支持SSH SCP
  • 非对称加密算法RSA公钥私钥的模数和指数提取方法

    生成非对称加密算法RSA公钥 私钥的方法 xff1a 1 通过OpenSSL库生成 xff0c 可参考 https github com fengbingchun OpenSSL Test blob master demo OpenSSL
  • Base64简介

    Base64是一种基于64个可打印字符来表示二进制数据的表示方法 由于2 6 61 64 xff0c 所以每6个比特为一个单元 xff0c 对应某个可打印字符 3个字节有24个比特 xff0c 对应于4个Base64单元 xff0c 即3个
  • HTTP协议简介

    HTTP HyperText Transfer Protocol 超文本传输协议 xff1a 是一种用于分布式 协作式和超媒体信息系统的应用层协议 HTTP是万维网的数据通信的基础 设计HTTP最初的目的是为了提供一种发布和接收HTML页面
  • HTTPS协议简介

    HTTPS HyperText Transfer Protocol Secure 超文本传输安全协议 xff1a 是一种透过计算机网络进行安全通信的传输协议 HTTPS经由HTTP进行通信 xff0c 但利用SSL TLS来加密数据包 HT
  • base64开源库介绍及使用

    网上有一些开源的base64编解码库的实现 xff0c 下面介绍几个 xff1a cppcodec是一个仅包括头文件的C 43 43 11库 xff0c 用于编解码RFC 4648中指定的base64 base64url base32 ba
  • Ubuntu下使用CMake编译OpenSSL源码操作步骤(C语言)

    OpenSSL的版本为1 0 1g xff0c 在ubuntu下通过CMake仅编译c代码不包括汇编代码 xff0c 脚本内容如下 xff1a build sh内容 xff1a bin bash real path 61 realpath
  • ImageNet图像数据集介绍

    ImageNet图像数据集始于2009年 xff0c 当时李飞飞教授等在CVPR2009上发表了一篇名为 ImageNet A Large Scale Hierarchical Image Database 的论文 xff0c 之后就是基于
  • 网络文件系统(NFS)简介

    网络文件系统 Network File System NFS 是一种分布式文件系统协议 xff0c 最初由Sun Microsystems公司开发 xff0c 并于1984年发布 其功能旨在允许客户端主机可以像访问本地存储一样通过网络访问服