F2FS: A New File System for Flash Storage

F2FS is a Linux file system designed to perform well on modern flash storage devices. The file system builds on append-only logging and its key design decisions were made with the characteristics of flash storage in mind. This paper describes the main design ideas, data structures, algorithms and the resulting performance of F2FS. Experimental results highlight the desirable performance of F2FS; on a state-of-the-art mobile system, it outperforms EXT4 under synthetic workloads by up to 3.1× (iozone) and 2× (SQLite). It reduces elapsed time of several realistic workloads by up to 40%. On a server system, F2FS is shown to perform better than EXT4 by up to 2.5× (SATA SSD) and 1.8× (PCIe SSD).

[1]  Yanping Zhao,et al.  HyLog: A High Performance Approach to Managing Disk Layout , 2004, FAST.

[2]  Cristian Ungureanu,et al.  Revisiting storage for smartphones , 2012, TOS.

[3]  Sang-Won Lee,et al.  SFS: random write considered harmful in solid state drives , 2012, FAST.

[4]  KimJin-Soo,et al.  A reconfigurable FTL (flash translation layer) architecture for NAND flash-based applications , 2008 .

[5]  Koji Sato,et al.  The Linux implementation of a log-structured file system , 2006, OPSR.

[6]  Youjip Won,et al.  I/O Stack Optimization for Smartphones , 2013, USENIX ATC.

[7]  Hiroshi Motoda,et al.  A Flash-Memory Based File System , 1995, USENIX.

[8]  Josef Bacik,et al.  BTRFS: The Linux B-Tree Filesystem , 2013, TOS.

[9]  Jörn Engel,et al.  LogFS-finally a scalable flash file system , 2005 .

[10]  Youngjae Kim,et al.  DFTL: a flash translation layer employing demand-based selective caching of page-level address mappings , 2009, ASPLOS.

[11]  Jin-Soo Kim,et al.  FlashLight , 2012, ACM Trans. Embed. Comput. Syst..

[12]  Sang-Won Lee,et al.  A log buffer-based flash translation layer using fully-associative sector translation , 2007, TECS.

[13]  Young-Jin Kim,et al.  LAST: locality-aware sector translation for NAND flash memory-based storage systems , 2008, OPSR.

[14]  Ruei-Chuan Chang,et al.  Using data clustering to improve cleaning performance for flash memory , 1999 .

[15]  Carl Staelin,et al.  The HP AutoRAID hierarchical storage system , 1995, SOSP.

[16]  Sangyeun Cho,et al.  The Multi-streamed Solid-State Drive , 2014, HotStorage.

[17]  David Flynn,et al.  DFS: A file system for virtualized flash storage , 2010, TOS.

[18]  Jongmoo Choi,et al.  Optimizations of LFS with slack space recycling and lazy indirect block update , 2010, SYSTOR '10.

[19]  A. L. Narasimha Reddy,et al.  NVMFS: A hybrid file system for improving random write in nand-flash SSD , 2013, 2013 IEEE 29th Symposium on Mass Storage Systems and Technologies (MSST).

[20]  Red Hat JFFS : The Journalling Flash File System , 2001 .

[21]  Mendel Rosenblum,et al.  The design and implementation of a log-structured file system , 1991, SOSP '91.

[22]  Jun Wang,et al.  WOLF - A Novel Reordering Write Buffer to Boost the Performance of Log-Structured File Systems , 2002, FAST.

[23]  Jeanna Neefe Matthews,et al.  Improving the performance of log-structured file systems with adaptive methods , 1997, SOSP.

[24]  Sang Lyul Min,et al.  A space-efficient flash translation layer for CompactFlash systems , 2002, IEEE Trans. Consumer Electron..