Being released soon is the Linux 3.8 kernel and one of its many new features is the introduction of the F2FS file-system. The "Flash-Friendly File-System" was developed by Samsung and is showing promise as a new Linux file-system designed around the characteristics of flash-based storage devices. In this article are the first benchmarks of F2FS compared to Btrfs, EXT3, EXT4, XFS, JFS, and ReiserFS file-systems.
F2FS is a log-structured file-system that was originally developed by Samsung (that article has more details on the F2FS design principles) in October of last year and then merged into Linux 3.8. The initial performance results relayed by the developers were impressive for this open-source file-system that's designed for optimal use on solid-state drives, eMMC, SD cards, and other (NAND-based) flash memory storage devices. Samsung obviously designed F2FS with its many Android-based mobile devices in mind but F2FS may end up becoming quite relevant to servers too. The F2FS file-system's on-disk layout is configurable as is the allocation and cleaning algorithms along with other parameters that can be tuned for optimizing the Linux file-system to a given flash device.
Besides needing the Linux 3.8 kernel (or newer), the CONFIG_F2FS_FS option is the kernel configuration option for enabling kernel support for this file-system. The user-space programs for the F2FS file-system can be found in this Kernel.org Git repository for formatting an F2FS file-system. The F2FS performance was looked at from a daily Git snapshot of the Linux 3.8 kernel while running a development snapshot of the Ubuntu 13.04 operating system.
The F2FS file-system was used with its default mount options on the Linux 3.8 kernel along with the default mount options of the other file-systems tested: Btrfs, EXT3, EXT4, XFS, JFS, and ReiserFS. Benchmarking occurred from an Intel X25 160GB solid-state drive (SSDSA2M160). Benchmarks of the Flash-Friendly File-System from USB flash drives and SDHC cards will happen in a later Phoronix article.