DFS: A file system for virtualized flash storage

We present the design, implementation, and evaluation of Direct File System (DFS) for virtualized flash storage. Instead of using traditional layers of abstraction, our layers of abstraction are designed for directly accessing flash memory devices. DFS has two main novel features. First, it lays out its files directly in a very large virtual storage address space provided by FusionIO's virtual flash storage layer. Second, it leverages the virtual flash storage layer to perform block allocations and atomic updates. As a result, DFS performs better and is much simpler than a traditional Unix file system with similar functionalities. Our microbenchmark results show that DFS can deliver 94,000 I/O operations per second (IOPS) for direct reads and 71,000 IOPS for direct writes with the virtualized flash storage layer on FusionIO's ioDrive. For direct access performance, DFS is consistently better than ext3 on the same platform, sometimes by 20%. For buffered access performance, DFS is also consistently better than ext3, and sometimes by over 149%. Our application benchmarks show that DFS outperforms ext3 by 7% to 250% while requiring less CPU power.

[1]  Samuel J. Leffler,et al.  A Fast File System for UNIX (Revised July 27, 1983) , 1983 .

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

[3]  P. Krishnan,et al.  Flash memory file caching for mobile computers , 1994, 1994 Proceedings of the Twenty-Seventh Hawaii International Conference on System Sciences.

[4]  Michael Wu,et al.  eNVy: a non-volatile, main memory storage system , 1994, ASPLOS VI.

[5]  James Lau,et al.  File System Design for an NFS File Server Appliance , 1994, USENIX Winter.

[6]  Kai Li,et al.  Storage alternatives for mobile computers , 1994, OSDI '94.

[7]  Kester Li Towards A Low Power File System , 1994 .

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

[9]  William J. Bolosky,et al.  A large-scale study of file-system contents , 1999, SIGMETRICS '99.

[10]  David Woodhouse,et al.  JFFS : The Journalling Flash File System , 2001 .

[11]  R. Card,et al.  Design and Implementation of the Second Extended Filesystem , 2001 .

[12]  Russ B. Altman,et al.  Missing value estimation methods for DNA microarrays , 2001, Bioinform..

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

[14]  Herbert Bos,et al.  File size distribution on UNIX systems: then and now , 2006, OPSR.

[15]  Jin-Soo Kim,et al.  FAB: flash-aware buffer management policy for portable media players , 2006, IEEE Transactions on Consumer Electronics.

[16]  Diego R. Llanos TPCC-UVa: an open-source TPC-C implementation for global performance measurement of computer systems , 2006, SIGMOD 2006.

[17]  Diego R. Llanos Ferraris,et al.  TPCC-UVa: an open-source TPC-C implementation for global performance measurement of computer systems , 2006, SGMD.

[18]  Joonwon Lee,et al.  CFLRU: a replacement algorithm for flash memory , 2006, CASES '06.

[19]  Michael Isard,et al.  A design for high-performance flash disks , 2007, OPSR.

[20]  Hyojun Kim,et al.  BPLRU: A Buffer Management Scheme for Improving Random Writes in Flash Storage , 2008, FAST.

[21]  Lidong Zhou,et al.  Transactional Flash , 2008, OSDI.

[22]  Rina Panigrahy,et al.  Design Tradeoffs for SSD Performance , 2008, USENIX ATC.

[23]  Tom M. Mitchell,et al.  Data Analysis Project: Leveraging Massive Textual Corpora Using n-Gram Statistics , 2008 .

[24]  Maya Gokhale,et al.  Threading Opportunities in High-Performance Flash-Memory Storage. , 2008 .

[25]  John D. Davis,et al.  Block Management in Solid-State Devices , 2009, USENIX Annual Technical Conference.