RFUSE: Modernizing Userspace Filesystem Framework through Scalable Kernel-Userspace Communi...——论文泛读

FAST 2023 Paper 分布式元数据论文整理

问题

随着存储设备的进步和数据规模的扩大,文件系统设计也随之发生了变化。然而,由于开发复杂性和代码安全问题,在内核文件系统中实现新功能是一项具有挑战性的任务。作为一种替代方案,用户空间文件系统由于其易于开发和可靠性而越来越受到关注。FUSE是一个著名的框架,它允许用户在用户空间中开发自定义文件系统。然而,FUSE复杂的内部堆栈导致了显著的性能开销,这在具有高性能存储设备和大量内核的现代硬件环境中变得更加突出。

挑战

FUSE性能瓶颈:

  • FUSE在内核和用户空间以及内存复制开销之间进行了多次上下文切换。

  • FUSE驱动程序在向用户空间FUSE守护进程调度文件系统请求时,使用单个队列阻碍了FUSE实现可伸缩性能。

现有方法局限性

现有方法[3,15,23]主要侧重于增强内核和用户空间之间的通信,旨在实现与内核内文件系统同等的性能。然而只是部分有效的,因为它们共享FUSE的基本设计,该设计依赖于单个队列。此外,通常要求开发人员重新实现文件系统功能或引入新的实现,这使得它们与现有的基于FUSE的文件系统不兼容。

本文方法

在本文中,提出了RFUSE,一种新的用户空间文件系统框架,它利用了内核和用户空间之间的可伸缩消息通信。

  • 可扩展的内核-用户空间通信。采用每个核心、NUMA感知的环形信道,确保在不同信道上传输的请求不受锁争用的影响。这种方法最大限度地提高了请求处理的并行性,从而实现了高可伸缩性。

  • 高效的请求传输。将环形通道映射为内核和用户空间之间的共享内存,并使用混合轮询来有效地传输请求和回复。这种方法有效地减少了上下文切换和请求复制开销。

  • 与现有的基于FUSE的文件系统完全兼容。提供了与FUSE相同的API,允许现有的基于FUSE的文件系统在RFUSE上无缝运行,而无需任何修改。

开源代码:GitHub - snu-csl/rfuse: RFUSE: Modernizing Userspace Filesystem Framework through Scalable Kernel-Userspace Communication

评估结果表明,RFUSE可有效减少53%的通信延迟,在高性能设备上表现出与内核内文件系统相当的吞吐量,同时在数据和元数据操作方面表现出高可扩展性。

实验

实验环境:第一个测试台是Dell PowerEdge R750xs服务器,两个Intel(R)Xeon(R)Silver 4316 CPU(共80个逻辑核),256GB DDR4内存,2TB Fadu Delta PCIe 4.0 SSD,Mellanox ConnectX-6。第二个测试台是Supermicro 7049GP-TRT服务器,两个Intel(R)Xeon(R)Gold 5218R CPU(总共80个逻辑核),256GB DDR4内存,Mellanox ConnectX-5。两个测试平台都运行Ubuntu 20.04 LTS,Linux内核版本5.15.0。

数据集:FIO、FXMARK[29]、Filebench、YCSB、OLTP

实验对比:吞吐量、CPU利用率、操作数

实验参数:线程数、核心数

总结

针对FUSE文件系统的性能开销,作者分析原因在于用户空间和内核的上下文切换、单个队列的锁争用。本文提出RFUSE,包括三个创新点:(1)可扩展的内核-用户空间通信。采用每个核心、NUMA感知的环形信道,确保在不同信道上传输的请求不受锁争用的影响,提升并行性。(2)高效的请求传输。将环形通道映射为内核和用户空间之间的共享内存,并使用混合轮询来有效地传输请求和回复。减少了上下文切换和请求复制开销。(3)与现有的基于FUSE的文件系统完全兼容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妙BOOK言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值