From: Tom Talpey <tmtalpey@gmail.com>
To: Aaron Wiebe <epiphani@gmail.com>, Chuck Lever <chuck.lever@oracle.com>
Cc: Leonardo Chiquitto <leonardo.lists@gmail.com>,
Frank Steiner
<fsteiner-mail1-G0GEQqhI7DhYiKXMg8wJIg@public.gmane.org>,
nfs@lists.sourceforge.net
Subject: Re: [NFS] nfs-over-tcp still needs udp ports? (SLES 11)
Date: Thu, 07 May 2009 13:08:33 -0400 [thread overview]
Message-ID: <4a031594.1c1d640a.6d45.5fed@mx.google.com> (raw)
In-Reply-To: <C8BD2645-6EFC-4669-9074-B57C08B2EF70@oracle.com>
At 12:42 PM 5/7/2009, Chuck Lever wrote:
>On May 7, 2009, at 12:08 PM, Aaron Wiebe wrote:
>> On Thu, May 7, 2009 at 11:35 AM, Tom Talpey <tmtalpey@gmail.com>
>> wrote:
>>>
>>> There is one small caveat to using mountproto=tcp through firewalls:
>>> while the mount will succeed, there are some side protocol exchanges
>>> which may not.
>>>
>>> In particular, if you do NLM file locking, there is a server
>>> callback (NLM
>>> "granted") which the server may choose to issue via UDP. If this
>>> callback
>>> is not seen by the client due to firewall blocking, there may be a
>>> 30-second
>>> pause before a client retry unblocks the caller.
>>>
>>> Also, the NSM (status monitor) exchanges are often performed via UDP.
>>> Again, if you are using NLM and the server reboots, the client may
>>> not
>>> become aware of this promptly, and lock reclaim will be affected.
>>
>> Sorry for the slight threadjack, but a question along those lines...
>>
>> My understanding is that currently portmap will not bind any UDP NLM
>> listeners unless there are UDP mounts on the machine.
>
>It's not portmap... lockd decides which listeners to start.
Also, there is an important distinction between NLM and NLM *callbacks*.
The NLM client follows the NFS protocol selection in many client kernels,
i.e. if you mount with proto=tcp, you get both NFS and NLM over TCP.
The issue is NLM callbacks, which are used only in specific cases where
clients take blocking locks, which actually need to block due to being already
held by another client. The server replies over NLM (e.g. TCP) with an indication
that a callback will arive later. But when the other lock is released, the callback
comes on a second connection, initiated from the server back to the client and
not on the original NLM channel. To make matters worse, some servers only
ever perform the callback on UDP in order to simplify and reduce the overhead
required.
If this callback doesn't arrive at the client, or arrives in such a way that
it's not recognized (e.g traverses a NAT and therefore changes source IP),
then the client only wakes up on a timer. The long pauses can be a real
problem, and one which only arises occasionally - i.e. very hard to trace down.
Just something to be aware of... it's a day-one defect in the NLM protocol,
actually.
Tom.
>
>> I know there
>> are servers out there that will always speak NLM over UDP
>> (netapp/ontap being the prominent one), and as a result there can be
>> problems without firewalls. If servers are out there that will speak
>> NLM over UDP regardless of the mount itself, shouldn't we be binding
>> NLM/UDP regardless of the mount transport?
>>
>> (Or did I miss this change being reverted a while back?)
>
>This change was reverted upstream; see commit 8c3916f4.
>
>--
>Chuck Lever
>chuck[dot]lever[at]oracle[dot]com
>
------------------------------------------------------------------------------
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image
processing features enabled. http://p.sf.net/sfu/kodak-com
_______________________________________________
NFS maillist - NFS@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs
_______________________________________________
Please note that nfs@lists.sourceforge.net is being discontinued.
Please subscribe to linux-nfs@vger.kernel.org instead.
http://vger.kernel.org/vger-lists.html#linux-nfs
next prev parent reply other threads:[~2009-05-07 17:09 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-07 12:57 [NFS] nfs-over-tcp still needs udp ports? (SLES 11) Frank Steiner
2009-05-07 13:34 ` Leonardo Chiquitto
[not found] ` <c2d0b6ec0905070634p6888226cx5b2c8abae51cd1be-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-05-07 15:26 ` Frank Steiner
[not found] ` <4A02FDC3.9090709-G0GEQqhI7DhYiKXMg8wJIg@public.gmane.org>
2009-05-07 15:35 ` Tom Talpey
[not found] ` <4a02ffdf.1ac1f10a.637d.ffffbc3a-ATjtLOhZ0NVl57MIdRCFDg@public.gmane.org>
2009-05-07 16:08 ` Aaron Wiebe
[not found] ` <e7ca40f70905070908p595c1d23gef745a122ae09caa-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-05-07 16:42 ` Chuck Lever
2009-05-07 17:08 ` Tom Talpey [this message]
[not found] ` <4a031594.1c1d640a.6d45.5fed-ATjtLOhZ0NVl57MIdRCFDg@public.gmane.org>
2009-05-07 18:08 ` Aaron Wiebe
2009-05-08 6:03 ` Frank Steiner
[not found] ` <4A03CB1C.7020703-G0GEQqhI7DhYiKXMg8wJIg@public.gmane.org>
2009-05-08 12:27 ` Trond Myklebust
2009-05-11 14:59 ` Tom Talpey
[not found] ` <4a083d44.85c2f10a.4cf7.ffff85fb-ATjtLOhZ0NVl57MIdRCFDg@public.gmane.org>
2009-05-11 16:59 ` Chuck Lever
2009-05-12 13:51 ` Frank Steiner
2009-05-15 6:38 ` Frank Steiner
[not found] ` <4A0D0DFE.6040108-G0GEQqhI7DhYiKXMg8wJIg@public.gmane.org>
2009-05-15 13:48 ` Tom Talpey
[not found] ` <4a0d72a6.c5c2f10a.368f.5cc5-ATjtLOhZ0NVl57MIdRCFDg@public.gmane.org>
2009-05-18 9:18 ` Frank Steiner
[not found] ` <4A1127CE.5030701-G0GEQqhI7DhYiKXMg8wJIg@public.gmane.org>
2009-05-18 12:53 ` Tom Talpey
[not found] ` <4a115a4c.47c1f10a.53d0.ffff96cc-ATjtLOhZ0NVl57MIdRCFDg@public.gmane.org>
2009-05-22 11:05 ` Frank Steiner
[not found] ` <4A02DAA8.6050005-G0GEQqhI7DhYiKXMg8wJIg@public.gmane.org>
2009-05-07 13:52 ` Trond Myklebust
[not found] ` <1241704326.4884.10.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-05-07 14:03 ` Peter Åstrand
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=4a031594.1c1d640a.6d45.5fed@mx.google.com \
--to=tmtalpey@gmail.com \
--cc=chuck.lever@oracle.com \
--cc=epiphani@gmail.com \
--cc=fsteiner-mail1-G0GEQqhI7DhYiKXMg8wJIg@public.gmane.org \
--cc=leonardo.lists@gmail.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