All of lore.kernel.org
 help / color / mirror / Atom feed
* NFS and mobile clients - can it work?
@ 2008-09-22  0:20 Neil Brown
       [not found] ` <18646.58594.377630.950531-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Neil Brown @ 2008-09-22  0:20 UTC (permalink / raw)
  To: linux-nfs


Hi.

 Suppose I have a mobile client such as a notebook computer which
 changes networks from time to time - e.g. when "docked" it uses a
 wired network, but when I "undock" it uses a wireless network.  And
 as I move around it might change from one wireless network to
 another.

 Is it at all reasonable to expect that I could have an NFS mounted
 filesystem that continues to work across all of those changes?

 If we just assume NFSv3 and ignore locking for the moment, then this
 seems to work quite well if you use UDP, but fails badly if you use
 TCP.  This is because the connected socket holds on to the old source
 address.

 I think that the only way to get the client to close and re-open the
 socket would be to wait for 5 minutes with no IO requests.  But that
 would be hard to ensure.  Any attempt to access any file will trigger
 a request which will keep retrying which will keep the socket active,
 so the client won't close it.... It doesn't seem to work anyway.  The
 RPC client appears to try to connect from the same source IP address,
 though I haven't checked the code to be sure of this.

 Would it be worthwhile/practical to have a 'remount' mount option to
 request that the socket be closed and re-opened?

 If there were any active locks, there is probably nothing useful that
 can be done for them.  Unless the client manages to send a NOTIFY to
 the server before changing IP address, the server will never drop the
 locks.   Maybe "-o remount,reopen" would only work if "-o nolocks"
 were in force.  It's not an ideal solution, but it might be better
 than the current situations?

 I'm not sure whether NFSv4 makes this easier or harder.  Can you
 continue a client session (SET_CLIENTID) from a different IP address?
 Can you change the callback address for a CLIENT once it is created?


 For now, I think the options are to use UDP (which has it's own
 problems) or to for an unmount (--lazy) when the client IP address
 changes.

Thoughts?

Thanks,
NeilBrown

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

end of thread, other threads:[~2008-09-25  4:13 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-22  0:20 NFS and mobile clients - can it work? Neil Brown
     [not found] ` <18646.58594.377630.950531-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
2008-09-22  5:30   ` Krishna Kumar2
2008-09-24  7:19   ` Suresh Jayaraman
2008-09-24 13:26     ` Ric Wheeler
2008-09-25  4:13       ` Neil Brown
2008-09-24 15:24   ` Steve Dickson
     [not found]     ` <48DA5B93.5030307-AfCzQyP5zfLQT0dZR+AlfA@public.gmane.org>
2008-09-24 15:52       ` Jim Rees

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.