[Cluster-devel] Re: furture plans for gfs2-utils: mount.gfs2 and the metafs

David Teigland teigland at redhat.com
Fri Jun 5 16:00:38 UTC 2009


On Fri, Jun 05, 2009 at 04:32:42PM +0100, Steven Whitehouse wrote:
> Hi,
> 
> On Fri, 2009-06-05 at 09:54 -0500, David Teigland wrote:
> > On Fri, Jun 05, 2009 at 11:00:17AM +0100, Steven Whitehouse wrote:
> > > Another issue is how we mount gfs2 filesystems. I would like to try and
> > > get rid of the mount.gfs2 helper for several reasons. Currently we are
> > > using a different fstype (gfs2meta) to allow access to the GFS2 meta
> > > filesystem. In reality though, we don't mount a different filesystem
> > > type, but the same filesystem type as the "normal" filesystem, but with
> > > a different root. We have also more recently also supported the "-o
> > > meta" mount option to mount the meta root directly, but with some
> > > restrictions. Bearing in mind how easy it is to lift those restrictions
> > > (something that I've been discussing with Christoph) I'd like to raise
> > > the possibility of replacing the mount.gfs2 helper with a system which
> > > is very similar to that which we used to replace the umount.gfs2 helper
> > > for similar reasons.
> > > 
> > > So the plan would be to enhance the mount function of GFS2 so that it is
> > > possible to mount a GFS2 filesystem by allowing multiple mounts
> > > (effectively a bind mount) of that block device with or without the "-o
> > > meta" argument which is used to choose the filesystem root. The problem
> > > of course, is the mount.gfs2 will then not know whether it is the first
> > > mount of the fs, or a further mount of an existing fs unless its keeping
> > > count of mounts per block device internally.
> > 
> > I don't follow your problem description there, could you state it more
> > explicitly?  Give an example (sequence of commands), to demonstrate the
> > problem (e.g. which command fails or doesn't do the right thing).
> > 
> I have an fstab entry like this:
> /dev/sda7             /mnt/gfs0                   gfs2    noauto,rw,data=ordered,lockproto=lock_dlm,locktable=unity:myfs,quota=on,meta       1 2
> 
> and then I do:
> [root at men-an-tol gfs2-2.6-fixes.git]# mount /mnt/gfs0
> [root at men-an-tol gfs2-2.6-fixes.git]# mount -t gfs2 /mnt/gfs0 /mnt/gfs1

I don't know what kind of mount <dir1> <dir2> is, some form of bind mount?

> /sbin/mount.gfs2: bad read: Invalid argument on line 263 of file
> /builddir/build/BUILD/cluster-2.99.12/gfs2/mount/util.c

I can't find that line number in any code (version 2.99.12 appears to be from
Oct 2008!?)  But, isn't it simply complaining that you've provided two dirs as
input args?

> > I'm familiar with using uevents to mount, that's the way it originally
> > worked in 2005 (gfs Groundhog Day continues):
> > 
> > http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commit;h=2ec0da360f4eba591ecbf5e4dc8ed35b82f4142c
> > 
> Then the question arises, why was it changed?

Much cleaner and works better.  Changing it back again now would require you
to first rewrite most of gfs_controld, and then face up to all the new
problems that doing it differently would present.  It would be rearranging the
deck chairs on the titanic; if you're dieing to do major work on this, just
toss out the whole thing and design a much simpler system that doesn't require
so much complex user/kernel interaction (see ocfs2).

Dave




More information about the Cluster-devel mailing list