All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Matt W. Benjamin" <matt@linuxbox.com>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: "J. Bruce Fields" <bfields@fieldses.org>,
	Christoph Anton Mitterer <calestyo@scientia.net>,
	linux-nfs@vger.kernel.org, Ric Wheeler <ricwheeler@gmail.com>,
	nfsv4 <nfsv4@ietf.org>
Subject: Re: XATTRs in NFS?
Date: Fri, 25 Oct 2013 19:52:34 -0400 (EDT)	[thread overview]
Message-ID: <1403457744.302.1382745154408.JavaMail.root@thunderbeast.private.linuxbox.com> (raw)
In-Reply-To: <739187808.295.1382744200733.JavaMail.root@thunderbeast.private.linuxbox.com>

Hi Chuck,

>From a standards perspective, could you please elaborate on how local xattrs are
"subtly incompatible" with NFSv4 named attributes?

It appears to me that the interesting issues (if any) are strictly related to possible lack of well-understood, or recommended, mappings of nfsv4 named attributes to and from whatever file attribute concept(s) exist on the client and server, not with the named attribute interface.

I did find slides in which James Morris asserts that "NFSv4 includes Named Attributes, which are based on the Solaris subfile model and incompatible with name/value schemes"
(http://www.slideshare.net/jamesmorris/adding-extended-attribute-support-to-nfs).
However, named attributes as actually specified in RFC 5661, at least, are not in fact a "fully general" subfile mechanism as found in Solaris.  The various restrictions in section 5.3 of RFC 5661 restrict implementations to a single-level namespace of attributes.  With the non-recursion restriction in place, nfsv4 named attributes appear to form a 1-to-1 mapping with Windows alternate data streams and Mac resource forks, and since nfsv4 named attribute data may be of arbitrary length, they also appear able to represent Linux or FreeBSD named attribute, should the an nfsv4 server on one of those platforms wish to do so.  (I presume that is by design.)

There seems to be a long history of mapping precursors of "posix" named attributes into alternate data streams (http://en.wikipedia.org/wiki/Extended_file_attributes#Windows_NT), and even the reverse (e.g., the ntfs3g file system driver for Linux, http://www.tuxera.com/community/ntfs-3g-advanced/extended-attributes/):

"""The extended attributes in user name space are stored on NTFS as alternate data streams whose name is the unprefixed name of the attribute, and whose contents is the value of the attribute. They can be read and modified in Windows by using the standard file access functions, with a colon and the stream name (which is the unprefixed extended attribute name) appended to the file name."""

Finally, we have existing implementation experience.  I'll leave out Solaris, and mention the Windows NFSv4.1 client.  The Windows client implements nfsv4 named attributes as a direct mapping to Windows fs alternate data streams.

Presumably, there could be other differences between a platform attribute
interface an NFSv4 named attributes, e.g., perhaps update atomicity.  It seems
though that any issues which might arise from this would also be ones the standard
could expect the client and/or server implementation to deal appropriately with.

Matt

----- "Chuck Lever" <chuck.lever@oracle.com> wrote:

> 
> NFS has to interoperate with other operating systems that may or may
> not support xattrs, or may have something that looks like an xattr,
> but really is subtly incompatible.
> 
> Therefore we must have a standard for storing and accessing xattrs
> locally (POSIX) and a standard for expressing their name and content
> on the wire (IETF NFS) before we can consider an implementation.
> 
> So we would like to see some very clear evidence that it's worth the
> effort.  Until then, Linux distributors are free to implement NFS
> xattr support outside the standard NFS protocol (like the Solaris
> NFSv3 ACL protocol) and support this themselves, perhaps as proof that
> "if you build it, they will come."
> 
> -- 
> Chuck Lever
> chuck[dot]lever[at]oracle[dot]com
> 
> 
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs"
> in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
Matt Benjamin
The Linux Box
206 South Fifth Ave. Suite 150
Ann Arbor, MI  48104

http://linuxbox.com

tel.  734-761-4689 
fax.  734-769-8938 
cel.  734-216-5309 

       reply	other threads:[~2013-10-25 23:52 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <739187808.295.1382744200733.JavaMail.root@thunderbeast.private.linuxbox.com>
2013-10-25 23:52 ` Matt W. Benjamin [this message]
2013-10-26  5:18   ` XATTRs in NFS? J. Bruce Fields
2013-10-26 11:36     ` Matt W. Benjamin
     [not found] <432349691.14.1382795633967.JavaMail.root@thunderbeast.private.linuxbox.com>
2013-10-26 14:01 ` Matt W. Benjamin
2013-10-27 12:31   ` Myklebust, Trond
2013-10-27 16:56     ` Christoph Hellwig
2013-10-27 17:50       ` Simo Sorce
2013-10-27 18:07       ` Myklebust, Trond
2013-10-27 18:30         ` Simo Sorce
2013-10-27 18:41           ` Myklebust, Trond
2013-10-27 22:20             ` Christoph Anton Mitterer
2013-10-28  0:32               ` Myklebust, Trond
2013-10-28  9:53         ` Hellwig Christoph
2013-10-27 21:22     ` Matt W. Benjamin
     [not found] <155020130.44.1382627021008.JavaMail.root@thunderbeast.private.linuxbox.com>
2013-10-24 15:05 ` Matt W. Benjamin
2013-10-24 15:08   ` Myklebust, Trond
2013-10-24 15:10     ` Matt W. Benjamin
2013-10-23 20:37 Christoph Anton Mitterer
2013-10-24  8:45 ` Myklebust, Trond
2013-10-24 14:13   ` Christoph Anton Mitterer
2013-10-24 14:32     ` Myklebust, Trond
2013-10-24 15:07       ` Simo Sorce
2013-10-24 15:11         ` Myklebust, Trond
2013-10-24 15:16           ` Simo Sorce
2013-10-24 15:23             ` Jeff Layton
2013-10-24 15:29               ` Matt W. Benjamin
2013-10-24 15:53               ` Myklebust, Trond
2013-10-24 16:10               ` Christoph Anton Mitterer
2013-10-24 15:27             ` Myklebust, Trond
2013-10-24 16:01       ` Christoph Anton Mitterer
2013-10-24 16:30         ` Myklebust, Trond
2013-10-24 17:22           ` Christoph Anton Mitterer
2013-10-25 14:08             ` J. Bruce Fields
2013-10-25 15:26               ` Ric Wheeler
2013-10-25 15:32                 ` Chuck Lever
2013-10-26 18:00                   ` Christoph Anton Mitterer
2013-10-26 13:20                 ` Myklebust, Trond
     [not found]                   ` <OF01D9818B.36018C0F-ON88257C10.00608BC0-88257C10.006139C6@LocalDomain>
2013-10-26 17:46                     ` Marc Eshel
2013-10-27 12:48                       ` Myklebust, Trond
2013-10-28  0:14                         ` Christoph Anton Mitterer
2013-10-28  0:19                           ` Myklebust, Trond
2013-10-28  0:23                             ` Christoph Anton Mitterer
2013-10-28 13:25                         ` James Morris
2013-10-28 15:41                           ` Ric Wheeler
2013-10-26 17:12               ` Christoph Anton Mitterer
2013-10-27 19:15                 ` J. Bruce Fields
2013-10-27 21:57                   ` Christoph Anton Mitterer
2013-10-28  0:17                     ` Myklebust, Trond
2013-10-28  0:27                       ` Christoph Anton Mitterer
2013-10-28  0:44                         ` Myklebust, Trond
2013-10-28  1:04                           ` Christoph Anton Mitterer
2013-10-28 15:40                           ` Ric Wheeler
2013-10-28 16:15                             ` Christoph Anton Mitterer
2013-10-28 17:49                               ` Myklebust, Trond
2013-10-28 18:00                                 ` Ric Wheeler
2013-10-28 18:08                                   ` Dr Fields James Bruce
2013-10-28 18:31                                     ` Ric Wheeler
2013-10-28 20:44                                       ` Marc Eshel
2013-10-28 20:55                                         ` [nfsv4] " Haynes, Tom
2013-10-28 21:02                                           ` J. Bruce Fields
2013-10-28 21:04                                             ` Chuck Lever
2013-10-28 21:28                                               ` Marc Eshel
     [not found]                                     ` <526EC3F7.3090601@gmail.com>
2013-10-29  0:22                                       ` Fwd: " Anand Avati
2013-10-29  0:39                                         ` Christoph Anton Mitterer
2013-10-29  0:53                                           ` Myklebust, Trond
2013-10-29  1:04                                             ` Christoph Anton Mitterer
2013-10-29  0:49                                         ` Myklebust, Trond
2013-10-29  1:00                                           ` Ric Wheeler
2013-10-29  1:26                                             ` Myklebust, Trond
2013-10-29  1:24                                               ` Anand Avati
2013-10-29  1:52                                                 ` Myklebust, Trond
2013-10-29  2:22                                                   ` Anand Avati
2013-10-29  1:39                                               ` Christoph Anton Mitterer
2013-10-29  2:28                                                 ` Myklebust, Trond
2013-10-29  4:27                                                   ` Marc Eshel
2013-10-28 21:34                                   ` Matt W. Benjamin
2013-10-28 18:15                                 ` Christoph Anton Mitterer

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=1403457744.302.1382745154408.JavaMail.root@thunderbeast.private.linuxbox.com \
    --to=matt@linuxbox.com \
    --cc=bfields@fieldses.org \
    --cc=calestyo@scientia.net \
    --cc=chuck.lever@oracle.com \
    --cc=linux-nfs@vger.kernel.org \
    --cc=nfsv4@ietf.org \
    --cc=ricwheeler@gmail.com \
    /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.