[论文解读] Safe and Efficient Remote Application Code Execution on Disaggregated NVM Storage with eBPF
本文提出使用eBPF在分离式NVM存储上实现安全、高效且通用的远程代码执行,利用eBPF的验证执行、沙箱环境以及高性能特性,减少网络数据移动。原型验证了将增量操作和二分查找等操作卸载到存储设备上执行的可行性,通过在存储设备上直接执行逻辑,显著降低了I/O开销。
With rapid improvements in NVM storage devices, the performance bottleneck is gradually shifting to the network, thus giving rise to the notion of "data movement wall". To reduce the amount of data movement over the network, researchers have proposed near-data computing by shipping operations and compute-extensions closer to storage devices. However, running arbitrary, user-provided extensions in a shared, disaggregated storage environment presents multiple challenges regarding safety, isolation, and performance. Instead of approaching this problem from scratch, in this work we make a case for leveraging the Linux kernel eBPF framework to program disaggregated NVM storage devices. eBPF offers a safe, verifiable, and high-performance way of executing untrusted, user-defined code in a shared runtime. In this paper, we describe our experiences building a first prototype that supports remote operations on storage using eBPF, discuss the limitations of our approach, and directions for addressing them.
研究动机与目标
- 解决因高速NVM存储与较慢网络链路之间的性能差距而引发的日益严重的'数据移动墙'问题。
- 实现在共享、远程NVM存储设备上安全、高效且通用的用户自定义代码执行。
- 利用成熟、经过验证且性能优越的eBPF框架作为远程计算卸载的基础。
- 构建并评估在存储设备上直接执行增量和二分查找等操作的可行性,以最小化数据移动。
- 探索eBPF在此场景下的局限性,并识别提升表达能力和性能的未来方向。
提出的方法
- 使用eBPF作为安全、可验证且经过JIT编译的运行时环境,在远程NVM存储设备上执行不受信任的用户代码。
- 扩展NBD(网络块设备)协议作为概念验证的传输层,以支持远程代码上传与执行。
- 设计一种系统,使应用程序能够将eBPF程序上传至存储设备执行,从而减少大型数据集在网络上的传输需求。
- 利用eBPF的验证器确保执行的边界性与内存访问的安全性,防止恶意或错误行为。
- 复用eBPF现有的生态系统与工具链,以最小化实现开销,并确保可移植性与可维护性。
- 通过微基准测试评估远程操作(如在大数据集上执行数值递增和二分查找)的性能表现。
实验结果
研究问题
- RQ1eBPF能否有效用于在分离式NVM存储上实现对任意用户代码的安全高效远程执行?
- RQ2与传统数据传输模式相比,将增量和二分查找等操作卸载到存储设备上,如何减少网络I/O并提升性能?
- RQ3在该用例中,使用eBPF的主要局限性是什么,特别是关于表达能力与执行时间保证方面?
- RQ4如何扩展eBPF以支持更复杂的声明式工作负载,如在远程存储上执行map和reduce操作?
- RQ5在共享存储设备上允许任意代码执行,其安全性和隔离性权衡如何?
主要发现
- 原型成功演示了通过NBD协议在NVM存储上远程执行eBPF程序,验证了该方法的核心可行性。
- 将增量和二分查找等操作卸载到存储设备可显著减少I/O开销,通过最小化数据传输实现性能提升,微基准测试中已观察到明显改善。
- eBPF内置的验证器确保了执行安全,防止了不安全的内存访问和无限循环,这对多租户环境至关重要。
- 通过eBPF的JIT编译,该方法实现了高性能,使存储设备上的执行速度接近原生性能。
- 当前eBPF模型在复杂数据处理工作负载的表达能力方面存在局限,提示需要增强功能,如高阶函数或更丰富的系统调用。
- 该工作识别出将远程eBPF执行与生产级存储协议(如NVMoF)以及更高层存储栈(如块设备和文件系统)集成时面临的关键挑战。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。