SchInFS: A File System Integrating Functions of the Block I/O Scheduler for ZNS SSDs
Jintong Zhang, Haichuan Hu, Jianxi Chen, Yekang Zhan · 2024
Emerging Zoned Namespace (ZNS) SSDs divide address space into sequentially written zones and transfer garbage collection (GC) to the host, thereby providing more stable performance, increased capacity, and extended device lifespan. However, the sequential write constraint poses some problems for file system design on ZNS devices, particularly leading to bottlenecks in multi-threaded performance for concurrent write requests. Through comprehensive experiments, we analyze the scalability issues of existing POSIX file systems on NVMe ZNS SSDs and identify the root causes: (1) current file systems generally fail to simultaneously utilize the throughput of multiple zones, and (2) their methods for concurrent writing within a single zone are inefficient. To fully exploit the concurrent performance of ZNS SSDs, we propose SchInFS, a novel multi-head logging ZNS SSD file system that integrates the functions of the block I/O scheduler. Firstly, SchInFS employs a multi-head logging design to leverage the throughput of multiple zones concurrently. Secondly, it provides an independent merge queue for each log, facilitating efficient cross-thread write blocks. Finally, SchInFS uses a Block I/O Submission Controller (BSC) to ensure the timely submission of requests and ordered writing within a single zone. Evaluation on real devices demonstrates the effectiveness of SchInFS, showcasing a substantial improvement in the concurrency performance of ZNS SSDs by up to 71.94% compared to current ZNS SSD file systems.