The goal of this project is to implement a log-structured file system for Linux 2.6 kernel, based on previous works described in related papers with features including:
- Append-only access to the disk
- Fast crash recovery
- Cost benefit garbage collector
- Practically unlimited number of inodes
- A snapshot - a consistent image of the filesystem that can be used for backup while LFS is mounted
- Fast writeback and modification of small files
- Quick access and manipulation with large directories
- Associated utilities (mkfs, fsck...)
Unlike the previous LFS implementations, we try to fit in well in the unified page and buffer cache of the new 2.6 Linux kernels.
The first version was released in September 2006. At the moment, we evaluate performance, analyze problems and general file system behavior and present the results to the Linux community and beyond. We hope to resume further development soon, ideally with contribution from other members of the community.
- Mendel Rosenblum and John K. Ousterhout, The Design and Implementation of a Log-Structured File System, ACM Transactions on Computer Systems, volume 10, number 1, pages 26-52. 1992
- Margo Seltzer, Keith Bostic, Marshall Kirk McKusick and Carl Staelin, An Implementation of a Log-Structured File System for UNIX, USENIX Winter, pages 307-326, 1993
- J. N. Matthews, D. Roselli, A. M. Costello, R. Y. Wang and T. E. Anderson, Improving the Performance of Log-Structured File Systems with Adaptive Methods, proc. Sixteenth ACM Symposium on Operating Systems Principles (SOSP), pages 238-251, 1997
- Margo Seltzer, Keith A. Smith, Hari Balakrishnan, Jacqueline Chang, Sara McMains and Venkata Padmanabhan, File System Logging Versus Clustering: A Performance Comparison, USENIX Winter, pages 249-264, 1995