| |
Whitepaper: Red Hat's New Journaling File System: ext3
by Michael K. Johnson
<johnsonm@redhat.com>
Copyright © 2001 by Red Hat
Content
- What are the advantages of ext3?
- Why ext3?
- Why can you trust ext3?
- Tuning suggestions
Abstract
In Red Hat Linux 7.2, Red Hat provides its first officially supported journaling
file system: ext3. The ext3 file system is a set of incremental enhancements to
the robust ext2 file system that provide several advantages. This paper
summarizes some of those advantages (first in general terms and then more
specifically), explains what Red Hat has done to test the ext3 file system, and
(for advanced users only) touches on tuning.
Other journaling file systems are being written for Linux; this paper does not
address them in any way and is not intended to compare ext3 to any other
journaling file system.
Why do you want to migrate from ext2 to ext3? Four main reasons:
availability, data integrity, speed, and easy transition.
Availability
After an unclean system shutdown (unexpected power failure, system crash), each
ext2 file system cannot be mounted until its consistency has been checked by the
e2fsck program. The amount of time that the e2fsck program takes is determined
primarily by the size of the file system, and for today's relatively large (many
tens of gigabytes) file systems, this takes a long time. Also, the more files
you have on the file system, the longer the consistency check takes. File
systems that are several hundreds of gigabytes in size may take an hour or more
to check. This severely limits availability.
By contrast, ext3 does not require a file system check, even after an unclean
system shutdown, except for certain rare hardware failure cases (e.g. hard drive
failures). This is because the data is written to disk in such a way that the
file system is always consistent. The time to recover an ext3 file system after
an unclean system shutdown does not depend on the size of the file system or the
number of files; rather, it depends on the size of the "journal" used to
maintain consistency. The default journal size takes about a second to recover
(depending on the speed of the hardware).
Data Integrity
Using the ext3 file system can provide stronger guarantees about data
integrity in case of an unclean system shutdown. You choose the type and
level of protection that your data receives. You can choose to keep the
file system consistent, but allow for damage to data on the file system
in the case of unclean system shutdown; this can give a modest speed up
under some but not all circumstances. Alternatively, you can choose to
ensure that the data is consistent with the state of the file system;
this means that you will never see garbage data in recently-written
files after a crash. The safe choice, keeping the data consistent with
the state of the file system, is the default.
Speed
Despite writing some data more than once, ext3 is often faster (higher
throughput) than ext2 because ext3's journaling optimizes hard drive
head motion. You can choose from three journaling modes to optimize
speed, optionally choosing to trade off some data integrity.
- One mode, data=writeback, limits the data
integrity guarantees, allowing old data to show up in files after a crash,
for a potential increase in speed under some circumstances. (This mode,
which is the default journaling mode for most journaling file systems,
essentially provides the more limited data integrity guarantees of the ext2
file system and merely avoids the long file system check at boot
time.)
- The second mode, data=ordered (the default mode),
guarantees that the data is consistent with the file system;
recently-written files will never show up with garbage contents after a
crash.
- The last mode, data=journal, requires a larger
journal for reasonable speed in most cases and therefore takes longer to
recover in case of unclean shutdown, but is sometimes faster for certain
database operations.
The default mode is recommended for general-purpose computing needs. To change
the mode, add the data=something
option to the mount options for that file system in the
/etc/fstab file, as documented in the mount man page
(man mount).
Easy Transition
It is easy to change from ext2 to ext3 and gain the benefits of a robust
journaling file system, without reformatting. That's right, there is
no need to do a long, tedious, and error-prone backup-reformat-restore
operation in order to experience the advantages of ext3. There are
two ways to perform the transition:
- The Red Hat Linux installation program offers to transition
your file systems when you upgrade your system. All you have
to do is select one checkbox per file system.
- The tune2fs program can add a journal
to an existing ext2 file system. If the file system is already mounted
while it is being transitioned, the journal will be visible as the file
.journal in the root directory of
the file system. If the file system is not mounted, the journal will be
hidden and will not appear in the file system. Just run tune2fs -j /dev/hda1
(or whatever device holds the file system you are transitioning) and change
ext2 to ext3 on the matching lines
in /etc/fstab. If you are transitioning your root file
system, you will have to use an initrd to boot. Run the
mkinitrd program as described in the manual and
make sure that your LILO or GRUB configuration loads the initrd. (If you
fail to make that change, the system will still boot, but the root file
system will be mounted as ext2 instead of ext3 you can tell this by
looking at the output of the command cat /proc/mounts.)
More information on tune2fs can be found in the
tune2fs man page (man tune2fs).
|
|