手机版
你好,游客 登录 注册
背景:
阅读新闻

FUSE在Linux 5.1中融合了更多性能改进

[日期:2019-03-13] 来源:Linux公社  作者:醉落红尘 [字体: ]

最近的内核,如Linux 4.20为FUSE带来了各种性能增强,内核代码允许文件系统在用户空间中运行。 在Linux 5.1中,还有其他FUSE优化工作。

Linux 5.1的FUSE用户空间文件系统(Filesystem in Userspace)工作的重点是提高可伸缩性和性能。FUSE的更改包括缓存readdir调用、允许客户端选择不使用opendir功能、支持copy_file_range和异步直接I/O(使用FOPEN_DIRECT_IO打开文件)、最大限度地减少某些元数据操作的锁定争用,以及其他优化和修复。

为什么要强调用户空间呢?接触过Linux内核的同学大概会知道,文件系统一般是实现在内核里面的,比如,Ext4、Fat32、NTFS(Kernel原生版)等常见的文件系统,其代码都在内核中,而FUSE特殊之处就是,其文件系统的核心逻辑是在用户空间实现的。

FUSE实现原理

下面这张图体现了FUSE工作的基本套路,是根据WIki里的画的,这张图感觉更符合我看到的代码的状况。

fuse基本工作流程

图中体现了FUSE的2个关键部分(绿色方框),分别是Kernel中的那个FUSE(这里简称kernel FUSE)和user space中的那个fuse_user程序。其中kernel FUSE是负责把从用户层过来的文件系统操作请求传递给fuse_user程序的,而这个fuse_user程序实现了前面所说的文件系统的核心逻辑。

下面分步描述一下在用户对一个FUSE分区上的文件执行ls命令时发生了什么,当然,这里隐含了个前提,即这个系统的/tmp目录已经属于某个FUSE分区了,为了达到这种状况,前面还需要有一个mount的过程。

通过此pull request概述了Linux 5.1的FUSE更改的完整列表。

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址https://www.linuxidc.com/Linux/2019-03/157454.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款