Analysis and Evolution of Journaling File Systems

We develop and apply two new methods for analyzing file system behavior and evaluating file system changes. First, semantic block-level analysis (SBA) combines knowledge of on-disk data structures with a trace of disk traffic to infer file system behavior; in contrast to standard benchmarking approaches, SBA enables users to understand why the file system behaves as it does. Second, semantic trace playback (STP) enables traces of disk traffic to be easily modified to represent changes in the file system implementation; in contrast to directly modifying the file system, STP enables users to rapidly gauge the benefits of new policies. We use SBA to analyze Linux ext3, ReiserFS, JFS, and Windows NTFS; in the process, we uncover many strengths and weaknesses of these journaling file systems. We also apply STP to evaluate several modifications to ext3, demonstrating the benefits of various optimizations without incurring the costs of a real implementation.

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

[2]  RosenblumMendel,et al.  The design and implementation of a log-structured file system , 1991 .

[3]  Andreas Reuter,et al.  Transaction Processing: Concepts and Techniques , 1992 .

[4]  Ray Bryant,et al.  Filesystem Performance and Scalability in Linux 2.4.17 , 2002, USENIX Annual Technical Conference, FREENIX Track.

[5]  Margo I. Seltzer,et al.  Journaling Versus Soft Updates: Asynchronous Meta-data Protection in File Systems , 2000, USENIX Annual Technical Conference, General Track.

[6]  David A. Patterson,et al.  A new approach to I/O performance evaluation: self-scaling I/O benchmarks, predicted I/O performance , 1993, SIGMETRICS '93.

[7]  John K. Ousterhout,et al.  Why Aren't Operating Systems Getting Faster As Fast as Hardware? , 1990, USENIX Summer.

[8]  Margo I. Seltzer,et al.  New NFS Tracing Tools and Techniques for System Analysis , 2003, LISA.

[9]  Matt Blaze NFS Tracing By Passive Network Monitoring , 1992 .

[10]  Helen Custer,et al.  Inside Windows NT , 1992 .

[11]  Yale N. Patt,et al.  Metadata update performance in file systems , 1994, OSDI '94.

[12]  Erez Zadok,et al.  Tracefs: A File System to Trace Them All , 2004, FAST.

[13]  W. Vogels File system usage in Windows NT 4.0 , 2000, OPSR.

[14]  Robert B. Hagmann,et al.  Reimplementing the Cedar file system using logging and group commit , 1987, SOSP '87.

[15]  R. S. Fabry,et al.  A fast file system for UNIX , 1984, TOCS.

[16]  Alan Jay Smith,et al.  A File System Tracing Package for Berkeley UNIX , 1985 .

[17]  Steve Best JFS Log: How the Journaled File System Performs Logging , 2000, Annual Linux Showcase & Conference.

[18]  John Kunze,et al.  A trace-driven analysis of the unix 4 , 1985, SOSP 1985.

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

[20]  Carl Staelin,et al.  lmbench: Portable Tools for Performance Analysis , 1996, USENIX Annual Technical Conference.

[21]  Mary Baker,et al.  Measurements of a distributed file system , 1991, SOSP '91.

[22]  Erik Riedel,et al.  A Framework for Evaluating Storage System Security , 2002, FAST.

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

[24]  Junfeng Yang,et al.  Using model checking to find serious file system errors , 2004, TOCS.

[25]  Sailesh Chutani,et al.  The Episode File System , 1992 .

[26]  Werner Vogels,et al.  File system usage in Windows NT 4.0 , 1999, SOSP.

[27]  Jeffrey C. Mogul,et al.  A Better Update Policy , 1994, USENIX Summer.

[28]  T. J. Kowalski,et al.  Fsck—the UNIX file system check program , 1990 .

[29]  Thomas E. Anderson,et al.  A Comparison of File System Workloads , 2000, USENIX Annual Technical Conference, General Track.

[30]  John A. Kunze,et al.  A trace-driven analysis of the UNIX 4.2 BSD file system , 1985, SOSP '85.