All of lore.kernel.org
 help / color / mirror / Atom feed
From: Brad Boyer <flar@allandria.com>
To: Andreas Dilger <adilger@sun.com>
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>,
	hch@infradead.org, viro@zeniv.linux.org.uk,
	linux-fsdevel@vger.kernel.org
Subject: Re: [RFC PATCH 2/3] vfs: Add open by file handle support
Date: Sun, 21 Feb 2010 18:46:56 -0800	[thread overview]
Message-ID: <20100222024656.GA7280@cynthia.pants.nu> (raw)
In-Reply-To: <FB88A140-C2EB-4E62-9769-D2524C874C8C@sun.com>

On Sun, Feb 21, 2010 at 11:42:45AM -0700, Andreas Dilger wrote:
> On 2010-02-20, at 13:13, Brad Boyer wrote:
> >On Sat, Feb 20, 2010 at 11:58:34AM -0700, Andreas Dilger wrote:
> >>Without the handle identifying the filesystem in some way this is
> >>mostly useless.  Encoding the device number would be a simple (though
> >>non-robust) way to do this, a better way would be with the filesystem
> >>UUID and adding an in-kernel UUID->sb mapping function (which is
> >>useful for other things as well).
> >
> >I certainly have one use in mind for having a static sb->ID mapping
> >inside the FS driver.
> 
> One use I've had for this in the past, then never managed to finish  
> the work is for in-kernel identification of multi-device filesystems.   
> For example, ext3/4 can have an external journal, and currently the  
> journal device is identified by the UUID but we also have to add a  
> "hint" for the kernel for finding it by devno.  This can fail on  
> occasion when devices are renamed.

I'm trying to understand your expectations here. Do you mean that you
want to be able to search for a block device object in the kernel by
UUID?  I'm not saying it wouldn't be useful to have that, but I do
want a feel for what would be involved. Wouldn't it be easier to have
a custom mount.ext3 and mount.ext4 that use libblkid to find the
journal device?

> >It seems like a more reliable way to do NFS
> >serving of anything more complicated than a standard disk-based
> >local filesystem. In particular, it would be nice to be able to
> >serve some synthetic or network/cluster based FS over NFS and have
> >the file handles be consistent across multiple machines for failover
> >purposes. Currently specifying the fsid in the exports table is the
> >only logical way to force this, but that's extra manual work.
> 
> Yes, we looked at this in the past for Lustre as well, and while we  
> had proposed a patch for the NFSd code to extract the FSID from the  
> filesystem, it was turned down because "setting the FSID via a  
> userspace file is the right thing to do".  I have enough on my plate  
> not to wage an uphill battle for this.

It's good to see that someone else already thought of this and that
I'm not crazy for wanting it.

> I don't necessarily agree, because that means administering yet  
> another config parameter outside the filesystem on all of the  
> servers.  I don't mind allowing userspace to override the fs UUID- 
> based FSID, but why not let this be used by default instead of the  
> devno (which is increasingly dynamic these days).
> 
> Maybe with more clustered filesystems in the kernel these days this  
> idea can gain more traction.

It does seem like a logical use case to have a cluster FS supply its
own FSID, since it probably knows better than the kernel how to actually
specify uniqueness. The only complexity is making sure it's possible
to tell the difference between that and one the kernel generates.

Having to set the FSID in the exports table on a large cluster for
a large number of exports is a pain. This is doubly true if any
of it was supposed to be automated in terms of adding new exports.
I know some people working on a NAS-type box with built-in failover
based on Linux and they ran into this problem, and they have to
generate fsid values in their management scripts because of this.

> >I haven't started writing any code to do this, but I have looked
> >at the current NFS FH code and it seems like it should be reasonable
> >to add a new set of methods to allow another FS specific field.
> 
> First would be a method to extract the FSID/UUID from the filesystem.   
> That is immediately useful for even local configs.

Seems like a simple thing to add, but what would be a simple usage that
would be likely to be considered useful? A new feature without any
users is not going to be welcomed.

> >The hardest part seems to be holding the size down to the old NFS v2
> >protocol limits.
> 
> 
> Would it not be possible to encode the FSID/UUID only into NFSv3/v4  
> handles, and leave the NFSv2 handles without this information?  I  
> imagine the usage of NFSv2 is growing ever smaller, and there isn't a  
> requirement to add this extra field there.

It's certainly an option, but it would be nice to support the older
protocol as well if it's possible.

	Brad Boyer
	flar@allandria.com


  parent reply	other threads:[~2010-02-22  2:47 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-19  5:42 [RFC PATCH] Generic name to handle and open by handle syscalls Aneesh Kumar K.V
2010-02-19  5:42 ` [RFC PATCH 1/3] vfs: Add name to file handle conversion support Aneesh Kumar K.V
2010-02-20 18:15   ` Andreas Dilger
2010-02-22  5:15     ` Aneesh Kumar K. V
2010-02-19  5:42 ` [RFC PATCH 2/3] vfs: Add open by file handle support Aneesh Kumar K.V
2010-02-20 18:58   ` Andreas Dilger
2010-02-20 20:13     ` Brad Boyer
     [not found]       ` <FB88A140-C2EB-4E62-9769-D2524C874C8C@sun.com>
2010-02-22  2:46         ` Brad Boyer [this message]
2010-02-26 19:21         ` J. Bruce Fields
2010-02-28 17:55           ` Andreas Dilger
2010-02-28 19:00             ` J. Bruce Fields
2010-03-01 18:25               ` Oleg Drokin
2010-03-01 21:25                 ` J. Bruce Fields
2010-02-22  6:13     ` Aneesh Kumar K. V
2010-02-22  6:31       ` Dave Chinner
2010-02-26 19:24     ` J. Bruce Fields
2010-02-19  5:42 ` [RFC PATCH 3/3] x86: Add new syscalls for x86_32 Aneesh Kumar K.V
2010-02-19  9:34 ` [RFC PATCH] Generic name to handle and open by handle syscalls Andreas Dilger
2010-02-19  9:49   ` Aneesh Kumar K. V
2010-02-20 19:01     ` Andreas Dilger
2010-02-22  6:27       ` Aneesh Kumar K. V
2010-02-22 23:06 ` Jonathan Corbet
2010-02-23  0:56   ` James Morris
2010-02-23  8:58   ` Aneesh Kumar K. V
2010-02-23 19:46     ` Jonathan Corbet
2010-02-24  0:49     ` Dave Chinner
2010-02-25  4:53     ` Serge E. Hallyn
2010-02-25 14:30       ` Jonathan Corbet
2010-02-25 15:19         ` Serge E. Hallyn
2010-02-25 17:55           ` Aneesh Kumar K. V
2010-02-25 18:11             ` Serge E. Hallyn
2010-02-25 18:20               ` Aneesh Kumar K. V
2010-02-25 19:05                 ` Serge E. Hallyn
2010-02-26  9:12                   ` Andreas Dilger
2010-02-26 19:56                     ` Serge E. Hallyn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100222024656.GA7280@cynthia.pants.nu \
    --to=flar@allandria.com \
    --cc=adilger@sun.com \
    --cc=aneesh.kumar@linux.vnet.ibm.com \
    --cc=hch@infradead.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.