Effects of Missing ext3 Parameters

tytso at mit.edu tytso at mit.edu
Sun Nov 29 18:32:31 UTC 2009

On Sun, Nov 29, 2009 at 09:14:49AM -0800, John wrote:
> Hi,
> I have two 3TB (hardware RAID-5) ext3 filesystems and recently added
> 1TB to each. I resized each filesystem and e2fsck -f reports that both
> are fine. However, when I look at the ext3 parameters with tune2fs -l
> one seems to have some parameters that the other one doesn't. In
> particular, one has: "Reserved GDT blocks", "Filesystem created",
> "Default directory hash" and "Directory Hash Seed" while the other one
> doesn't.

The difference is caused on the version of e2fsprogs used to create
the file systems, and to a lesser extent perhaps on the version of
e2fscks you currently have installed on the systems and which you used
to resize the file systems.

You can check out the differences by looking at the "Filesystem
features" line in dumpe2fs.  It might look like this for a newer ext3
file system:

Filesystem features:      ext_attr resize_inode dir_index filetype sparse_super

Or for a brand-new ext4 file system on a Fedora 12 or Ubuntu 9.10
system it might look like this:

Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize

For some features, such as dir_index, kernels have supported it for a
long time, and we were late in turning it on by default.  In other
cases, enabling a feature may require a specific kernel version.  This
might not be a problem if the file system was originally created on
(for example) a RHEL 3 system, and you've since upgraded to RHEL 5.
So the specifics very much depend on the version of the system that
you are running on, and it's hard to give general advice that is
broadly applicable.

> Doing some Googling, I found out that "Reserved GDT blocks" is only
> important for online resizing. Since I don't do that, that's not an
> issue for me. I figure that "Filesystem created" is just a timestamp
> and is purely informational, so I think that's harmless if it's
> missing.

Yes, all of the above is accurate.

> But what about "Default directory hash" and "Directory Hash Seed"?
> What are the effects of either/both of those parameters missing? How
> can I set/change any/all of the missing parameters?

The "default directory hash" and "directory hash seed" are associated
with the dir_index feature.  This feature gives faster random access
to a very large directories in cold cache situations.  It can slow
down some workloads that do readdir/stat, however, unless the
application is smart enough to sort the returned results from readdir
by inode number before accessing the files.


					- Ted

More information about the Ext3-users mailing list