DPC: DPU-accelerated High-Performance File System Client
Kan Zhong,Zhiwang Yu,Qiao Li,Xianqiang Luo,Linbo Long,Yujuan Tan,Ao Ren,Duo Liu
DOI: https://doi.org/10.1145/3673038.3673123
2024-01-01
Abstract:To achieve efficient file access to the file system backend, file system clients employ various intricate optimization techniques, such as local data/metadata caching and direct data access. However, these techniques impose a significant load on the host CPU, posing substantial challenges to the valuable CPU resources. In this paper, we propose DPC, a DPU-accelerated High-Performance Client designed for both distributed and standalone file systems. DPC offloads complex file-semantic operations, such as file or directory delegation, cache management, and erasure code computation, from the host CPU to the DPU, thus freeing up the host CPU cycles. First, to offer low-latency and high-performance file operations, we introduce nvme-fs, which allows applications to directly interact with DPC through native file semantics by augmenting the NVMe protocol. Second, a hybrid caching mechanism with separation of the data plane and control plane is proposed in DPC to accelerate file accesses. Finally, a key-value based file system, namely KVFS, is proposed in DPC to provide local standalone file service, thus replacing the under-utilized local disks with disaggregated storage. Experimental results show that DPC can achieve extremely low (as low as 20 mu sec) host-DPU transmission latency. The local standalone file service provided by DPC outperforms Ext4 and saves more than 80% CPU usage in high concurrency scenarios. Besides, with DPC, distributed file systems can reduce the host CPU usage by 90% while maintaining high performance.