[ Thanks to An Anonymous Reader for
this link. ]
“There’s something both exciting and frightening about
the announcement of a new Linux file system. It’s exciting because
file systems represent new territory for interesting advances. It’s
frightening because a file system in the early stages tends to be
experimental and not quite ready for prime time. But sometimes
these announcements are about investments in the future of Linux,
and a recent announcement for 2.6.30-rc1 indicates a very
interesting future, indeed. In the past few quarters, Linux has had
three major file system announcements. Late 2008 brought in the
B-Tree File System (Btrfs), and more recently, two other unique
file systems were introduced: NiLFS(2) and exofs.“File system background
“Let’s start with a quick introduction to these non-traditional
file system approaches, and then explore the specifics of NiLFS(2)
and exofs.“Log-structured file systems
“Log-structured file systems have a rich history in modern
computing systems. The first log-structured file system was
proposed by John Ousterhout and Fred Douglis in 1988 and
subsequently implemented in the Sprite operating system in 1992. As
the name implies, a log-structured file system views the file
system as a circular log in which new data and file system metadata
are written to the head of the log, and free space is reclaimed
from the tail (see Figure 1). This means that data may appear two
or more times in the log, but as the log is chronologically
advancing, the most recent data is viewed as the active data.
Having multiple copies of data in the log introduces some
interesting benefits, which will be covered in more detail
below.”