首页 > 其他分享 >浅谈网络文件系统原理

浅谈网络文件系统原理

时间:2024-11-18 17:45:00浏览次数:1  
标签:协议 浅谈 网络 文件系统 RPC 原理 服务端 客户端

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

什么是网络文件系统?

网络文件系统(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.可靠性高:网络文件系统服务端作为专用的存储系统,以一定的技术手段,如多副本等方式实现了数据的高可靠。

标签:协议,浅谈,网络,文件系统,RPC,原理,服务端,客户端
From: https://www.cnblogs.com/developer-tianyiyun/p/18553263

相关文章

  • 锂电池的工作原理
    锂电池的构成正极(阴极):通常由锂金属氧化物制成,如锂钴氧化物(LiCoO2)、锂锰氧化物(LiMn2O4)、锂镍锰钴氧化物(NMC)等。负极(阳极):一般采用石墨材料,有时也使用硅基材料。电解质:一种能够导电但不导热的介质,通常为液体,含有锂盐(如六氟磷酸锂LiPF6)溶解在有机溶剂中。隔膜:一种微孔聚合物薄膜......
  • MySQL45讲 第二十五讲 高可用性深度剖析:从主备原理到策略选择
    文章目录MySQL45讲第二十五讲高可用性深度剖析:从主备原理到策略选择一、MySQL主备基础原理(一)主备关系与数据同步(二)主备切换流程二、主备延迟分析(一)主备延迟的定义与计算(二)主备延迟的来源三、主备切换策略(一)可靠性优先策略(二)可用性优先策略(三)策略选择的权衡四、异常......
  • 深入理解MySQL事务:原理、应用与实践(上)
    事务的应用场景说明在实际生活中,事务在处理复杂的业务逻辑时显得尤为重要。以下是两个典型的应用场景,展示了事务如何确保数据的一致性和完整性。场景一:淘宝购物中的资金流转问题假设你在淘宝上购买了一把阿米洛的键盘,当你完成支付后,资金已经从你的支付宝账户中扣除。然而,就在此......
  • AI大模型实战训练营-大模型原理及训练技巧、大模型微调的核心原理
    《AI大模型实战训练营:原理、训练技巧与微调核心原理探究》在当今科技飞速发展的时代,AI大模型已然成为了众多领域关注的焦点,它们正以强大的能力重塑着我们认知世界和解决问题的方式。而参与AI大模型实战训练营,则是深入了解其背后奥秘、掌握关键技术的绝佳途径。今天,就让我们一......
  • 网络-浅谈批量通讯和自主通讯的区别
    批量通信和自动通信是两种不同的通信概念,它们在多个方面存在显著的差异。以下是对这两种通信方式的详细解释:一、批量通信定义:批量通信通常指的是在数据通信过程中,将大量的数据或信息作为一个整体或批次进行传输。特点:高效性:由于数据是以整体或批次的形式进行传输,因此可以显著......
  • 《 C++ 修炼全景指南:二十 》不止是链表升级!跳表的核心原理与超强性能解析
    摘要这篇博客全面解析了跳表(SkipList)作为一种高效的链表数据结构的特性和应用。跳表以多层链表和随机化策略实现O(logn)的查找、插入和删除性能,简化了平衡树结构中常见的复杂旋转操作。通过剖析跳表的结构设计和核心操作,我们探讨了其在范围查询和动态更新中的优势,......
  • 【tokenization分词】WordPiece, Byte-Pair Encoding(BPE), Byte-level BPE(BBPE)的原
    目录前言1、word(词粒度)2、char(字符粒度)3、subword(子词粒度)WordPieceByte-PairEncoding(BPE)Byte-levelBPE(BBPE)总结前言Tokenization(分词)在自然语言处理(NLP)的任务中是最基本的一步,将文本处理成一串tokens用于后续的处理,把文本处理成token有一系列的......
  • 护栏防撞报警装置全解析:组成、原理、应用与优势
            护栏防撞报警装置是一种能够在护栏受到撞击时及时发出警报信号的设备,以下为你详细介绍:        一、主要组成部分        1.传感器:这是护栏防撞报警装置的核心部件之一,负责检测护栏是否受到撞击。常见的传感器类型有倾角传感器、振动传感器......
  • 低成本玩转Linux开发板(基于NUC980双层板)原理图+PCB分享
    更多电路设计,PCB设计分享及分析,可关注本人微信公众号“核桃设计分享”!由于公司项目需求,一直在找一款能跑Linux系统,外围接口丰富的,关键是必须要有CAN,UART,RMII等接口的芯片(无需LCD,HDMI,eDP)。对于一般的多媒体芯片来说,类似于瑞芯微,全志,海思,NXP等方案上,基本都是BGA封装的居多,CAN......
  • HarmonyOS Next 对称密钥生成全攻略:从原理到实践
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。一、引言在数据安全的浩瀚领域中,对称......