A journaling file system is a type of file system that keeps journalled metadata to avoid filesystem errors and corruption.
Problems with traditional file systems
In the process of writing data to the hard disk, a file system must write out metadata, which is information about the data on the disk, for example, the location of the data or the names of the files. If, while the file system is writing this metadata, the hard disk is interrupted by, for example, a loss of power, the metadata is not completely written out and the filesystem may be in an inconsistent state, in which the description of the data does not fully match the data itself.
One approach to fixing this problem is to run a program that scans the entire hard disk when the system is restarted, to fix an inconsistencies. Such programs include fsck on Unix and Unix-like systems, scandisk on Microsoft Windows systems, and Disk First Aid on Apple Macintosh systems. Unfortunately this method has two problems. First, rescanning the entire disk is very time consuming. Second, there is the possiblity that the scanning program will encounter errors that it cannot fix and that data will be lost.
The answer: Journaling file systems
Journaling file systems approach this problem by writing out a special file called a "journal", which keeps track of the transactions to the disk. If power is suddenly interrupted, the hard disk can reread the journal and fix any inconsistencies that occurred. This is much quicker than a scan of the hard disk, and the journal usually also contains enough information to prevent loss of data.
Journaling file systems are related to Logging file systems.
Journaling file systems
Supported by the Linux operating system:
Supported by the Microsoft Windows NT and later operating systems:
- NTFS (Linux also has read-only support for NTFS)
Supported by the Apple Macintosh operating systems:
- HFS+ (Journaling will be added in the soon-to-be-released Mac OS X 10.2.2.)
See also:
- WAFL file system