The ext3 and ReiserFS file systems introduced journaling capabilities to Linux systems. Journaling provides for fast and effective recovery in case of disk crashes and is used instead of using e2fsck or fsck. With journaling, a log is kept of all file system actions, which are placed in a journal file. In the event of a crash, Linux needs to read and replay only the journal file to restore the system to its previous (stable) state. Files that were in the process of writing to the disk can be restored to their original state. Journaling also avoids lengthy fsck checks on reboots that occur when your system suddenly loses power or freezes and has to be restarted physically. Instead of using fsck to check each file and directory manually, your system just reads its journal files to restore the file system.
Keeping a journal entails more work for a file system than any nonjournal method. Though all journaling systems maintain a file system's directory structure (the metadata), they offer various levels of file data recovery. Maintaining file data recovery information can be time-consuming, slowing down the file system's response time. At the same time, journaling systems make more efficient use of the file system, providing a faster response time than the nonjournal ext2 file system.
You can use other kind of journaling file systems on Linux. These include ReiserFS, JFS, and XFS. ReiserFS provides a completely reworked file system structure based on journaling (namesys.com). Most distributions also provide support for ReiserFS file systems. JFS is the IBM version of a journaling file system, designed for use on servers providing high throughput such as e-business enterprise servers (http://jfs.sourceforge.net). It is freely distributed under the GNU public license. XFS is another high-performance journaling system developed by Silicon Graphics (http://oss.sgi.com/projects/xfs). XFS is compatible with RAID and NFS file systems.
Was this article helpful?