[Linux-cluster] [GFS2] gfs2 utils now available (experimental)

Robert S Peterson rpeterso at redhat.com
Tue Jun 6 18:51:19 UTC 2006


Hi Folks,

For anyone who wants to start doing preliminary playing with GFS2:

This morning, I finished my first version of the user-land tools for the
new GFS2 filesystem and made them available in Red Hat's public CVS
repository.  Feel free to review them and/or try them out.
(See warning at the bottom).

The tools are as follows (with some comments):

1. libgfs2

This is a new library that the other tools rely upon and link against.
In GFS1, each tool had its own way of doing things, and that was prone
to mistakes.  Now the tools all use a standard library of gfs2
functions, and more problems can be fixed in one place rather than many.

2. gfs2_convert

This tool allows you to convert a gfs1 filesystem to gfs2 format.
There are some minor differences between the gfs1 and gfs2 on-disk
format that allows gfs2 to have better performance.  So we wrote a
tool to convert from one to the other.  This tool also requires
new library libgfs.a, which is in the gfs branch.

3. gfs2_fsck

GFS2 filesystem checker.  Enough said.  Still needs some work.

4. mkfs.gfs2

GFS2 mkfs program.  This will be incorporating udev's "libvolume_id.a"
library for determining if a filesystem exists on the device, and what
type.  In GFS1, we used to do this in a home-grown fashion.  Now we're
going to start using a standard library.  Unfortunately, libvolume_id.a
doesn't exist on many systems yet, but that is planned, and we're
all set to use it when it's there.  In the meantime, we've got it
stubbed in with some #ifdefs around.

5. gfs2_edit

This is an internal filesystem debugging and editing tool we use here.
It can be used to hex-edit the filesystem or print gfs2 data structures.
It's a very dangerous tool in the wrong hands, but it has its uses.
We've thrown out "gfs_debug" and incorporated the functionality into
gfs2_edit.  I'm planning to expand its capabilities in the future,
to aid in data recovery for badly damaged filesystems that can't be
mounted.  For example, I'm planning to add the capability to copy files
out of an unmounted fs using the tool.

We're still working on gfs2_jadd and gfs2_grow, and of course, the GFS2
kernel modules are being incorporated into the upstream kernels.

To get the whole cluster suite source code, with the gfs2 directory, 
use CVS.  Do something like this:

cvs -d :ext:sources.redhat.com:/cvs/cluster co -r HEAD cluster

On the web at:

http://sources.redhat.com/cgi-bin/cvsweb.cgi/cluster/gfs2/?cvsroot=cluster 

NOTE: This is for the user tools only.  The GFS2 kernel source is lying
in a public git tree on kernel.org, and should also be considered
experimental:

git clone rsync://rsync.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6.git gfs2-2.6
(Be forewarned: This is very big and takes a long time).

WARNING:

These tools are still experimental and I'm sure there are still
problems, which we're still working on.  So don't trust valuable data
to it yet.  After all, we are still in development mode.  Some might
think I'm premature to release these tools before they're rock-solid,
but it's also valid that the open source community should get a look 
at them as soon as it became feasible in the spirit of release 
early/often.  Maybe you can ferret out mistakes, problems or issues 
I've overlooked.  Questions and comments are welcome.

Once again, Red Hat puts its money where its mouth is regarding open
source and the open source community.  Enjoy.

Regards,

Bob Peterson
Red Hat Cluster Suite





More information about the Linux-cluster mailing list