High development velocity is critical for modern systems. This is especially true for Linux file systems which are seeing increased pressure from new storage devices and new demands on storage systems. However, high velocity Linux kernel development is challenging due to the ease of introducing bugs, the difficulty of testing and debugging, and the lack of support for redeployment without service disruption. Existing approaches to high-velocity development of file systems for Linux have major downsides, such as the high performance penalty for FUSE file systems, slowing the deployment cycle for new file system functionality. We propose Bento, a framework for high velocity development of Linux kernel file systems. It enables file systems written in safe Rust to be installed in the Linux kernel, with errors largely sandboxed to the file system. Bento file systems can be replaced with no disruption to running applications, allowing daily or weekly upgrades in a cloud server setting. Bento also supports userspace debugging. We implement a simple file system using Bento and show that it performs similarly to VFS-native ext4 on a variety of benchmarks and outperforms a FUSE version by 10x-60x on Filebench. We also show that we can dynamically add file provenance tracking to a running kernel file system with only 10ms of service interruption.
翻译:高速开发对于现代系统至关重要。 这对于Linux文件系统来说尤其如此, 这些系统正在看到新存储装置和储存系统的新需求带来的压力增加。 但是,由于引入错误容易,测试和调试难度大,而且缺乏对不中断服务的重新部署的支持,高速开发Linux文件系统的现有办法具有重大下行性,例如FUSE文件系统的性能处罚高,减缓了新文件系统功能的部署周期。 我们提议Bento, 一个高速度开发Linux内核系统的框架。 它使得以安全Rust写成的文件系统能够安装在Linux内核中, 错误大多被套在文件系统上。 Bento档案系统可以被替换,不中断应用程序运行,允许每天或每周在云服务器设置上升级。 Bento 也支持用户空间调试。 我们使用Bento 实施一个简单的文件系统, 并显示它与VFS-60型外端4相似, 用于各种基准, 超越了Linux内核系统, 能够以10 UUSE 的动态跟踪系统10 。