HMVFS: A Hybrid Memory Versioning File System

The byte-addressable Non-Volatile Memory (NVM) offers fast, fine-grained access to persistent storage, and a large volume of recent researches are conducted on developing NVM-based in-memory file systems. However, existing approaches focus on low-overhead access to the memory and only guarantee the consistency between data and metadata. In this paper, we address the problem of maintaining consistency among continuous snapshots for NVM-based in-memory file systems. We propose a Hybrid Memory Versioning File System (HMVFS) that achieves fault tolerance efficiently and has low impact on I/O performance. Our results show that HMVFS provides better performance on snapshotting compared with the traditional versioning file systems for many workloads. Specifically, HMVFS has lower snapshotting overhead than BTRFS and NILFS2, improving by a factor of 9.7 and 6.6, respectively. Furthermore, HMVFS imposes minor performance overhead compared with the state-of-the-art in-memory file systems like PMFS.

[1]  Tei-Wei Kuo,et al.  Efficient initialization and crash recovery for log-based file systems over flash memory , 2006, SAC.

[2]  Roy H. Campbell,et al.  Consistent and Durable Data Structures for Non-Volatile Byte-Addressable Memory , 2011, FAST.

[3]  Sanjay Kumar,et al.  System software for persistent memory , 2014, EuroSys '14.

[4]  Jeffrey Katcher,et al.  PostMark: A New File System Benchmark , 1997 .

[5]  Randal C. Burns,et al.  Ext3cow: a time-shifting file system for regulatory compliance , 2005, TOS.

[6]  Wei Hu,et al.  Scalability in the XFS File System , 1996, USENIX Annual Technical Conference.

[7]  Kaladhar Voruganti,et al.  An empirical study of file systems on NVM , 2015, 2015 31st Symposium on Mass Storage Systems and Technologies (MSST).

[8]  Sang-Won Lee,et al.  Design and Implementation of a Log-Structured File System for Flash-Based Solid State Drives , 2014, IEEE Transactions on Computers.

[9]  Jan Stender,et al.  Snapshots in large-scale distributed file systems , 2013 .

[10]  Herbert Bos,et al.  Proceedings of the Ninth European Conference on Computer Systems , 2014 .

[11]  Dahlia Malkhi,et al.  From paxos to CORFU: a flash-speed shared log , 2012, OPSR.

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

[13]  Stephen C. Tweedie,et al.  Journaling the Linux ext2fs Filesystem , 2008 .

[14]  Rajeev Nagar,et al.  Windows NT file system internals - a developer's guide: building NT file system drivers , 1997 .

[15]  Chris Dragga,et al.  GCTrees: Garbage collecting snapshots , 2015, 2015 31st Symposium on Mass Storage Systems and Technologies (MSST).

[16]  Andrew A. Chien,et al.  When is multi-version checkpointing needed? , 2013, FTXS '13.

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

[18]  Joo Young Hwang,et al.  F2FS: A New File System for Flash Storage , 2015, FAST.

[19]  Fabio Crestani,et al.  Proceedings of the 2006 ACM symposium on Applied computing , 2006 .

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

[21]  A. L. Narasimha Reddy,et al.  SCMFS: A file system for Storage Class Memory , 2011, 2011 International Conference for High Performance Computing, Networking, Storage and Analysis (SC).

[22]  OHAD RODEH,et al.  B-trees, shadowing, and clones , 2008, TOS.

[23]  M. Anton Ertl,et al.  LinLogFS - A Log-Structured File System for Linux , 2000, USENIX Annual Technical Conference, FREENIX Track.

[24]  Ohad Rodeh IBM Research Report Deferred Reference Counters for Copy-On-Write B-trees , 2010 .

[25]  Christopher Frost,et al.  Better I/O through byte-addressable, persistent memory , 2009, SOSP '09.