[KLUG Members] Journaling FS interviews

Bryan-TheBS-Smith members@kalamazoolinux.org
Tue, 28 Aug 2001 19:03:51 -0400


Jamie McCarthy wrote:
> Re the topic of which journaling filesystem to use, I
> found this good interview linked on NewsForge:
> http://www.osnews.com/story.php?news_id=69
> People from JFS, ReiserFS, and XFS speak their minds...

First off, I have never used IBM's JFS.  It still seems to be
missing a lot of standard UNIX compatibility (kNFSd, quotas,
etc...).  I'll leave it at that, because that is as far as my
knowledge goes.

NAMESYS' REISERFS ...

It's nice to see Hans acknowledging that the other JFS' have their
approaches and he has his.  Unfortunately, I still run into far too
many ReiserFS "absolutists" out there, but fewer these days.  Seeing
Hans explain it for them has helped.  He has been much kinder to
RedHat's Tweedie and Ext3 as of late, despite his earlier 'tude for
RedHat not supporting ReiserFS.

I have tested ReiserFS on and off over the years (since late 1999)
for kNFSd (UNIX file server) compatibility.  The NFS list is still
littered with issues.  Plus there are quota issues.  As is such with
such an advanced filesystem design, one that has to remove various
UNIX compatibility.  This causes issues.  This keeps it from being
on production UNIX file servers where NFS and quota are key.  That's
RedHat's market, and that's why ReiserFS isn't supported (not
because Tweedie works for them).

Which is why I still wonder why ReiserFS was included in the stock
kernel as of 2.4.1.  And even today, it still requires additional
patches for various compatibility -- outside of the stock kernel
releases.  SuSE is rumored to be Linus' favorite distro and they
have put forth a lot of ReiserFS development, so this may be why.

TWEEDIE'S EXT3 ...

After playing with ReiserFS, I discovered Ext3.  Ext3 started out as
simple "double buffering" for full data journaling.  It was quick
and easy for Stephen Tweedie, long-time creator/maintainer of Ext2
(and a RedHat employee) to do.  It worked excellent and I have a
server that has been up for more than 15 months with 0 data loss. 
It also didn't have kNFSd and other issues thatn ReiserFS did.

It even recovered perfectly from a physical disk error, dropping
down to a full Ext2 fsck -- which tells me there's something to be
said about Ext2's excellent reliability/recoverability.  Some of us
like this "trusted" filesystem, and with Ext3 being based on Ext2, I
trust it.  I mean, who cares about journaling if it has a journal
mis-read (seen NTFS do that one too many times).

Under kernel 2.4, full data journaling is not as well tested as meta
data journaling.  So I would only use full data on 2.2.  The 2.4
kernel required a lot of Ext2/Ext3 rewriting because of the virtual
memory (VM) subsystem changes.  As such, Ext3 development
"semi-stalled" while Tweedie was tasked with that.  But now the
Ext2/Ext3 codebases are very close (full quota support should be
anyday now), and I suspect that Ext3 will become standard in the
kernel soon.

SGI'S XFS ...

I love XFS.  I've always been a closet fan of SGI Irix, but XFS just
rocks.  As of right now, more things are supported in XFS than any
other OS.  In fact, various XFS capabilies are being used as a
"template" for the virtual filesystem (VFS) in kernel 2.5,
especially POSIX-compliant access control lists (ACLs) and DMAPI
protocol for storage subsystems.

Probably the two biggest reasons to use XFS now are for A) official,
stock Quota support (no support for JFS, ReiserFS yet, only beta
Ext3) and B) ACLs, including Samba 2.2 support.  That later note
makes XFS the _premier_ file server platform, whether it is NFS
(where XFS excels are large block/file sizes), or Samba.  They also
have a full suite of your "standard" utilities, including "xfsdump"
for backups.  And I would trust "fsck.xfs/xfs_repair" any day over
"fsck.reiserfs", but that is just me.

Probably the main reason why XFS isn't in the stock kernel is that
it really requires a lot of approaches that are in the kernel 2.5
development branch.  Plus they have kind of a "stop-gap" solution in
the "pagebuf" module which only allows you to have a block size the
same as the page size of the CPU's MMU (memory management unit). 
This means 4KB for Intel, 8KB for Alpha, etc...  Not good for
cross-platform systems (then again, some other filesystems presented
here are still Intel-only).

XFS is also much easier to install than IBM's JFS (and Ext3, at
least until RedHat 7.2 comes out), being that SGI releases both RPMs
and a modified RedHat installer CD, in addition to tarballs.  Their
CVS tree is also "ready-to-go" and I have built kernels that worked
perfectly from it.  I actually trust XFS more than I do Ext2 on
kernel 2.4, but that's just me (although I'll admit Tweedie has
actually got the Ext2/Ext3 code to a very stable state since 2.4.6
IMHO).

-- TheBS

-- 
Bryan "TheBS" Smith   mailto:b.j.smith@ieee.org    chat:thebs413
Engineer  AbsoluteValue Systems, Inc.  http://www.linux-wlan.org
President    SmithConcepts, Inc.    http://www.SmithConcepts.com