NFS - Network FileSystem网络文件系统的实现原理

简介: NFS - Network FileSystem网络文件系统的实现原理

20201124151752608.png

Pre

NFS - MIPS架构下构建NFS共享目录服务


NFS简介

NFS的全称是Network FileSystem,即网络文件系统

NFS最初是由 Sun Microsytem 公司开发出来的,主要实现的功能是让网络上的不同操作系统之间共享数据。


  • NFS首先在远程服务器端(共享数据的操作系统)共享出文件或者目录
  • N然后远端共享出来的文件或者目录就可以通过挂载(mount)的方式挂接到本地的不同操作系统上
  • N最后,本地系统就可以很方便地使用远端提供的文件服务,操作起来像在本地操作一样,从而实现了数据的共享。


NFS共享数据结构图



69146baaaa5643ba84c3175d5429660b.png

NFS由两个部分组成,NFS服务器和NFS客户端。


NFS服务器端主要负责共享数据和相关的权限设定,

而多个NFS客户端可以同时挂载共享出来的数据到自己指定的一个目录。

例如,NFS客户端A将NFS服务器共享的目录挂载到了自己指定的/home/share目录下,而NFS客户端B将共享的目录挂载到了/data目录。接着进入挂载点目录,就能看到从服务器端共享出来的文件了。


如果有足够的权限,还可以对这些共享资源进行复制、移动、修改、删除等操作。


NFS服务器的实现原理


NFS服务器启动后,都会开启对客户端连接对应的端口号,端口号的范围是1~1024,但每次启动NFS服务器,相应服务器端口号都各不相同。


为了确保客户端每次都能正确连接到NFS 服务器端,NFS通过一个远程过程调用(Remote Procedure Call,RPC)的协议来协助NFS服务器完成连接。


程序可以通过使用这种协议向网络中另一台计算机上的程序请求服务,在NFS中,RPC 最主要的功能就是指定并监控NFS守护进程对应的端口号,并将端口信息通知给客户端,让客户端可以连接到正确的端口上来,因此也可以说,NFS是一个RPC服务器。


需要注意的是,远程挂载NFS服务器的本地主机也需要同步启用RPC协议。


5a28490404994e1b9b3ea47f9bb6a3c7.png

要使用NFS服务器,需要在NFS服务器端至少启用两个系统守护进程(daemons),分别是rpc.nfsd和rpc.mountd。


rpc.nfsd:用于分析和管理客户端PC是否有权限登录NFS服务器端主机,可以通过登入者的IP地址、用户ID等来判别。


rpc.mountd:用于管理NFS,在客户端PC通过rpc.nfsd的认证登录系统后,还必须要取得文件的使用权才能成功挂载进而使用文件。


要启动NFS服务器同样需要有两个系统服务才行,它们分别是portmap和nfs-utils。


portmap:RPC的 portmap管理器,它管理基于RPC服务的连接。

nfs-utils:提供rpc.nfsd及rpc.mountd这两个NFS守护进程的系统服务。


是否安装nfs


几乎所有的Linux发行版在安装系统时,都默认安装了NFS服务器。

这里以CentOS 7.1系统为例,介绍NFS的使用方法。首先通过下面的命令查看NFS服务器对应的rpm包是否安装。

[root@NFS Server ~]# rpm -qa|grep rpcbind
rpcbind-0.2.0-26.el7.x86_64 
[root@NFS Server ~]# rpm -qa|grep nfs  
nfs-utils-1.3.0-0.8.el7.x86_64
libnfsidmap-0.25-11.el7.x86_64


如果有类似上面的输出,表示NFS软件包已经安装。如果没有输出,就需要寻找NFS对应的rpm包,然后进行安装即可。


安装配置NFS

NFS - MIPS架构下构建NFS共享目录服务

相关文章
|
22天前
|
监控 安全
|
22天前
|
Linux 网络安全 网络虚拟化
Linux虚拟网络设备:底层原理与性能优化深度解析
在深入探讨Linux虚拟网络设备的底层原理之前,重要的是要理解这些设备如何在Linux内核中实现,以及它们如何与操作系统的其他部分交互以提供高效且灵活的网络功能。虚拟网络设备在现代网络架构中发挥着关键作用🔑,特别是在云计算☁️、容器化📦和网络功能虚拟化(NFV)环境中。
Linux虚拟网络设备:底层原理与性能优化深度解析
|
21天前
|
Cloud Native Linux 网络虚拟化
深入理解Linux veth虚拟网络设备:原理、应用与在容器化架构中的重要性
在Linux网络虚拟化领域,虚拟以太网设备(veth)扮演着至关重要的角色🌐。veth是一种特殊类型的网络设备,它在Linux内核中以成对的形式存在,允许两个网络命名空间之间的通信🔗。这篇文章将从多个维度深入分析veth的概念、作用、重要性,以及在容器和云原生环境中的应用📚。
深入理解Linux veth虚拟网络设备:原理、应用与在容器化架构中的重要性
|
19天前
|
存储 分布式计算 监控
Hadoop【基础知识 01+02】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
【4月更文挑战第3天】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
69 2
|
1天前
|
安全 网络协议 算法
【计算机网络】http协议的原理与应用,https是如何保证安全传输的
【计算机网络】http协议的原理与应用,https是如何保证安全传输的
|
1天前
|
存储 算法 Windows
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例(下)
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例
|
1天前
|
前端开发 数据挖掘 数据建模
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例(中)
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例
|
1天前
|
算法 数据可视化 数据挖掘
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例(上)
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例
11 0
|
12天前
|
安全 数据建模 网络安全
深入理解SSL数字证书:定义、工作原理与网络安全的重要性
本文阐述了SSL数字证书在网络安全中的关键作用,定义了其作为验证服务器身份的数字凭证,基于PKI体系保障数据传输安全。文章介绍了三种类型的证书,包括DV、OV和EV,适用于不同安全需求的网站。获取和安装证书涉及向证书颁发机构申请并部署到服务器。在网络安全挑战下,正确使用和管理SSL证书对于保护用户数据和提升信任度至关重要。
|
12天前
|
机器学习/深度学习 语音技术 网络架构
【视频】LSTM神经网络架构和原理及其在Python中的预测应用|数据分享
【视频】LSTM神经网络架构和原理及其在Python中的预测应用|数据分享
22 0