[KLUG Members] New BSware-PRO this week with XFS 1.0.1

Bryan J. Smith members@kalamazoolinux.org
Sun, 22 Jul 2001 10:41:05 -0400


Jeff Palmer wrote:
> this brings up a question... it may have been discused before
> but.. how do XFS and ReiserFS compare... (both facts and
> opinions)

Many are just opinions at this point.

You must understand that no current filesystem is "the best."  They
all serve different niches.  E.g.:

Ext3 -- evolutionary, "minimum change" approache
XFS -- port from Irix, maximum compatibility and features
JFS -- port from OS/2-AIX (although missing AIX features)
ReiserFS -- ultra-revolutionary, the "next generation" in UNIX
filesystems

I like older versions of Ext3 (not the newer ones, see below) for my
older, RedHat 6.2/kernel 2.2.x systems.  VALinux did as well, using
them for their NAS appliances and their kernels in their
distributions.  For 2.4.x, I have a lot of UNIX clients that require
NFS as well as Windows clients that use Samba -- ReiserFS has issues
with NFS and even with the "workarounds," performance suffers -- so
I use XFS.  XFS has the most working features today, even more than
Ext2 in some cases (see below).

ReiserFS *IS* "the future."  Unfortunately, its non-traditional
design causes havoc with NFS services and quota support.  So its
great for workstations, appliances and non-file server duties IMHO. 
But for file servers, I wouldn't touch it right now -- but that's my
opinion (after various testing over the last 18 months).  And, IMHO,
they see to be working on its extensibility features more than its
recovery ones (although it's better than it was just a year ago).

> performance,

This is one where you can _really_ "play with the numbers."  A lot
of "benchmarks" you'll see out there use Namesys/ReiserFS' benchmark
which uses _very_small_files_ (nothing bigger than 100KB).  ReiserFS
makes a killing on that benchmark.  But if you start hitting large
files, especially huge ones, XFS was designed for A/V and media
serving.  The popular bonnie benchmark for NFS services is also
where XFS does very well.

So ReiserFS is great for small files.  It also doesn't use a
traditional inode-meta data (i.e. file attributes, information,
permissions, etc...) structure, but puts them all in a
B-Tree/database at a centralized location.  This also means file
deletion is very fast.  So ReiserFS rules at various applications,
especially the /tmp and /var filesystems, Squid (the web cache),
etc...  And Namesys has a grant from DARPA to add various features
to ReiserFS 4.  ReiserFS 3 is standard in kernel 2.4.1+, although
various patches exist for compatibility issues (some Linus doesn't
accept for the stock kernel, like the kNFSd workarounds which are
still unreliable for non-Linux clients IMHO).  ReiserFS is built
into the installer of distros like Mandrake and SuSE.  The NFS and
quota issues keep me from using it.  The various "toasted volumes"
I've seen result on other systems also keeps me at bay.

Again, SGI XFS is great a large files.  It can create files almost
as fast as ReiserFS as well.  It has various caching mechanisms that
Hans has said they will adopt for ReiserFS 4.  Unfortunately, XFS is
a slouch at file deletion, which makes it less than ideal for /tmp,
/var and Squid cache filesystems.  Lot's of random writes also slow
its performance.  The "big bonus" with XFS is its traditional inode
layout and UNIX compatibility.  It also hosts a wealth of features,
including full, production POSIX-compliant access control lists
(ACLs -- better than even the Ext2 effort) with full Samba
2.2-native support. official quota support (which Ext3 still has
issues with), and various, advanced features of a traditional UNIX
filesystem (the most according to Linux Gazette #55).  I feel it is
more "stable" for MD/LVM software RAID-0/1 whereas I still see
ReiserFS having issues even under kernel 2.4.  XFS is also released
in various ways, tarballs, RPMs, CVS tree, etc... including a fully
bootable CD ISO image that you use to install it with RedHat 7.1
(you boot it instead of RedHat CD #1).  Since I'm a RedHat-bigot,
XFS is an easy install, it sports 100% NFS and quota compatibility,
has advanced features like full ACLs for Samba 2.2 and has been
working flawlessly for me since February.

I don't know much about IBM's JFS, but it seems to lack a lot of
features and compatibility compared to XFS at this point.  And it's
not as easy to install as ReiserFS (Mandrake, SuSE, others) or XFS
(if you like RedHat).

> reliablity, stability of the kernel

Again, more opinions.  If you want the "ultimate" in "evolution"
from Ext2, then Ext3 is what you want.  Ext3 was "reliable/stable"
in full-data journaling almost the day it came out (I've been
running Ext3 0.0.2f in kernel 2.2.16 for over 18 months, 0 data loss
and it was even able to recover from physical disk errors!).  And it
drops down to a full Ext2 fsck if anything is wrong with the
journal.  Unfortunately, Steve Tweedie, the maintainer of Ext2/Ext3,
is screwing around with both performance and meta-data journaling in
kernel 2.4.  IMHO, if I wanted performance and meta-data journaling,
I would go with another JFS.  As such, you cannot even say Ext2 is
"reliable/stable" in kernel 2.4.x yet!

Which brings me to my next point, the 2.4.x kernel itself.  Software
RAID-5 is a "no-no" at this point in many people's eyes, with an
filesystem.  There are also continuing data loss issues with even
Ext2 under kernel 2.4.x.  Many of us who use XFS feel that their CVS
kernel is much better than the stock kernel and even some distro
kernels.  They keep it in sync with the latest, stock kernel release
then mix in select patches (especially various NFS/VM ones).  For
those, like me, that trust RedHat's well tested and patched kernels
(hence why the "latest" is only 2.4.3), XFS's "official releases"
(like 1.0.1) are based on RedHat's kernel RPMs.  And given the
application of XFS -- large volume, heavy utilization, combo NFS-SMB
file servers, the focus and development is on and for file serving.

> driver... etc.?? just wondering really...

JFS' are about more than just a "driver" -- we're talking
"core-level" integration.

There is so much written on the subject, I won't even start here. 
But you forgot one category ... "features."

Here's "my list":

Ext2 -- no JFS, NFS clean, full quota, "beta" ACL
Ext3 -- meta/full JFS, NFS clean, "beta" quota, "alpha" ACL
ReiserFS -- meta JFS, requires NFS workarounds, "alpha" quota, no
ACL yet (v4?), very extensible/non-traditioanl features
XFS -- meta JFS, NFS clean, full quota, POSIX ACL
JFS ** -- meta JFS, NFS okay, no quota, no ACL

[ ** From the JFS pages -- never used myself ]

-- TheBS

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