The newest open-source Linux file-system, SSDFS, implements 76 patches that cater to flash-friendly drives and particularly those with NVMe Zoned Namespaces (ZNS) support. While the mainline F2FS file-system is already a “Flash-Friendly File-System,” SSDFS takes aim particularly at solid-state storage drives with NVMe Zoned Namespaces support.
Understanding the Benefits of NVMe ZNS
The ZNS command set exposes the zoned block storage interface between the host system and the SSD to allow for more optimal data alignment. Properly leveraging NVMe ZNS can lead to lower I/O access latency, reduced write amplification, and expose more storage capacity.
Although SSDFS is “not completely stable” yet, developer Viacheslav Dubeyko believes that it has reached the point where it is ready for more community review/feedback. After several years of development, SSDFS aims to eliminate garbage collection “GC” overhead, prolong SSD lifespan / endurance, and natively support a strict append-only mode for ZNS SSDs as well as SMR HDDs. SSDFS also aims to guarantee strong reliability and stable performance.
Positive Benchmark Results
Benchmarks for SSDFS show quite positive results compared to other (stable) Linux file-systems. Among the features still being worked on for SSDFS are snapshot support, de-duplication, shared dictionary functionality, extended attributes, IOCTLs support, and other items along with needing to stabilize the ZNS support and other features.
Availability and Future Development
The SSDFS kernel driver patches submitted for review are available via this patch series. The user-space tools are available via ssdfs-tools for resize support, fsck, mkfs, and other utilities. It will be interesting to see where this work on SSDFS leads and if it manages to gain traction for mainlining.
With SSDFS, the Linux community now has another option for a flash-friendly file system, one that is specially designed to cater to solid-state storage drives with NVMe Zoned Namespaces support.