LinLogFS -- A Log-Structured Filesystem For Linux
LinLogFS was formely known as dtfs.
(Name change to avoid conflicts with SCO's dtfs)
Latest Modification: June 25th, 2001 by Anton Ertl
Recent Changes:
- Added link to LFS, and did some more changes too the "Related
Information" section.
- Some ideas
for an log-structured file system that came out of the work on
LinLogFS. It's probably best to implement them from scratch (or
starting with ext2 or so) rather than trying to port LinLogFS forward
to Linux 2.6 and then add these ideas.
- The main part of LinLogFS is stalled (Christian Czezatke's job
does not leave enough time). If you are interested in
maintaining/extending it, please contact Anton
Ertl.
- David A. Gatwood wrote a Cleaner for
LinLogFS.
- Usenix Freenix
2000 Paper on LinLogFS (Overview, some idea sketches)
- The
LinLogFS Mailing List has had no on-topic traffic in the
last few tears, so better avoid it.
- Summary of new design ideas is now available from here
- Work is now partly sponsored by xS+S, my employer
- Linlog filesystems can now be created on glibc 2.1/gcc 2.95.2 systems (thanks to Al Styrsky)
- Inode (De)allocation is now fully implemented (needs testing)
- Adapted LinLogFS for Linux 2.2.14
Goal of the Project
The goal of the project is to implement a log-structured file system within
the Linux 2.2.x kernels. LinLogFS has a filesystem-independent core that provides
general services required for a log-structured file system and uses a "traditional"
file system implementation to do the actual filesystem/VFS operations.
The tradtional file system of choice is currently Linux' ext2 file system.
Using the ext2 file system together with the log-structured core should
both reduce the implementation work required to be done and facilitate
the future maintainence of LinLogFS: Additions to the ext2 file system features
should (hopefully) be easy to integrate into the LinLog file system too.
Status of the Project
Basic filesystem operations are almost done. You should be able to
perform all filesystem operations on a LinLogFS filesystem.
What does not work right now is:
- You cannot put a swapfile on a LinLogFS partition. (More
fundamental issue.)
- O_SYNC support is still incomplete.
- Due to a bug in the mkfs utility, LinLogFS is currently
broken on Big Endian platforms (Sparc, PowerPC).
- What is still badly missing is a working cleaner that
reclaims free disk space. (started)
Contents
This page contains general information about what LinLogFS actually is, etc...
LinLogFS is now quite easy to install. But be aware that LinLogFS is
nevertheless not practially usable as long as the items listed above
are still unresolved.
This page lists a number of topics that are currently considered for addition to
LinLogFS. The list found on this page is mainly motivated by my experiences during
the work on LinLogFS so far.
There is now a mailing list for LinLogFS. Future versions of LinLogFS
will be announced there. Click on the link above to get information on
how to subscribe to this mailing list.
If you're interested in the internals of dtfs, having a look at this page
is highly recommended. You'll find a postscript document outlining the
design and the implementation of LinLogFS there. Furthermore, a few older (and
partly outdated) LinLogFS-related documents/design considerations can be found
there, too.
The LinLog changelog page can be found here.
Related Information
- LFS, a log-structured
file system for Linux with snapshots.
-
The kfs Homepage. Cornelius
linLogFS"Kees" Cook has started a Linux Log--Structured Filesystem project before
came to live. He has been very helpful in the early design stages
of LinLogFS. Furthermore this page contains an excellent collection of links
referring to log-structured filesystem issues.
-
The ext2 Homepage.
This is the primary source of information about ext2, the standard
Linux filesystem.
-
The
Linux device file system is generally very usable and of
particular interest for the LinLogFS implementation. devfs makes is
possible to create a device file node for each filesystem snaphsot
relatively easily. [In Linux-2.6 it is deprecated and superseded by
the combination of sysfs and udev; it will go away eventually.]
-
The Linux LVM Project This is
an implementation of a logical volume manager for Linux. An LVM allows
you to create logical devices from many physical ones, resize the logical
device etc... Using a log-structured filesystem you should be able to do
things like resizing a logical device holding a filesystem without the
need to re-format.
- Drbd, a
block device which is designed to build high availability clusters.
-
The Computer Language Department
of the Vienna University of Technology
is hosting a few Linux--related projects.
Here
is an overview of them.
!!! BEWARE Link--Section is still incomplete!
Christian Czezatke, email:
czezatke@complang.tuwien.ac.at
Anton Ertl