LogFS 0.1

LogFS is a Log Structured File System for Linux that supports snapshots.
LogFS is a Log Structured File System for Linux that supports snapshots.

A Log Structured File System (LFS) writes all the file system data sequentially in a log-like structure. A log consists of a series of segments, where each segment contains both data and inode blocks. Traditional file systems like ext2 usually write inode blocks at a fixed place on the disk, causing overhead due to disk seeks. A log structured file system gathers a segment worth of data in memory and appends the segment at the end of the log. This dramatically improves the write performance while maintaining the same read performance. The sequential nature of the log also helps in crash recovery as less checkpointing information need to be stored. As the file system grows and files are deleted, holes are created in the file system. A cleaner is required to fill the holes and compact the file system allowing large extents of free blocks to be found. The novel aspect in this work is the addition of snapshotting capability to log-structured file systems. Currently, no Linux file system offers this capability.

The primary objective of this work is to create a log-structured file system for Linux that supports snapshots. A snapshot is a copy of the files taken at a particular time. This is very similar to backup of a file system at a particular time except that it is maintained within the same file system without wasting any space. We believe that LFS is the ideal system for maintaining snapshots, because its design renders naturally to maintain snapshots.

Motivation

Why do we need yet another file system for Linux? When LFS was originally proposed, the idea of append-to-end-of-log to improve write performance was novel and produced great results on various micro benchmarks. However, later studies have shown that in transaction processing environments LFS performs poorly due to the cleaner overhead. We believe that advances in disk and memory technologies will help log structured file systems. In the past decade, huge improvements are seen in the disk and memory sizes for a typical machine. Increase in memory size allows LFS to gather more segments in memory and with larger disk space, the cleaner need not be run as often.

Currently, no Linux file system supports snapshots. Snapshots are usually considered a special capability supported by network attached storage devices (NASD) developed by companies like NetApp. The cost of these NASDs is prohibitive for small businesses and we believe that we can develop an open source file system that supports snapshots. Since LFS lends itself naturally to support snapshots, we propose to implement an LFS for Linux.

last updated on:
October 7th, 2008, 9:58 GMT
price:
FREE!
developed by:
Pradeep Padala
homepage:
logfs.sourceforge.net
license type:
GPL (GNU General Public License) 
category:
ROOT \ System \ Filesystems

FREE!

In a hurry? Add it to your Download Basket!

user rating 16

2.9/5
 

0/5

Add your review!

SUBMIT