LogFS is a Linux-based file system that operates on a log-structured logging mechanism enabling high-write focused and high durability uses. It also supports snapshots.
The sequential design of the log is one of the primary reasons why it excels in crash recovery as less checkpointing information needs to be stored. As the file system continues to grow and files are deleted, holes are created within the file system. To solve this issue, a cleaner must be utilized in order to fill in the holes and compact the file system to allow ample amounts of free block storage. The most significant feature of the Log Structured File System is the new snapshotting capability that was added. Currently, no other Linux based file system has this capability which makes it incredibly unique.
The significant objective of this design was to develop a Log-Structured File System that had a snapshotting feature while maintaining its incredible standards. Creating a snapshot within LogFS helps copy an entire file and save it at a specific time without any wasted space. This is similar to backing up a file system at a specific time, but it is maintained in the same file system without the waste of space. LogFS is the ideal system to keep snapshots since it is designed to maintain these snapshots naturally.
To answer the question of why we need yet another file system for Linux, we need to note that when LFS was first proposed, the idea of improving write performance via the append-to-end-of-log was innovative and exhibited great results on various micro benchmarks. In transaction processing environments, LFS proved to be less than perfect due to cleaner overhead. However, advances in disk and memory technologies, such as improved memory size, have allowed LFS to gather more segments in memory. Also, with larger disk space, the cleaner needs not to be run as often, thereby addressing the cleaner overhead.
Furthermore, no other Linux file system currently supports snapshots, which is typically considered a specialized capability supported by network attached storage devices (NASD) produced by companies like NetApp. These storage devices come with a significant cost, which is not practical or feasible for small businesses. The creation of an open-source file system, which provides support for snapshots, has the potential to fill that void. In conclusion, since LFS lends itself naturally to support snapshots, we propose to implement an LFS for Linux.
Version 0.1: N/A