Direct-FUSE: Removing the Middleman for High-Performance FUSE File System Support

Yue Zhu, Teng Wang, K. Mohror, A. Moody, Kento Sato, Muhib Khan, Weikuan Yu
{"title":"Direct-FUSE: Removing the Middleman for High-Performance FUSE File System Support","authors":"Yue Zhu, Teng Wang, K. Mohror, A. Moody, Kento Sato, Muhib Khan, Weikuan Yu","doi":"10.1145/3217189.3217195","DOIUrl":null,"url":null,"abstract":"Developing a file system is a challenging task, especially a kernel-level file system. User-level file systems alleviate the burden and development complexity associated with kernel-level implementations. The Filesystem in Userspace (FUSE) is a widely used tool that allows non-privileged users to develop file systems in user space. When a FUSE file system is mounted, it runs as a user-level process. Application programs and FUSE file system processes are bridged through FUSE kernel module. However, as the FUSE kernel module transfers requests between an application program and a file system process, the overheads in a FUSE file system call from crossing the user-kernel boundary is non-trivial. The overheads contain user-kernel mode switches, context switches, and additional memory copies. In this paper, we describe our Direct-FUSE framework that supports multiple FUSE file systems as well as other, custom user-level file systems in user space without the need to cross the user/kernel boundary into the FUSE kernel module. All layers of Direct-FUSE are in user space, and applications can directly use pre-defined unified file system calls to interact with different user-defined file systems. Our performance results show that Direct-FUSE can outperform some native FUSE file systems by 11.9% on average and does not add significant overhead over backend file systems.","PeriodicalId":183802,"journal":{"name":"Proceedings of the 8th International Workshop on Runtime and Operating Systems for Supercomputers","volume":" 7","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2018-06-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"16","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 8th International Workshop on Runtime and Operating Systems for Supercomputers","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3217189.3217195","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 16

Abstract

Developing a file system is a challenging task, especially a kernel-level file system. User-level file systems alleviate the burden and development complexity associated with kernel-level implementations. The Filesystem in Userspace (FUSE) is a widely used tool that allows non-privileged users to develop file systems in user space. When a FUSE file system is mounted, it runs as a user-level process. Application programs and FUSE file system processes are bridged through FUSE kernel module. However, as the FUSE kernel module transfers requests between an application program and a file system process, the overheads in a FUSE file system call from crossing the user-kernel boundary is non-trivial. The overheads contain user-kernel mode switches, context switches, and additional memory copies. In this paper, we describe our Direct-FUSE framework that supports multiple FUSE file systems as well as other, custom user-level file systems in user space without the need to cross the user/kernel boundary into the FUSE kernel module. All layers of Direct-FUSE are in user space, and applications can directly use pre-defined unified file system calls to interact with different user-defined file systems. Our performance results show that Direct-FUSE can outperform some native FUSE file systems by 11.9% on average and does not add significant overhead over backend file systems.
Direct-FUSE:移除高性能FUSE文件系统支持的中间人
开发文件系统是一项具有挑战性的任务,尤其是内核级文件系统。用户级文件系统减轻了与内核级实现相关的负担和开发复杂性。用户空间中的文件系统(FUSE)是一种广泛使用的工具,它允许非特权用户在用户空间中开发文件系统。当一个FUSE文件系统被挂载时,它作为一个用户级进程运行。应用程序和FUSE文件系统进程通过FUSE内核模块桥接。但是,当FUSE内核模块在应用程序和文件系统进程之间传输请求时,FUSE文件系统调用中跨越用户内核边界的开销是非常大的。开销包括用户内核模式切换、上下文切换和额外的内存拷贝。在本文中,我们描述了我们的Direct-FUSE框架,该框架支持多个FUSE文件系统以及用户空间中的其他自定义用户级文件系统,而无需跨越用户/内核边界进入FUSE内核模块。Direct-FUSE的所有层都位于用户空间,应用程序可以直接使用预定义的统一文件系统调用与不同的用户自定义文件系统进行交互。我们的性能结果表明,Direct-FUSE的性能比一些本地FUSE文件系统平均高出11.9%,并且不会给后端文件系统增加明显的开销。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信