| | |
Summary: 40
Case Study: Linux ext3 and Journaling
In this note, we will study the Linux ext3 file system. The ext3 FS
adds journaling (also known as write-ahead logging) to the file
system in order to recover more quickly from operating system
crashes or power losses. We will discuss why this is important
and understand the basic machinery of journaling, including a
few different flavors that ext3 implements.
40.1 An Example
To start things off, though, let's look at an example. Let's say
we are trying to append a block to an existing file. For simplic-
ity, let's assume we are using a simplified version Linux ext2
[T98], which is an intellectual descendent of the FFS file system
[MJLF84].
Before we do this write, the file is on disk in the form of an
inode, one (or more) existing data blocks, and some bitmaps
that mark the inode and data blocks as in-use. This might look
something like this (on a tiny file system):
i-node | data | inodes | data blocks
bitmap | bitmap | |
|