浅谈网络文件系统原理

天翼云开发者社区
• 阅读 67

本文分享自天翼云开发者社区《浅谈网络文件系统原理》,作者:谢****云

什么是网络文件系统? 网络文件系统(Network File System, NFS)实现了一种软件协议,能将远端的文件系统映射到本地,使用者访问网络上的文件就像在使用自己的计算机一样。远端是专属存储系统,通常称为NAS存储。比较出名的网络文件系统的实现包括Sun公司的NFS,微软的CIFS(Common Internet File System)等,网络文件系统的访问示意图如下:

浅谈网络文件系统原理 图1 网络文件系统挂载示意图

网络文件系统协议实现了将远端的目录树映射到本机,成为本机目录树种的一颗子树。一个实现合格的网络文件系统,实现了文件操作接口的POSIX(Portable Operating System Interface X)语义,从而使用户操作操作网络文件系统像操作本地文件系统一样,用户不会感知到操作的文件或文件夹实际存储在远端。

网络文件系统的实现也分为,客户端和服务端两部分。其中,客户端实现与本地文件系统的实现类似,其主要差异是访问数据的时候,并不是访问本地磁盘设备,而是遵从一定的协议,通过网络访问F服务端。服务端负责处理客户端的访问请求,将对应的数据和元数据保存在磁盘上。

网络文件系统的关键技术: (1)远程过程调用,RPC协议 网络文件系统客户端与服务端之间的交互是通过一定的网络协议如NFS协议实现的。网络协议是通过函数调用的方式定义,主要内容包括ID、参数和返回值等。为降低协议封装、解析的复杂性,通常会在文件提业务层与TCP/IP层之间封装一层交互实现,称之为RPC协议。RPC(Remote Procedure Call)是一种远程调用协议,它基于Socket,位于OSI模型中会话层,客户端可以调用远程服务器上的程序或方法,并获取返回结果。 具体的,在客户端调用RPC函数时,会调用RPC库的接口将该函数转化为网络消息转发到服务端,服务端的RPC库对网络包进行解析,调用服务端注册的函数集中的函数来实现功能,然后再将执行的结果返回给客户端。

浅谈网络文件系统原理 图2 RPC协议架构示意图

(2)文件系统协议 网络文件系统本质上是一个基于C/S(客户端/服务端)架构的应用,其文件系统功能是通过客户端与服务端的交互来实现的。对于网络文件系统来说,其核心是之一是服务端与客户端的交互语言,文件系统协议。 网络文件系统的协议定义类似于函数调用,包含ID,参数和返回值。 NFS协议,是SUN公司设计的网络文件系统协议,默认是*unix系统之间提供服务。包含3个版本,即1984年的NFSv2、1995年的NFSv3和2000年的NFSv4。它所有的读写都是由内核负责,因此其IO性能比较高。

浅谈网络文件系统原理

SMB是Server Message Block是微软公司设计的网络系统协议,默认在Windows系统之间提供服务。包括SMB1.0,SMB2.0,SMB3.0版本。

浅谈网络文件系统原理

由此可见,无论哪种协议,都有一组与文件系统语义对应的协议命令。客户端对文件系统的操作,都会通过网络文件协议封装转发到服务端,实现对文件的操作。

网络文件系统的优势: 如上,对网络文件系统的访问需要通过网络,其时延比本地文件系统大,但网络文件系统也有其优势,适合在一些场景中应用: 1.适合做数据共享:网络文件系统可以挂载在多个客户端,从而实现在多个客户端之间的数据共享。 2.存储空间大:网络文件系统服务端往往使用具有大存储空间的存储设备实现,具备海量的存储空间,远远大于本地文件系统。 3.可靠性高:网络文件系统服务端作为专用的存储系统,以一定的技术手段,如多副本等方式实现了数据的高可靠。

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
NFS 服务器搭建
NFS(网络文件系统)用于Unix/Linux之间的文件共享,NFS在文件传送过程中依赖与RPC(远程过程调用)协议。NFS本身是没有提供信息传送的协议和功能。只要用到NFS的地方都需要启动RPC服务,不论是NFS的服务端还是客户端。在启动NFS服务之前,首先要启动RPC服务(CentOS5是portmap服务,CentOS6.6以后的版本是rp
Stella981 Stella981
3年前
Cento7搭建nfs共享目录
一、简介:NFS是NetworkFileSystem的缩写,是网络文件系统,具体的功能就是通过网络让不同的机器,不同的操作系统能够彼此分享个别的数据,让应用程序客户端通过网络访问位于服务器磁盘中的数据。二、服务端安装1、环境说明服务器端:IP:192.168.112.128共享目录:/data/k8
Wesley13 Wesley13
3年前
NFS的基本配置
本文索引:NFS介绍NFS服务器安装配置NFS配置选项NFS介绍NFS是网络文件系统(NetworkFileSystem)的缩写。需要借助网络,实现数据的同步。NFS最早由Sun公司进行开发,分2,3,4三个版本,2和3版本有Sun公司起草开发,4.0开始由Netapp公司参与主导开发,最
Wesley13 Wesley13
3年前
IPFS环境搭建节点安装
ipfs(InterPlanetaryFileSystem,星际文件系统),本文介绍节点软件ipfs环境搭建和使用方法,学习ipfsapi在nodejs代码中访问ipfs网络。一、ipfs节点安装与使用1.1下载节点软件到官网下载windows版的ipfs节点软件:32位(https://
可莉 可莉
3年前
14.1 NFS介绍 14.2 NFS服务端安装配置 14.3 NFS配置选项
第14章NFS服务搭建与配置14.1NFS介绍NFS(NetworkFileSystem)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访
Stella981 Stella981
3年前
Datax的txtfilereader插件实践
一、介绍TxtFileReader提供了读取本地文件系统数据存储的能力。在底层实现上,TxtFileReader获取本地文件数据,并转换为DataX传输协议传递给Writer。二、配置模版{"setting":{},"job":{"setting":{
Wesley13 Wesley13
3年前
NFS部署教程
NFS(NetworkFileSystem)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。简单的来说:它就是是可以透过网络,让不同的主机、不同的操作系统可以共享存储。NFS在文件传送或信
Wesley13 Wesley13
3年前
2.4、Python文件对象及os、os.path和pickle模块(0530)
文件系统和文件1、文件系统是OS用于明确磁盘或分区上的文件的方法和数据结构即在磁盘上组织文件的方法;文件系统模块:os2、计算机文件(称文件、电脑档案、档案),是存储在某种长期储存设备或临时存储设备中的一段数据流,并且归属于计算机文件系统管理之下;3、概括来讲:文件是计算机中由OS管理的具有名字的存储区域;
芝士年糕 芝士年糕
2年前
NFS服务详解
今天使用新租的3A服务器搭建NFS,噢对了,我租了两台,真的好使1.概述NFS是一种基于TCP/IP传输的网络文件系统协议。通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源NAS存储:NFS服务的实现依赖于RPC(
天翼云开发者社区
天翼云开发者社区
Lv1
天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
文章
722
粉丝
15
获赞
40