关注分享主机优惠活动
国内外VPS云服务器
Hi, 请登录     我要注册     找回密码

linux fuse是什么意思?

本文主要讲解“linux fuse是什么意思”,感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。下面就让主机频道带你学习一下“linux fuse是什么意思”!

Linux用来支持用户空间文件系统的内核模块叫做FUSE。fuse的全称是“用户空间中的文件系统”,中文意思是“用户空间文件系统”。它指的是完全在用户模式下实现的文件系统。它用于在 Linux中挂载一些网络空间,是通用操作系统的重要组成部分。

什么是linux fuse?

用户空间中的文件系统指的是完全以用户模式实现的文件系统。它是 Linux中使用的一个模块,用于将一些网络空间(如SSH)挂载到本地文件系统。相关内容可以在SourceForge上找到。

Linux用来支持用户空间文件系统的内核模块叫做FUSE,FUSE这个词有时也指Linux下的用户空间文件系统。是通用操作系统的重要组成部分。传统上,操作系统在内核级支持文件系统。一般内核代码调试困难,生产率低。

所谓的“用户模式文件系统”是指文件系统的数据和元数据都是由用户模式进程提供的(这个进程称为“守护进程& quot)。对于微内核的操作系统来说,在用户态实现文件系统没什么,但是对于宏内核的Linux来说,意义就不一样了。

虽然被称为用户态文件系统,但并不意味着完全不需要内核的参与,因为在Linux中,对文件的访问是通过VFS层提供的内核接口(比如open/read)统一实现的,所以当一个进程(称为“user & quot当访问由daemon实现的文件系统时,您仍然需要访问VFS。

当VFS收到用户进程访问文件的请求并判断该文件属于用户模式文件系统(根据挂载类型)时,它会将请求转发到名为“fuse & quot的内核模块。然后,“保险丝& quot用守护进程将请求转换成协议格式并发送给守护进程。

linux fuse指的是什么

可见,在这种三方关系中,“导火索& quot这个内核模块扮演了一个中继的角色,帮助建立VFS(或用户进程)和守护进程之间的通信通道。通俗地说,它的作用其实就是一个“代理”。

整个框架的实现是在Linux下的FUSE(用户空间中的文件系统)。如图1所示,红框是FUSE文件系统的具体实现,是用户态文件系统的设计者可以发挥的空间。目前,基于FUSE的文件系统已经超过100种(有些基于内核的文件系统也可以移植到用户态文件系统,如ZFS和NTFS),本文将选择一个现成的fuse-sshfs来进行演示。

首先,安装fuse-sshfs软件包,并使用以下命令挂载文件系统(连接远程机器的“remote-dir & quot;该目录被挂载到“本地目录”中目录):

sshfs & lt远程ip & gt:& lt远程目录& gt& ltlocal-dir & gt;之后,在“/sys/fs & quot;目录下,一个名为“fuse & quot同时,你可以看到“保险丝& quot内核模块已经加载(它对应的设备是“/dev/fuse & quot;),本地挂载目录的类型变成了“fuse.sshfs & quot:

linux fuse指的是什么生成设备节点的目的是便于控制用户模式。但是对于这种级别的文件系统的应用,使用ioctl()直接访问设备还是比较麻烦的。因为太多细节的呈现,libfuse作为中间层应运而生,守护进程实际上是通过libfuse提供的接口操作fuse设备文件。

你来我往,为了“fuse.sshfs & quot文件系统是通过“触摸”传递的命令创建一个新文件,例如,查看fuse内核模块和守护进程(即" sshfs & quot)具体交互流程(代码部分基于内核5.2.0版本):

[第一轮]

首先,它是权限的验证,但这里的验证与VFS的权限验证是不一样的。其主要目是防止其他用户访问他们自己的私有fuse文件系统。

linux fuse指的是什么然后根据文件路径查找文件的inode。因为这是一个新创建的文件,所以inode不在内核的inode缓存中,所以需要发送“lookup & quot请求:

linux fuse指的是什么这些请求将被放入挂起队列,等待守护进程的回复,而用户进程将进入休眠状态:

linux fuse指的是什么作为守护进程,sshfs进程读取“/dev/fuse & quot;设备文件来获取数据,如果挂起队列为空,它将陷入阻塞等待:

linux fuse指的是什么当请求到达挂起队列时,守护进程将被唤醒并处理这些请求。已处理的请求将被移动到处理队列中。在守护进程回复fuse内核模块后,用户进程将被唤醒,相应的请求将从处理队列中删除。

linux fuse指的是什么[第二轮]

下一步是执行“触摸& quot由该命令触发的其他系统调用,如果它们是先前访问的数据/元数据,则很可能存在于缓存中。再次访问这部分数据/元数据时,fuse内核模块可以自行解决,不需要来回到用户空间,否则仍然需要上报给守护进程处理。

这里get_fuse_conn()获取挂载“fuse_conn”时创建的fuse类型的文件系统结构实例。作为守护进程和内核之间的纽带,这种连接将一直存在,除非守护进程死亡或者相应的fuse文件系统被卸载。

linux fuse指的是什么在守护进程端,操作是类似的。需要注意的是fuse_write/read()和fuse_dev_write/read()是两个系列的函数。前者是用户进程访问fuse文件系统上的文件时的VFS读写请求,属于常规文件的操作,后者是守护进程对“/dev/fuse & quot;读写这个代表fuse内核模块的设备的目的是获取请求并给出回复。

linux fuse指的是什么[第三轮]

fuse内核模块和daemon进程的最后一轮交互是获取代表fuse文件系统的超级块中的inode号,并填入这个元数据的相关信息。

找到硬币的两面并不困难。在fuse文件系统中,即使一个相对简单的“触摸& quot操作涉及到用户模式和内核模式的频繁切换,并且伴随着多个数据副本。与传统的内核文件系统相比,其整体I/O吞吐量更低,延迟更大。

那为什么fuse在操作系统支持的文件系统中仍然占据一席之地?说起来,以用户模式开发有很多好处。第一,易于调试,特别适合快速验证一个新的文件系统原型,所以在学术研究领域很受欢迎。在内核中,你只能使用C语言。当你处于用户模式时,就没有那么多限制了。各种函数库和编程语言都可以。

第二,内核bug往往会导致整个系统的崩溃(在虚拟化应用中更为严重,因为主机的崩溃会导致其上运行的所有虚拟机崩溃),而用户态bug的影响相对有限。

所以硬币积极的一面是容易开发,但是有多方便毕竟是主观感受,消极的一面是性能的影响,可以用客观的实验数据来验证。那么应该用什么方法来相对准确地测量引信造成的损失呢?

我们仍然使用以前使用的fuse-sshfs,但是这里我们不再使用远程挂载,而是使用本地挂载(假设本地“dir-src & quot;ext4文件系统中的目录):

sshfs本地主机:& ltdir-src & gt;& ltdir-dst & gt;当守护进程收到请求时,它需要再次进入内核来访问ext4的内核模块(这种文件系统模式称为“stackable & quot):

linux fuse指的是什么以用户进程向fuse文件系统发送write()请求为例。右边的红框是原生ext4调用路径,左边多出来的路径是引入fuse后添加的路径:

linux fuse指的是什么根据本文档中给出的数据,“getxattr & quot形成的请求需要两倍于“user-kernel&quot互动量。对于顺序写入,与原生ext4文件系统相比,I/O吞吐量降低27%,随机写入降低44%。

然而,在fuse文件系统诞生以来的几年里,人们已经为它提出了许多优化措施。比如顺序读写时,可以设计成批量向守护进程发送请求(但随机读写不合适)。

还有使用拆分,一种零拷贝技术。Linux内核提供的拆分机制,允许用户空间转移两个内核的内存缓冲区的数据,无需复制,因此特别适合以可堆叠的方式直接从fuse内核模块向ext4内核模块转移数据(但拆分通常用于超过4K的请求,不需要少量数据的读写)。

经过这些努力,fuse文件系统的性能能达到什么程度?根据这份报告中列出的测试结果,与原生ext4相比,fuse的性能损失在理想情况下可以控制在5%以内,但最差情况下达到83%。同时,其对CPU的资源占用也增加了31%。

从Android v4.4到v7.0之间存在的sdcard守护进程,到近几年的Ceph和GlusterFS,所有基于FUSE的实现都已经采用或正在采用。FUSE在网络文件系统和虚拟化应用程序中都显示了它的实用性。它的出现和发展并不是为了取代内核模式下实现的文件系统,而是作为一种有益的补充(理论上FUSE也可以用来实现根文件系统,但不建议这么做,“可以做& quot和“应该做的”是两回事)。

未经允许不得转载: 主机频道 » linux fuse是什么意思?

相关推荐

  • Linux MySQL 查询优化策略
  • Linux下MySQL权限管理技巧
  • 调整 Linux MySQL 配置参数
  • Linux环境下MySQL版本兼容性
  • 在 Linux 上设计 MySQL 备份策略
  • Linux下MySQL主从复制配置(搭建MySQL主从复制)
  • Linux上实践MySQL安全策略(mysql安全问题)
  • 如何在 Linux 上优化 MySQL 性能
  • Linux 上的 MySQL 安装指南
  • Linux环境下MySQL备份策略
  • MySQL 配置如何影响 Linux 性能
  • Linux系统MySQL权限管理(mysql权限)
  • Linux上MySQL高可用配置(mysql如何实现高可用)
  • 在Linux上实现MySQL事务(如何实现mySQL事务)
  • Linux MySQL分区表设计原则
  • 创建MySQL备份和恢复Linux脚本(mySQL数据备份和恢复命令)

评论 抢沙发

评论前必须登录!

立即登录   注册

玻璃钢生产厂家桂林玻璃钢塑料雕塑深圳商场商业圣诞美陈公司铜仁玻璃钢雕塑公司武侯玻璃钢造型雕塑美陈玻璃钢雕塑批发武汉嘉馨玻璃钢雕塑公司石家庄知名玻璃钢雕塑服务至上玻璃钢雕塑模具材料浙江城市雕塑玻璃钢潮州玻璃钢雕塑制作厂家包头玻璃钢长颈鹿雕塑张家口景区玻璃钢雕塑定做连云港玻璃钢雕塑商家西安玻璃钢花盆哪家好淮南特色玻璃钢雕塑制作河南公园景观玻璃钢卡通雕塑报价商场临街门店美陈管理制度重庆卡通雕塑玻璃钢开封卡通玻璃钢雕塑玻璃钢 雕塑 维修信阳玻璃钢彩绘雕塑设计上海大型主题商场美陈供应商聊城园林玻璃钢雕塑安装玻璃钢拉车圣诞鹿雕塑威海玻璃钢人物雕塑价格江苏农耕系列玻璃钢雕塑价格表浙江大型商场创意商业美陈思路南京定制玻璃钢雕塑要多少钱树脂玻璃钢动物雕塑厂杭州商场大型美陈香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化