All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] nfs(5) updates
@ 2008-09-23 16:16 Chuck Lever
       [not found] ` <20080923161322.5119.20872.stgit-meopP2rzCrTwdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
  0 siblings, 1 reply; 15+ messages in thread
From: Chuck Lever @ 2008-09-23 16:16 UTC (permalink / raw)
  To: steved; +Cc: linux-nfs

Hi Steve-

Here are a couple of updates to nfs(5) that relate to the use of the
NFS client's transport protocol mount options.  They attempt to
address recent concerns about how these options are documented.

Please consider these for the next release of nfs-utils.

---

Chuck Lever (2):
      nfs(5): Clarify behavior of the mountproto= and proto= options
      nfs(5): Replace the term "netid" in mount option descriptions


 utils/mount/nfs.man |   93 ++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 87 insertions(+), 6 deletions(-)

-- 
Chuck Lever

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 1/2] nfs(5): Replace the term "netid" in mount option descriptions
       [not found] ` <20080923161322.5119.20872.stgit-meopP2rzCrTwdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
@ 2008-09-23 16:16   ` Chuck Lever
  2008-09-23 16:16   ` [PATCH 2/2] nfs(5): Clarify behavior of the mountproto= and proto= options Chuck Lever
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 15+ messages in thread
From: Chuck Lever @ 2008-09-23 16:16 UTC (permalink / raw)
  To: steved; +Cc: linux-nfs

Mike Eisler noted that the use of the term "netid" in the descriptions
of the "proto=" option is not appropriate, since Linux does not allow
"udp6" or "tcp6".

Remove the term "netid" from nfs(5).

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---

 utils/mount/nfs.man |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/utils/mount/nfs.man b/utils/mount/nfs.man
index 0fc5079..b1037a8 100644
--- a/utils/mount/nfs.man
+++ b/utils/mount/nfs.man
@@ -411,10 +411,10 @@ for mounting the
 .B nfs
 file system type.
 .TP 1.5i
-.BI proto= netid
+.BI proto= prot
 The transport protocol used by the NFS client
 to transmit requests to the NFS server for this mount point.
-.I netid
+.I prot
 can be either
 .B udp
 or
@@ -489,11 +489,11 @@ or the server's mountd service is not available on the advertised port.
 This option can be used when mounting an NFS server
 through a firewall that blocks the rpcbind protocol.
 .TP 1.5i
-.BI mountproto= netid
+.BI mountproto= prot
 The transport protocol used by the NFS client
 to transmit requests to the NFS server's mountd service when performing
 this mount request, and when later unmounting this mount point.
-.I netid
+.I prot
 can be either
 .B udp
 or
@@ -638,10 +638,10 @@ for mounting the
 .B nfs4
 file system type.
 .TP 1.5i
-.BI proto= netid
+.BI proto= prot
 The transport protocol used by the NFS client
 to transmit requests to the NFS server for this mount point.
-.I netid
+.I prot
 can be either
 .B udp
 or


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 2/2] nfs(5): Clarify behavior of the mountproto= and proto= options
       [not found] ` <20080923161322.5119.20872.stgit-meopP2rzCrTwdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
  2008-09-23 16:16   ` [PATCH 1/2] nfs(5): Replace the term "netid" in mount option descriptions Chuck Lever
@ 2008-09-23 16:16   ` Chuck Lever
       [not found]   ` <20080923161636.5119.54434.stgit-meopP2rzCrTwdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
       [not found]   ` <20080923161641.5119.37034.stgit-meopP2rzCrTwdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
  3 siblings, 0 replies; 15+ messages in thread
From: Chuck Lever @ 2008-09-23 16:16 UTC (permalink / raw)
  To: steved; +Cc: linux-nfs

Document the interaction between the mountproto= and the proto= mount
options in a new subsection of nfs(5).

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---

 utils/mount/nfs.man |   81 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 81 insertions(+), 0 deletions(-)

diff --git a/utils/mount/nfs.man b/utils/mount/nfs.man
index b1037a8..48f2153 100644
--- a/utils/mount/nfs.man
+++ b/utils/mount/nfs.man
@@ -831,6 +831,87 @@ and
 .B wsize
 can safely be allowed to default to the largest values supported by  
 both client and server, independent of the network's MTU size.
+.SS "Interaction between the proto and mountproto options"
+The Linux NFS client can use a different transport protocol for
+contacting an NFS server's rpcbind service, its mountd service,
+its NLM service, and its NFS service.
+The exact transport protocols employed by the Linux NFS client for
+each mount point depends on the settings of the transport protocol
+mount options, which include
+.BR proto ,
+.BR mountproto ,
+.BR udp ", and " tcp .
+.P
+The NSM protocol uses the UDP transport
+no matter what transport specific options are specified.
+The NFSACL protocol shares the same RPC transport as the main NFS
+service.
+.P
+If no transport protocol options are specified, the Linux NFS client
+uses UDP to contact the server's mountd service, and TCP to
+contact its NLM and NFS services by default.
+.P
+UDP is a good choice for contacting the mountd server since most
+common NFS servers support UDP for mountd, UDP generates less network
+traffic, and UDP does not leave extra ports in TIME_WAIT after the
+mountd request is complete.
+However, a reliable stream transport such as TCP is a good choice for
+NFS and NLM because these must handle large requests and must be
+immune to network problems that might cause RPC requests to be lost.
+.P
+If the server does not support these transports for these services, the
+.BR mount (8)
+command attempts to discover what the server supports, and then retries
+the mount request once using the discovered transport protocols.
+If the server does not advertise any transport supported by the client
+or is misconfigured, the mount request fails.
+If the
+.B bg
+option is in effect, the mount command backgrounds itself and continues
+to attempt the specified mount request.
+.P
+When the
+.B proto
+option, the
+.B udp
+option, or the
+.B tcp
+option is specified but the
+.B mountproto
+option is not, the specified transport is used to contact
+both the server's mountd service and for the NLM and NFS services.
+.P
+If the
+.B mountproto
+option is specified but none of the
+.BR proto ", " udp " or " tcp
+options are specified, then the specified transport is used for the
+initial mountd request, but the mount command attempts to discover
+what the server supports for the NFS protocol, preferring TCP if
+both transports are supported.
+.P
+If both the
+.BR mountproto " and " proto
+(or
+.BR udp " or " tcp )
+options are specified, then the transport specified by the
+.B mountproto
+option is used for the initial mountd request, and the transport
+specified by the
+.B proto
+option (or the
+.BR udp " or " tcp " options)"
+is used for NFS, no matter what order these options appear.
+No automatic service discovery is performed if these options are
+specified.
+.P
+If any of the
+.BR proto ", " udp ", " tcp ", "
+or
+.B mountproto
+options are specified more than once on the same mount command line,
+then the value of the rightmost instance of each of these options
+takes effect.
 .SH "DATA AND METADATA COHERENCE"
 Some modern cluster file systems provide
 perfect cache coherence among their clients.


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/2] nfs(5): Replace the term "netid" in mount option descriptions
       [not found]   ` <20080923161636.5119.54434.stgit-meopP2rzCrTwdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
@ 2008-09-23 16:30     ` Talpey, Thomas
       [not found]       ` <RTPCLUEXC1-PRDC8wSA000000ca-rtwIt2gI0FxT+ZUat5FNkAK/GNPrWCqfQQ4Iyu8u01E@public.gmane.org>
  2008-09-23 16:56     ` Trond Myklebust
  2008-09-29 11:37     ` Steve Dickson
  2 siblings, 1 reply; 15+ messages in thread
From: Talpey, Thomas @ 2008-09-23 16:30 UTC (permalink / raw)
  To: Chuck Lever; +Cc: steved, linux-nfs

To be pedantic, identifiying this field as a "prot" may be just as
misleading. For example "rdma" (which isn't mentioned btw ;-) )
can employ tcp - iWARP adapters do this.

I think instead that the proto= field simply names the "transport"
rather than "netid" or "prot". Also, I think "prot" is much too easily
mistaken for "port".

So I suggest changing the example to "proto=transport", and deleting
the word "protocol" in the text, simply leaving "the transport used by
NFS to transmit..."

Tom.

At 12:16 PM 9/23/2008, Chuck Lever wrote:
>Mike Eisler noted that the use of the term "netid" in the descriptions
>of the "proto=" option is not appropriate, since Linux does not allow
>"udp6" or "tcp6".
>
>Remove the term "netid" from nfs(5).
>
>Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
>---
>
> utils/mount/nfs.man |   12 ++++++------
> 1 files changed, 6 insertions(+), 6 deletions(-)
>
>diff --git a/utils/mount/nfs.man b/utils/mount/nfs.man
>index 0fc5079..b1037a8 100644
>--- a/utils/mount/nfs.man
>+++ b/utils/mount/nfs.man
>@@ -411,10 +411,10 @@ for mounting the
> .B nfs
> file system type.
> .TP 1.5i
>-.BI proto= netid
>+.BI proto= prot
> The transport protocol used by the NFS client
> to transmit requests to the NFS server for this mount point.
>-.I netid
>+.I prot
> can be either
> .B udp
> or
>@@ -489,11 +489,11 @@ or the server's mountd service is not available 
>on the advertised port.
> This option can be used when mounting an NFS server
> through a firewall that blocks the rpcbind protocol.
> .TP 1.5i
>-.BI mountproto= netid
>+.BI mountproto= prot
> The transport protocol used by the NFS client
> to transmit requests to the NFS server's mountd service when performing
> this mount request, and when later unmounting this mount point.
>-.I netid
>+.I prot
> can be either
> .B udp
> or
>@@ -638,10 +638,10 @@ for mounting the
> .B nfs4
> file system type.
> .TP 1.5i
>-.BI proto= netid
>+.BI proto= prot
> The transport protocol used by the NFS client
> to transmit requests to the NFS server for this mount point.
>-.I netid
>+.I prot
> can be either
> .B udp
> or
>
>--
>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


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/2] nfs(5): Clarify behavior of the mountproto= and proto= options
       [not found]   ` <20080923161641.5119.37034.stgit-meopP2rzCrTwdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
@ 2008-09-23 16:32     ` Talpey, Thomas
       [not found]       ` <RTPCLUEXC1-PRD77bie000000cb-rtwIt2gI0FxT+ZUat5FNkAK/GNPrWCqfQQ4Iyu8u01E@public.gmane.org>
  2008-09-23 16:41     ` Talpey, Thomas
  2008-09-29 11:38     ` Steve Dickson
  2 siblings, 1 reply; 15+ messages in thread
From: Talpey, Thomas @ 2008-09-23 16:32 UTC (permalink / raw)
  To: Chuck Lever; +Cc: steved, linux-nfs

You might also mention that none of this description is applicable
to NFSv4, which doesn't use any of the protocols controlled by
the mountproto option.

Tom.

At 12:16 PM 9/23/2008, Chuck Lever wrote:
>Document the interaction between the mountproto= and the proto= mount
>options in a new subsection of nfs(5).
>
>Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
>---
>
> utils/mount/nfs.man |   81 +++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 81 insertions(+), 0 deletions(-)
>
>diff --git a/utils/mount/nfs.man b/utils/mount/nfs.man
>index b1037a8..48f2153 100644
>--- a/utils/mount/nfs.man
>+++ b/utils/mount/nfs.man
>@@ -831,6 +831,87 @@ and
> .B wsize
> can safely be allowed to default to the largest values supported by  
> both client and server, independent of the network's MTU size.
>+.SS "Interaction between the proto and mountproto options"
>+The Linux NFS client can use a different transport protocol for
>+contacting an NFS server's rpcbind service, its mountd service,
>+its NLM service, and its NFS service.
>+The exact transport protocols employed by the Linux NFS client for
>+each mount point depends on the settings of the transport protocol
>+mount options, which include
>+.BR proto ,
>+.BR mountproto ,
>+.BR udp ", and " tcp .
>+.P
>+The NSM protocol uses the UDP transport
>+no matter what transport specific options are specified.
>+The NFSACL protocol shares the same RPC transport as the main NFS
>+service.
>+.P
>+If no transport protocol options are specified, the Linux NFS client
>+uses UDP to contact the server's mountd service, and TCP to
>+contact its NLM and NFS services by default.
>+.P
>+UDP is a good choice for contacting the mountd server since most
>+common NFS servers support UDP for mountd, UDP generates less network
>+traffic, and UDP does not leave extra ports in TIME_WAIT after the
>+mountd request is complete.
>+However, a reliable stream transport such as TCP is a good choice for
>+NFS and NLM because these must handle large requests and must be
>+immune to network problems that might cause RPC requests to be lost.
>+.P
>+If the server does not support these transports for these services, the
>+.BR mount (8)
>+command attempts to discover what the server supports, and then retries
>+the mount request once using the discovered transport protocols.
>+If the server does not advertise any transport supported by the client
>+or is misconfigured, the mount request fails.
>+If the
>+.B bg
>+option is in effect, the mount command backgrounds itself and continues
>+to attempt the specified mount request.
>+.P
>+When the
>+.B proto
>+option, the
>+.B udp
>+option, or the
>+.B tcp
>+option is specified but the
>+.B mountproto
>+option is not, the specified transport is used to contact
>+both the server's mountd service and for the NLM and NFS services.
>+.P
>+If the
>+.B mountproto
>+option is specified but none of the
>+.BR proto ", " udp " or " tcp
>+options are specified, then the specified transport is used for the
>+initial mountd request, but the mount command attempts to discover
>+what the server supports for the NFS protocol, preferring TCP if
>+both transports are supported.
>+.P
>+If both the
>+.BR mountproto " and " proto
>+(or
>+.BR udp " or " tcp )
>+options are specified, then the transport specified by the
>+.B mountproto
>+option is used for the initial mountd request, and the transport
>+specified by the
>+.B proto
>+option (or the
>+.BR udp " or " tcp " options)"
>+is used for NFS, no matter what order these options appear.
>+No automatic service discovery is performed if these options are
>+specified.
>+.P
>+If any of the
>+.BR proto ", " udp ", " tcp ", "
>+or
>+.B mountproto
>+options are specified more than once on the same mount command line,
>+then the value of the rightmost instance of each of these options
>+takes effect.
> .SH "DATA AND METADATA COHERENCE"
> Some modern cluster file systems provide
> perfect cache coherence among their clients.
>
>--
>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


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/2] nfs(5): Clarify behavior of the mountproto= and proto= options
       [not found]   ` <20080923161641.5119.37034.stgit-meopP2rzCrTwdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
  2008-09-23 16:32     ` [PATCH 2/2] nfs(5): Clarify behavior of the mountproto= and proto= options Talpey, Thomas
@ 2008-09-23 16:41     ` Talpey, Thomas
       [not found]       ` <RTPCLUEXC1-PRDSzbAU000000cd-rtwIt2gI0FxT+ZUat5FNkAK/GNPrWCqfQQ4Iyu8u01E@public.gmane.org>
  2008-09-29 11:38     ` Steve Dickson
  2 siblings, 1 reply; 15+ messages in thread
From: Talpey, Thomas @ 2008-09-23 16:41 UTC (permalink / raw)
  To: Chuck Lever; +Cc: steved, linux-nfs

One other comment...

At 12:16 PM 9/23/2008, Chuck Lever wrote:
>Document the interaction between the mountproto= and the proto= mount
>options in a new subsection of nfs(5).
>
>Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
>---
>
> utils/mount/nfs.man |   81 +++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 81 insertions(+), 0 deletions(-)
>
>diff --git a/utils/mount/nfs.man b/utils/mount/nfs.man
>index b1037a8..48f2153 100644
>--- a/utils/mount/nfs.man
>+++ b/utils/mount/nfs.man
>@@ -831,6 +831,87 @@ and
> .B wsize
> can safely be allowed to default to the largest values supported by  
> both client and server, independent of the network's MTU size.
>+.SS "Interaction between the proto and mountproto options"
>+The Linux NFS client can use a different transport protocol for
>+contacting an NFS server's rpcbind service, its mountd service,
>+its NLM service, and its NFS service.
>+The exact transport protocols employed by the Linux NFS client for
>+each mount point depends on the settings of the transport protocol
>+mount options, which include
>+.BR proto ,
>+.BR mountproto ,
>+.BR udp ", and " tcp .
>+.P
>+The NSM protocol uses the UDP transport
>+no matter what transport specific options are specified.

This actually isn't true - in fact the client NSM by default listens on
both UDP and TCP, as can be seen with rpcinfo -p.

What is true is that the vast majority of NFS servers call back on UDP,
and if this fails, there is no indication at the client whatsoever.

So the text should perhaps say "NFS servers typically choose UDP for the
NSM protocol; the client in any case accepts both UDP and TCP."

Tom.


>+The NFSACL protocol shares the same RPC transport as the main NFS
>+service.
>+.P
>+If no transport protocol options are specified, the Linux NFS client
>+uses UDP to contact the server's mountd service, and TCP to
>+contact its NLM and NFS services by default.
>+.P
>+UDP is a good choice for contacting the mountd server since most
>+common NFS servers support UDP for mountd, UDP generates less network
>+traffic, and UDP does not leave extra ports in TIME_WAIT after the
>+mountd request is complete.
>+However, a reliable stream transport such as TCP is a good choice for
>+NFS and NLM because these must handle large requests and must be
>+immune to network problems that might cause RPC requests to be lost.
>+.P
>+If the server does not support these transports for these services, the
>+.BR mount (8)
>+command attempts to discover what the server supports, and then retries
>+the mount request once using the discovered transport protocols.
>+If the server does not advertise any transport supported by the client
>+or is misconfigured, the mount request fails.
>+If the
>+.B bg
>+option is in effect, the mount command backgrounds itself and continues
>+to attempt the specified mount request.
>+.P
>+When the
>+.B proto
>+option, the
>+.B udp
>+option, or the
>+.B tcp
>+option is specified but the
>+.B mountproto
>+option is not, the specified transport is used to contact
>+both the server's mountd service and for the NLM and NFS services.
>+.P
>+If the
>+.B mountproto
>+option is specified but none of the
>+.BR proto ", " udp " or " tcp
>+options are specified, then the specified transport is used for the
>+initial mountd request, but the mount command attempts to discover
>+what the server supports for the NFS protocol, preferring TCP if
>+both transports are supported.
>+.P
>+If both the
>+.BR mountproto " and " proto
>+(or
>+.BR udp " or " tcp )
>+options are specified, then the transport specified by the
>+.B mountproto
>+option is used for the initial mountd request, and the transport
>+specified by the
>+.B proto
>+option (or the
>+.BR udp " or " tcp " options)"
>+is used for NFS, no matter what order these options appear.
>+No automatic service discovery is performed if these options are
>+specified.
>+.P
>+If any of the
>+.BR proto ", " udp ", " tcp ", "
>+or
>+.B mountproto
>+options are specified more than once on the same mount command line,
>+then the value of the rightmost instance of each of these options
>+takes effect.
> .SH "DATA AND METADATA COHERENCE"
> Some modern cluster file systems provide
> perfect cache coherence among their clients.
>
>--
>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


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/2] nfs(5): Replace the term "netid" in mount option descriptions
       [not found]       ` <RTPCLUEXC1-PRDC8wSA000000ca-rtwIt2gI0FxT+ZUat5FNkAK/GNPrWCqfQQ4Iyu8u01E@public.gmane.org>
@ 2008-09-23 16:46         ` Chuck Lever
  0 siblings, 0 replies; 15+ messages in thread
From: Chuck Lever @ 2008-09-23 16:46 UTC (permalink / raw)
  To: Talpey, Thomas; +Cc: steved, linux-nfs

On Tue, Sep 23, 2008 at 12:30 PM, Talpey, Thomas
<Thomas.Talpey@netapp.com> wrote:
> To be pedantic, identifiying this field as a "prot" may be just as
> misleading. For example "rdma" (which isn't mentioned btw ;-) )
> can employ tcp - iWARP adapters do this.

The Solaris mount_nfs man page puts it this way:

  proto=netid | rdma

Language for rdma support is yet to be added to nfs(5).

> I think instead that the proto= field simply names the "transport"
> rather than "netid" or "prot". Also, I think "prot" is much too easily
> mistaken for "port".

Was looking for a short word to use in the option's synopsis instead
of "netid" or "n".  How about "name" instead of "prot" ?

> So I suggest changing the example to "proto=transport", and deleting
> the word "protocol" in the text, simply leaving "the transport used by
> NFS to transmit..."

I don't have any objection to that.  Anyone else have an opinion?

> At 12:16 PM 9/23/2008, Chuck Lever wrote:
>>Mike Eisler noted that the use of the term "netid" in the descriptions
>>of the "proto=" option is not appropriate, since Linux does not allow
>>"udp6" or "tcp6".
>>
>>Remove the term "netid" from nfs(5).
>>
>>Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
>>---
>>
>> utils/mount/nfs.man |   12 ++++++------
>> 1 files changed, 6 insertions(+), 6 deletions(-)
>>
>>diff --git a/utils/mount/nfs.man b/utils/mount/nfs.man
>>index 0fc5079..b1037a8 100644
>>--- a/utils/mount/nfs.man
>>+++ b/utils/mount/nfs.man
>>@@ -411,10 +411,10 @@ for mounting the
>> .B nfs
>> file system type.
>> .TP 1.5i
>>-.BI proto= netid
>>+.BI proto= prot
>> The transport protocol used by the NFS client
>> to transmit requests to the NFS server for this mount point.
>>-.I netid
>>+.I prot
>> can be either
>> .B udp
>> or
>>@@ -489,11 +489,11 @@ or the server's mountd service is not available
>>on the advertised port.
>> This option can be used when mounting an NFS server
>> through a firewall that blocks the rpcbind protocol.
>> .TP 1.5i
>>-.BI mountproto= netid
>>+.BI mountproto= prot
>> The transport protocol used by the NFS client
>> to transmit requests to the NFS server's mountd service when performing
>> this mount request, and when later unmounting this mount point.
>>-.I netid
>>+.I prot
>> can be either
>> .B udp
>> or
>>@@ -638,10 +638,10 @@ for mounting the
>> .B nfs4
>> file system type.
>> .TP 1.5i
>>-.BI proto= netid
>>+.BI proto= prot
>> The transport protocol used by the NFS client
>> to transmit requests to the NFS server for this mount point.
>>-.I netid
>>+.I prot
>> can be either
>> .B udp
>> or
>>
>>--
>>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
>
> --
> 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
>



-- 
"If you simplify your English, you are freed from the worst follies of
orthodoxy."
 -- George Orwell

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/2] nfs(5): Clarify behavior of the mountproto= and proto= options
       [not found]       ` <RTPCLUEXC1-PRD77bie000000cb-rtwIt2gI0FxT+ZUat5FNkAK/GNPrWCqfQQ4Iyu8u01E@public.gmane.org>
@ 2008-09-23 16:47         ` Chuck Lever
  0 siblings, 0 replies; 15+ messages in thread
From: Chuck Lever @ 2008-09-23 16:47 UTC (permalink / raw)
  To: Talpey, Thomas; +Cc: steved, linux-nfs

On Tue, Sep 23, 2008 at 12:32 PM, Talpey, Thomas
<Thomas.Talpey@netapp.com> wrote:
> You might also mention that none of this description is applicable
> to NFSv4, which doesn't use any of the protocols controlled by
> the mountproto option.

Good point, that should be made more clear.

> At 12:16 PM 9/23/2008, Chuck Lever wrote:
>>Document the interaction between the mountproto= and the proto= mount
>>options in a new subsection of nfs(5).
>>
>>Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
>>---
>>
>> utils/mount/nfs.man |   81 +++++++++++++++++++++++++++++++++++++++++++++++++++
>> 1 files changed, 81 insertions(+), 0 deletions(-)
>>
>>diff --git a/utils/mount/nfs.man b/utils/mount/nfs.man
>>index b1037a8..48f2153 100644
>>--- a/utils/mount/nfs.man
>>+++ b/utils/mount/nfs.man
>>@@ -831,6 +831,87 @@ and
>> .B wsize
>> can safely be allowed to default to the largest values supported by
>> both client and server, independent of the network's MTU size.
>>+.SS "Interaction between the proto and mountproto options"
>>+The Linux NFS client can use a different transport protocol for
>>+contacting an NFS server's rpcbind service, its mountd service,
>>+its NLM service, and its NFS service.
>>+The exact transport protocols employed by the Linux NFS client for
>>+each mount point depends on the settings of the transport protocol
>>+mount options, which include
>>+.BR proto ,
>>+.BR mountproto ,
>>+.BR udp ", and " tcp .
>>+.P
>>+The NSM protocol uses the UDP transport
>>+no matter what transport specific options are specified.
>>+The NFSACL protocol shares the same RPC transport as the main NFS
>>+service.
>>+.P
>>+If no transport protocol options are specified, the Linux NFS client
>>+uses UDP to contact the server's mountd service, and TCP to
>>+contact its NLM and NFS services by default.
>>+.P
>>+UDP is a good choice for contacting the mountd server since most
>>+common NFS servers support UDP for mountd, UDP generates less network
>>+traffic, and UDP does not leave extra ports in TIME_WAIT after the
>>+mountd request is complete.
>>+However, a reliable stream transport such as TCP is a good choice for
>>+NFS and NLM because these must handle large requests and must be
>>+immune to network problems that might cause RPC requests to be lost.
>>+.P
>>+If the server does not support these transports for these services, the
>>+.BR mount (8)
>>+command attempts to discover what the server supports, and then retries
>>+the mount request once using the discovered transport protocols.
>>+If the server does not advertise any transport supported by the client
>>+or is misconfigured, the mount request fails.
>>+If the
>>+.B bg
>>+option is in effect, the mount command backgrounds itself and continues
>>+to attempt the specified mount request.
>>+.P
>>+When the
>>+.B proto
>>+option, the
>>+.B udp
>>+option, or the
>>+.B tcp
>>+option is specified but the
>>+.B mountproto
>>+option is not, the specified transport is used to contact
>>+both the server's mountd service and for the NLM and NFS services.
>>+.P
>>+If the
>>+.B mountproto
>>+option is specified but none of the
>>+.BR proto ", " udp " or " tcp
>>+options are specified, then the specified transport is used for the
>>+initial mountd request, but the mount command attempts to discover
>>+what the server supports for the NFS protocol, preferring TCP if
>>+both transports are supported.
>>+.P
>>+If both the
>>+.BR mountproto " and " proto
>>+(or
>>+.BR udp " or " tcp )
>>+options are specified, then the transport specified by the
>>+.B mountproto
>>+option is used for the initial mountd request, and the transport
>>+specified by the
>>+.B proto
>>+option (or the
>>+.BR udp " or " tcp " options)"
>>+is used for NFS, no matter what order these options appear.
>>+No automatic service discovery is performed if these options are
>>+specified.
>>+.P
>>+If any of the
>>+.BR proto ", " udp ", " tcp ", "
>>+or
>>+.B mountproto
>>+options are specified more than once on the same mount command line,
>>+then the value of the rightmost instance of each of these options
>>+takes effect.
>> .SH "DATA AND METADATA COHERENCE"
>> Some modern cluster file systems provide
>> perfect cache coherence among their clients.
>>
>>--
>>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
>
> --
> 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
>



-- 
"If you simplify your English, you are freed from the worst follies of
orthodoxy."
 -- George Orwell

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/2] nfs(5): Clarify behavior of the mountproto= and proto= options
       [not found]       ` <RTPCLUEXC1-PRDSzbAU000000cd-rtwIt2gI0FxT+ZUat5FNkAK/GNPrWCqfQQ4Iyu8u01E@public.gmane.org>
@ 2008-09-23 16:55         ` Chuck Lever
  0 siblings, 0 replies; 15+ messages in thread
From: Chuck Lever @ 2008-09-23 16:55 UTC (permalink / raw)
  To: Talpey, Thomas; +Cc: steved, linux-nfs

On Tue, Sep 23, 2008 at 12:41 PM, Talpey, Thomas
<Thomas.Talpey@netapp.com> wrote:
> One other comment...
>
> At 12:16 PM 9/23/2008, Chuck Lever wrote:
>>Document the interaction between the mountproto= and the proto= mount
>>options in a new subsection of nfs(5).
>>
>>Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
>>---
>>
>> utils/mount/nfs.man |   81 +++++++++++++++++++++++++++++++++++++++++++++++++++
>> 1 files changed, 81 insertions(+), 0 deletions(-)
>>
>>diff --git a/utils/mount/nfs.man b/utils/mount/nfs.man
>>index b1037a8..48f2153 100644
>>--- a/utils/mount/nfs.man
>>+++ b/utils/mount/nfs.man
>>@@ -831,6 +831,87 @@ and
>> .B wsize
>> can safely be allowed to default to the largest values supported by
>> both client and server, independent of the network's MTU size.
>>+.SS "Interaction between the proto and mountproto options"
>>+The Linux NFS client can use a different transport protocol for
>>+contacting an NFS server's rpcbind service, its mountd service,
>>+its NLM service, and its NFS service.
>>+The exact transport protocols employed by the Linux NFS client for
>>+each mount point depends on the settings of the transport protocol
>>+mount options, which include
>>+.BR proto ,
>>+.BR mountproto ,
>>+.BR udp ", and " tcp .
>>+.P
>>+The NSM protocol uses the UDP transport
>>+no matter what transport specific options are specified.
>
> This actually isn't true - in fact the client NSM by default listens on
> both UDP and TCP, as can be seen with rpcinfo -p.
>
> What is true is that the vast majority of NFS servers call back on UDP,
> and if this fails, there is no indication at the client whatsoever.
>
> So the text should perhaps say "NFS servers typically choose UDP for the
> NSM protocol; the client in any case accepts both UDP and TCP."

Granted that this text should be tuned a bit, but...

Even though rpc.statd listens on TCP as well, Linux sm-notify requests
go out only on UDP; and there is no mount option to change any of this
behavior.

NSM is a bit of a challenge to describe because both ends act as a
client and a server.

--
Chuck Lever

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/2] nfs(5): Replace the term "netid" in mount option descriptions
       [not found]   ` <20080923161636.5119.54434.stgit-meopP2rzCrTwdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
  2008-09-23 16:30     ` [PATCH 1/2] nfs(5): Replace the term "netid" in mount option descriptions Talpey, Thomas
@ 2008-09-23 16:56     ` Trond Myklebust
  2008-09-23 17:11       ` Chuck Lever
       [not found]       ` <76bd70e30809231011g5ed0cd11o6ccc06ab85f1a96c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  2008-09-29 11:37     ` Steve Dickson
  2 siblings, 2 replies; 15+ messages in thread
From: Trond Myklebust @ 2008-09-23 16:56 UTC (permalink / raw)
  To: Chuck Lever; +Cc: steved, linux-nfs

On Tue, 2008-09-23 at 12:16 -0400, Chuck Lever wrote:
> Mike Eisler noted that the use of the term "netid" in the descriptions
> of the "proto=" option is not appropriate, since Linux does not allow
> "udp6" or "tcp6".

Why is it too late to add udp6/tcp6?

Cheers
  Trond


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/2] nfs(5): Replace the term "netid" in mount option descriptions
  2008-09-23 16:56     ` Trond Myklebust
@ 2008-09-23 17:11       ` Chuck Lever
       [not found]       ` <76bd70e30809231011g5ed0cd11o6ccc06ab85f1a96c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  1 sibling, 0 replies; 15+ messages in thread
From: Chuck Lever @ 2008-09-23 17:11 UTC (permalink / raw)
  To: Trond Myklebust; +Cc: steved, linux-nfs

On Tue, Sep 23, 2008 at 12:56 PM, Trond Myklebust
<trond.myklebust@fys.uio.no> wrote:
> On Tue, 2008-09-23 at 12:16 -0400, Chuck Lever wrote:
>> Mike Eisler noted that the use of the term "netid" in the descriptions
>> of the "proto=" option is not appropriate, since Linux does not allow
>> "udp6" or "tcp6".
>
> Why is it too late to add udp6/tcp6?

It's not.  We could certainly introduce this as part of IPv6 support.
But I'm not sure we want to add it.  No-one has asked for it, except
for Mike.  I don't find it especially practical to have to change
"udp" to "udp6" on clients if the server is changed from IPv4 to IPv6
addressing.

But it *is* too late for 2.6.28 at this point.  We would need to
retrofit the NFS mount option parser, and do something clever for the
kernel's rpcbind client when it is stuck using only portmap.  Plus,
the RDMA client-side transport plays fast and loose with the xprt's
prot field so it can get TCP for NLM traffic.  I tried pulling that
chain once before, and it's going to take some careful thought.

Then all of this would need lots of testing.

So we wouldn't see this feature until next March at the earliest.
Right now, the documentation doesn't reflect the behavior of the
*existing* code base, which treats these as transports, not netids.

-- 
Chuck Lever

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/2] nfs(5): Replace the term "netid" in mount option descriptions
       [not found]         ` <76bd70e30809231011g5ed0cd11o6ccc06ab85f1a96c-JsoAwUIsXouhRSP0FMvGiw@public.gmane.org m>
@ 2008-09-23 19:04           ` Talpey, Thomas
       [not found]             ` <RTPCLUEXC1-PRDFRaqb000000d0-rtwIt2gI0FxT+ZUat5FNkAK/GNPrWCqfQQ4Iyu8u01E@public.gmane.org>
  0 siblings, 1 reply; 15+ messages in thread
From: Talpey, Thomas @ 2008-09-23 19:04 UTC (permalink / raw)
  To: chucklever; +Cc: Trond Myklebust, steved, linux-nfs

At 01:11 PM 9/23/2008, Chuck Lever wrote:
>kernel's rpcbind client when it is stuck using only portmap.  Plus,
>the RDMA client-side transport plays fast and loose with the xprt's
>prot field so it can get TCP for NLM traffic.  I tried pulling that
>chain once before, and it's going to take some careful thought.

I have no issue fixing that, if there's a better way. The only goal
of the chain-pulling is to redirect the side protocols to UDP/TCP,
much like the "mountproto=" option does. NLM, as you mention,
is the tricky one, since it literally reaches into the NFS clnt struct
and "borrows" the transport identifier by value.

Tom.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/2] nfs(5): Replace the term "netid" in mount option descriptions
       [not found]             ` <RTPCLUEXC1-PRDFRaqb000000d0-rtwIt2gI0FxT+ZUat5FNkAK/GNPrWCqfQQ4Iyu8u01E@public.gmane.org>
@ 2008-09-23 19:55               ` Chuck Lever
  0 siblings, 0 replies; 15+ messages in thread
From: Chuck Lever @ 2008-09-23 19:55 UTC (permalink / raw)
  To: Talpey, Thomas; +Cc: Trond Myklebust, steved, linux-nfs

On Tue, Sep 23, 2008 at 3:04 PM, Talpey, Thomas
<Thomas.Talpey@netapp.com> wrote:
> At 01:11 PM 9/23/2008, Chuck Lever wrote:
>>kernel's rpcbind client when it is stuck using only portmap.  Plus,
>>the RDMA client-side transport plays fast and loose with the xprt's
>>prot field so it can get TCP for NLM traffic.  I tried pulling that
>>chain once before, and it's going to take some careful thought.
>
> I have no issue fixing that, if there's a better way. The only goal
> of the chain-pulling is to redirect the side protocols to UDP/TCP,
> much like the "mountproto=" option does. NLM, as you mention,
> is the tricky one, since it literally reaches into the NFS clnt struct
> and "borrows" the transport identifier by value.

Yup, that's the sticky part.

--
Chuck Lever

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/2] nfs(5): Replace the term "netid" in mount option descriptions
       [not found]   ` <20080923161636.5119.54434.stgit-meopP2rzCrTwdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
  2008-09-23 16:30     ` [PATCH 1/2] nfs(5): Replace the term "netid" in mount option descriptions Talpey, Thomas
  2008-09-23 16:56     ` Trond Myklebust
@ 2008-09-29 11:37     ` Steve Dickson
  2 siblings, 0 replies; 15+ messages in thread
From: Steve Dickson @ 2008-09-29 11:37 UTC (permalink / raw)
  To: Chuck Lever; +Cc: linux-nfs



Chuck Lever wrote:
> Mike Eisler noted that the use of the term "netid" in the descriptions
> of the "proto=" option is not appropriate, since Linux does not allow
> "udp6" or "tcp6".
> 
> Remove the term "netid" from nfs(5).
Committed... using the word "transport" instead of "prot" as suggested by Tom.

steved.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/2] nfs(5): Clarify behavior of the mountproto= and proto= options
       [not found]   ` <20080923161641.5119.37034.stgit-meopP2rzCrTwdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
  2008-09-23 16:32     ` [PATCH 2/2] nfs(5): Clarify behavior of the mountproto= and proto= options Talpey, Thomas
  2008-09-23 16:41     ` Talpey, Thomas
@ 2008-09-29 11:38     ` Steve Dickson
  2 siblings, 0 replies; 15+ messages in thread
From: Steve Dickson @ 2008-09-29 11:38 UTC (permalink / raw)
  To: Chuck Lever; +Cc: linux-nfs

Is this ready to go??

steved.

Chuck Lever wrote:
> Document the interaction between the mountproto= and the proto= mount
> options in a new subsection of nfs(5).
> 
> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
> ---
> 
>  utils/mount/nfs.man |   81 +++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 81 insertions(+), 0 deletions(-)
> 
> diff --git a/utils/mount/nfs.man b/utils/mount/nfs.man
> index b1037a8..48f2153 100644
> --- a/utils/mount/nfs.man
> +++ b/utils/mount/nfs.man
> @@ -831,6 +831,87 @@ and
>  .B wsize
>  can safely be allowed to default to the largest values supported by  
>  both client and server, independent of the network's MTU size.
> +.SS "Interaction between the proto and mountproto options"
> +The Linux NFS client can use a different transport protocol for
> +contacting an NFS server's rpcbind service, its mountd service,
> +its NLM service, and its NFS service.
> +The exact transport protocols employed by the Linux NFS client for
> +each mount point depends on the settings of the transport protocol
> +mount options, which include
> +.BR proto ,
> +.BR mountproto ,
> +.BR udp ", and " tcp .
> +.P
> +The NSM protocol uses the UDP transport
> +no matter what transport specific options are specified.
> +The NFSACL protocol shares the same RPC transport as the main NFS
> +service.
> +.P
> +If no transport protocol options are specified, the Linux NFS client
> +uses UDP to contact the server's mountd service, and TCP to
> +contact its NLM and NFS services by default.
> +.P
> +UDP is a good choice for contacting the mountd server since most
> +common NFS servers support UDP for mountd, UDP generates less network
> +traffic, and UDP does not leave extra ports in TIME_WAIT after the
> +mountd request is complete.
> +However, a reliable stream transport such as TCP is a good choice for
> +NFS and NLM because these must handle large requests and must be
> +immune to network problems that might cause RPC requests to be lost.
> +.P
> +If the server does not support these transports for these services, the
> +.BR mount (8)
> +command attempts to discover what the server supports, and then retries
> +the mount request once using the discovered transport protocols.
> +If the server does not advertise any transport supported by the client
> +or is misconfigured, the mount request fails.
> +If the
> +.B bg
> +option is in effect, the mount command backgrounds itself and continues
> +to attempt the specified mount request.
> +.P
> +When the
> +.B proto
> +option, the
> +.B udp
> +option, or the
> +.B tcp
> +option is specified but the
> +.B mountproto
> +option is not, the specified transport is used to contact
> +both the server's mountd service and for the NLM and NFS services.
> +.P
> +If the
> +.B mountproto
> +option is specified but none of the
> +.BR proto ", " udp " or " tcp
> +options are specified, then the specified transport is used for the
> +initial mountd request, but the mount command attempts to discover
> +what the server supports for the NFS protocol, preferring TCP if
> +both transports are supported.
> +.P
> +If both the
> +.BR mountproto " and " proto
> +(or
> +.BR udp " or " tcp )
> +options are specified, then the transport specified by the
> +.B mountproto
> +option is used for the initial mountd request, and the transport
> +specified by the
> +.B proto
> +option (or the
> +.BR udp " or " tcp " options)"
> +is used for NFS, no matter what order these options appear.
> +No automatic service discovery is performed if these options are
> +specified.
> +.P
> +If any of the
> +.BR proto ", " udp ", " tcp ", "
> +or
> +.B mountproto
> +options are specified more than once on the same mount command line,
> +then the value of the rightmost instance of each of these options
> +takes effect.
>  .SH "DATA AND METADATA COHERENCE"
>  Some modern cluster file systems provide
>  perfect cache coherence among their clients.
> 

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2008-09-29 11:41 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-23 16:16 [PATCH 0/2] nfs(5) updates Chuck Lever
     [not found] ` <20080923161322.5119.20872.stgit-meopP2rzCrTwdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
2008-09-23 16:16   ` [PATCH 1/2] nfs(5): Replace the term "netid" in mount option descriptions Chuck Lever
2008-09-23 16:16   ` [PATCH 2/2] nfs(5): Clarify behavior of the mountproto= and proto= options Chuck Lever
     [not found]   ` <20080923161636.5119.54434.stgit-meopP2rzCrTwdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
2008-09-23 16:30     ` [PATCH 1/2] nfs(5): Replace the term "netid" in mount option descriptions Talpey, Thomas
     [not found]       ` <RTPCLUEXC1-PRDC8wSA000000ca-rtwIt2gI0FxT+ZUat5FNkAK/GNPrWCqfQQ4Iyu8u01E@public.gmane.org>
2008-09-23 16:46         ` Chuck Lever
2008-09-23 16:56     ` Trond Myklebust
2008-09-23 17:11       ` Chuck Lever
     [not found]       ` <76bd70e30809231011g5ed0cd11o6ccc06ab85f1a96c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
     [not found]         ` <76bd70e30809231011g5ed0cd11o6ccc06ab85f1a96c-JsoAwUIsXouhRSP0FMvGiw@public.gmane.org m>
2008-09-23 19:04           ` Talpey, Thomas
     [not found]             ` <RTPCLUEXC1-PRDFRaqb000000d0-rtwIt2gI0FxT+ZUat5FNkAK/GNPrWCqfQQ4Iyu8u01E@public.gmane.org>
2008-09-23 19:55               ` Chuck Lever
2008-09-29 11:37     ` Steve Dickson
     [not found]   ` <20080923161641.5119.37034.stgit-meopP2rzCrTwdl/1UfZZQIVfYA8g3rJ/@public.gmane.org>
2008-09-23 16:32     ` [PATCH 2/2] nfs(5): Clarify behavior of the mountproto= and proto= options Talpey, Thomas
     [not found]       ` <RTPCLUEXC1-PRD77bie000000cb-rtwIt2gI0FxT+ZUat5FNkAK/GNPrWCqfQQ4Iyu8u01E@public.gmane.org>
2008-09-23 16:47         ` Chuck Lever
2008-09-23 16:41     ` Talpey, Thomas
     [not found]       ` <RTPCLUEXC1-PRDSzbAU000000cd-rtwIt2gI0FxT+ZUat5FNkAK/GNPrWCqfQQ4Iyu8u01E@public.gmane.org>
2008-09-23 16:55         ` Chuck Lever
2008-09-29 11:38     ` Steve Dickson

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.