Ask the Expert

How does a journaling filesystem work?

How does a journaling filesystem work in the major Linux distros, and what is the difference between Ext2 and Ext3?

    Requires Free Membership to View

Ext2 is the standard file system for Linux (I-node based, maintaining metadata, pointing to actual data blocks), while ext3 is a journaled file system. A journaled file system is much easier to recover then a standard one, because you do not need to use fsck anymore for recovery. Data integrity occurs because updates to files are written to logs before the actual data blocks are updated. A thread writes data to the f/s and each transaction is flagged. After a crash, updates are copied back from the journal to the filesystem and any incomplete transactions are gone. In case of a failure, a journaled file system will ensure that all inconsistencies are restored back to its prior state.

Prior to journal filesystems, one would need to run fsck to resolve file and metadata inconsistencies. Sure, fsck works, but it is too darn slow and in today's world with partitions getting larger and larger, it just doesn't scale anymore. Filesystem logging, in many ways, is very similar to database logging. We all know that databases keep logs so that if information has not yet been written to data blocks from cache, there is a way to recover. You can think of journaling file systems as providing the same function, but here at the filesystem level.

This was first published in October 2004

There are Comments. Add yours.

 
TIP: Want to include a code block in your comment? Use <pre> or <code> tags around the desired text. Ex: <code>insert code</code>

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy
Sort by: OldestNewest

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to: