Linux NFS development
 help / color / mirror / Atom feed
From: Chuck Lever <chuck.lever@oracle.com>
To: Steve Dickson <SteveD@redhat.com>
Cc: nfs@lists.sourceforge.net
Subject: Re: Status of mount.nfs
Date: Thu, 26 Jul 2007 23:02:10 -0400	[thread overview]
Message-ID: <46A96032.7080503@oracle.com> (raw)
In-Reply-To: <46A897CD.50201@RedHat.com>

[-- Attachment #1: Type: text/plain, Size: 2797 bytes --]

Steve Dickson wrote:
>> The transport protocols are probed differently for NFS and MNT: for 
>> MNT, UDP is probed first then TCP; for NFS, the opposite is true.  The 
>> mount command is supposed to try both transport protocol types both 
>> for NFS and MNT, but it appears that it is failing to try the other 
>> type if the first fails... I see this is also problematic for umount.nfs.
 >
> The idea here was to use UDP to probe for both rpc.mountd and the
> NFS server so as not to put (tcp) ports in TIMEWAIT, basically making
> them unavailable for the actual mount. That allowed many more tcp
> mounts to happen during autofs mount storms.

Right.  I don't see GETPORT using UDP as often as perhaps it should, 
though.  I need to go back and check it.

And umount.nfs always uses TCP for the mountd request.  I have a patch 
that fixes that to behave more like mount.nfs does, which I will forward 
in the next day or two.

I notice some problems if a share is mounted with TCP, but the server 
later disables TCP -- umount.nfs hiccups on that when it tries to umount 
using the same protocol as listed in /etc/mtab.  Perhaps relying on 
/etc/mtab for setting the umount protocol is unnecessary.

> Note: if the protocol was explicitly specified (i.e. proto=tcp) only
> that protocol was used during the probing and mounting. I have
> been asked to change that as well. Meaning if when proto=tcp is
> specified, they still want the udp probing to occur.

I would like to spell out exactly what behavior we want to solder into 
the community nfs-utils here, at least so I can approximate it with the 
string-ified mount implementation, but also because it seems to be quite 
heuristic and totally undocumented.  If we tune for a particular use 
case, it will break others, so we need to agree on a default that works 
for most cases.

(As part of this exercise it would also be lovely to assemble some nice 
regression test cases, but that may be too much to hope for ;-)

We have three requests that need to be made:

1.  GETPORT -- I think this should UDP all the time unless proto=tcp is 
explicitly specified;

2.  MNT -- likewise, UDP unless proto=tcp is specified or GETPORT says 
UDP is not supported;

3.  NFS -- this should be TCP all the time unless proto=udp is specified 
or GETPORT says TCP is not supported.

Even better would be to use RPCB_DUMP instead of RPCB_GETPORT.  That way 
we only need a single rpcbind call for both protocols, and can get 
transport protocol information as well, and make an "informed" choice.

Also, can we get rid of the clnt_ping()?  If not, can we document why it 
is there?  It adds two extra round trips to the whole process.  If error 
reporting is the problem, maybe we can try the pings only if the kernel 
part of the mount process fails?

[-- Attachment #2: chuck.lever.vcf --]
[-- Type: text/x-vcard, Size: 315 bytes --]

begin:vcard
fn:Chuck Lever
n:Lever;Chuck
org:Oracle Corporation;Corporate Architecture: Linux Projects Group
adr:;;1015 Granger Avenue;Ann Arbor;MI;48104;USA
email;internet:chuck dot lever at nospam oracle dot com
title:Principal Member of Staff
tel;work:+1 248 614 5091
x-mozilla-html:FALSE
version:2.1
end:vcard


[-- Attachment #3: Type: text/plain, Size: 315 bytes --]

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/

[-- Attachment #4: Type: text/plain, Size: 140 bytes --]

_______________________________________________
NFS maillist  -  NFS@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs

  reply	other threads:[~2007-07-27  3:04 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-08 19:16 Status of mount.nfs Steinar H. Gunderson
2007-07-08 23:16 ` Chuck Lever
2007-07-09  3:17 ` Neil Brown
2007-07-09  9:55   ` Steinar H. Gunderson
2007-07-09 16:45     ` Chuck Lever
2007-07-10  0:08       ` Neil Brown
2007-07-15  8:31   ` Steinar H. Gunderson
2007-07-16  1:13     ` Neil Brown
2007-07-16  9:20       ` Steinar H. Gunderson
2007-07-16 10:15         ` Neil Brown
2007-07-22 19:17           ` Steinar H. Gunderson
2007-07-22 21:58             ` Trond Myklebust
2007-07-22 22:04               ` Steinar H. Gunderson
2007-07-24 17:51                 ` Trond Myklebust
     [not found]             ` <46A52816.6050500@oracle.com>
2007-07-24 17:24               ` Steinar H. Gunderson
2007-07-24 17:50                 ` Trond Myklebust
2007-07-24 17:55                   ` Steinar H. Gunderson
2007-07-24 20:46                 ` Chuck Lever
2007-07-24 21:10                   ` Trond Myklebust
2007-07-24 21:18                     ` Chuck Lever
2007-07-25  2:08                 ` rpcbind behavior on Fedora 7 Chuck Lever
2007-07-25 19:35                 ` Status of mount.nfs Chuck Lever
2007-07-26 12:47                   ` Steve Dickson
2007-07-27  3:02                     ` Chuck Lever [this message]
2007-07-27 15:00                       ` Steve Dickson
2007-07-27 15:56                         ` Trond Myklebust
2007-07-27 16:16                           ` Steve Dickson
2007-07-27 16:27                             ` Trond Myklebust
2007-07-27 17:07                               ` Steve Dickson
2007-07-27 17:13                                 ` Trond Myklebust
2007-07-27 21:38                                   ` Chuck Lever
2007-07-28 12:51                                   ` Steve Dickson
2007-07-31 18:30                                     ` Trond Myklebust
2007-07-31 21:28                                       ` Chuck Lever
2007-08-01 10:58                                         ` Steve Dickson
2007-08-01 20:02                                           ` Chuck Lever
2007-08-01 21:12                                             ` Steve Dickson
2007-08-02 16:20                                               ` Chuck Lever
2007-08-02 18:42                                                 ` Trond Myklebust
2007-08-02 21:43                                                   ` Chuck Lever
2007-08-03 13:02                                                     ` Trond Myklebust
2007-08-02 20:46                                                 ` Steve Dickson
2007-07-27 19:37                         ` Chuck Lever
2007-07-28 13:20                           ` Steve Dickson
2007-07-28 21:00                             ` Chuck Lever
2007-07-29 19:24                               ` Steve Dickson
2007-07-30  4:14                                 ` Chuck Lever
2007-07-24 23:41     ` Steinar H. Gunderson

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=46A96032.7080503@oracle.com \
    --to=chuck.lever@oracle.com \
    --cc=SteveD@redhat.com \
    --cc=nfs@lists.sourceforge.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox