Summary: Gentoo Linux NFS problem

From: Aaron Taylor <kusoneko_at_gmail.com>
Date: Tue Nov 16 2004 - 13:43:27 EST
First, thanks to everyone that replied. To the trio that suggested I
"learn Linux", "RTFM" and "get a Linux newbie book", it was my second
day with a Linux machine, that's what I'm trying to do :-)

So, with that out of that out of the way, I apologize for the delay in
summarizing. These were live servers and I couldn't take them down for
a kernel updated until the weekend.

I received four suggestions from a lot of people.

First, it could be a name resolution issue. I tried listing the hosts
in the hosts file and that didn't solve the problem.

Several people suggested trying to force the connection to NFSv2 UDP.
I tried that with the "-o nfsvers=2,proto=udp" options without
success.

It was also suggested to make sure that NFSv3 and TCP support were
compiled in the kernel. They were not. After a kernel recompile, they
were included but that still didn't completely solve the problem. It
did lessen the time required to mount and increased the speed of
transfers to a normal level.

Finally, Bart De Meester suggested to make sure that the portmapper
was started on the Gentoo side before trying to mount the device. I
tried that(/etc/init.d/portmap start) and the mounts happen instantly.

Thanks again for such a great list.

#####
# Original Question
#####
I'm having trouble mounting an NFS fileshare from a Solaris 9 server
to a Gentoo Linux client. When issuing a mount command, the machine
sits for 330 seconds and then mounts properly. File transfers are
still much slower than a Solaris <--> Solaris transfer. Details are
below.

First, firewalls are disabled on both machines. All traffic is
unrestricted. There are no hosts.allow or hosts.deny files restricting
traffic either.

Here is a sample mount run:
>>>>>>>>
client root # time mount server:/mnt/vroom/shared /mnt/tmp

real    5m30.018s
user    0m0.000s
sys     0m0.000s
>>>>>>>>

To "dd" a 256mb file from Linux <--> Solaris takes 124 seconds. From
Solaris <--> Solaris takes 33 seconds. All machines are physically
local to each other(they all reside on a single switch).

Rpcinfo queries of the server report all is well.
>>>>>>>>
client etc # rpcinfo -u server nfs
program 100003 version 2 ready and waiting
program 100003 version 3 ready and waiting
client etc # rpcinfo -u server mountd
program 100005 version 1 ready and waiting
program 100005 version 2 ready and waiting
program 100005 version 3 ready and waiting
client etc # rpcinfo -u server portmapper
program 100000 version 2 ready and waiting
program 100000 version 3 ready and waiting
program 100000 version 4 ready and waiting
>>>>>>>>

On the client side, with a mount command of "mount
server:/mnt/vroom/shared /mnt/tmp", /var/log/everything/current
reports:
>>>>>>>>
NFS: NFSv3 not supported.
nfs warning: mount version older than kernel
portmap: server localhost not responding, timed out
portmap: server localhost not responding, timed out
portmap: server localhost not responding, timed out
>>>>>>>>

Snoop on the server reports:
>>>>>>>>
client -> server          TCP D=111 S=763 Syn Seq=3887056559 Len=0
Win=5840 Options=<mss 1460,sackOK,tstamp 743262333 0,nop,wscale 0>
        server -> client TCP D=763 S=111 Syn Ack=3887056560
Seq=1019881931 Len=0 Win=49232 Options=<nop,nop,tstamp 726834211
743262333,mss 1460,nop,wscale 0,nop,nop,sackOK>
client -> server          TCP D=111 S=763 Ack=1019881932
Seq=3887056560 Len=0 Win=5840 Options=<nop,nop,tstamp 743262333
726834211>
client -> server          PORTMAP C DUMP
        server -> client TCP D=763 S=111 Ack=3887056604
Seq=1019881932 Len=0 Win=49188 Options=<nop,nop,tstamp 726834211
743262333>
        server -> client PORTMAP R DUMP 41 map(s) found
client -> server          TCP D=111 S=763 Ack=1019882784
Seq=3887056604 Len=0 Win=6816 Options=<nop,nop,tstamp 743262334
726834211>
client -> server          TCP D=111 S=763 Fin Ack=1019882784
Seq=3887056604 Len=0 Win=6816 Options=<nop,nop,tstamp 743262334
726834211>
        server -> client TCP D=763 S=111 Ack=3887056605
Seq=1019882784 Len=0 Win=49232 Options=<nop,nop,tstamp 726834211
743262334>
client -> server          MOUNT3 C Mount /mnt/vroom/shared
        server -> client TCP D=763 S=111 Fin Ack=3887056605
Seq=1019882784 Len=0 Win=49232 Options=<nop,nop,tstamp 726834212
743262334>
client -> server          TCP D=111 S=763 Ack=1019882785
Seq=3887056605 Len=0 Win=6816 Options=<nop,nop,tstamp 743262334
726834212>
        server -> client MOUNT3 R Mount OK FH=0156 Auth=unix
client -> server          PORTMAP C GETPORT prog=100003 (NFS) vers=3 proto=UDP
        server -> client PORTMAP R GETPORT port=2049
client -> server          TCP D=111 S=767 Syn Seq=3896526337 Len=0
Win=5840 Options=<mss 1460,sackOK,tstamp 743262336 0,nop,wscale 0>
        server -> client TCP D=767 S=111 Syn Ack=3896526338
Seq=1020008166 Len=0 Win=49232 Options=<nop,nop,tstamp 726834213
743262336,mss 1460,nop,wscale 0,nop,nop,sackOK>
client -> server          TCP D=111 S=767 Ack=1020008167
Seq=3896526338 Len=0 Win=5840 Options=<nop,nop,tstamp 743262336
726834213>
client -> server          PORTMAP C DUMP
        server -> client TCP D=767 S=111 Ack=3896526382
Seq=1020008167 Len=0 Win=49188 Options=<nop,nop,tstamp 726834213
743262336>
        server -> client PORTMAP R DUMP 41 map(s) found
client -> server          TCP D=111 S=767 Ack=1020009019
Seq=3896526382 Len=0 Win=6816 Options=<nop,nop,tstamp 743262336
726834214>
client -> server          TCP D=111 S=767 Fin Ack=1020009019
Seq=3896526382 Len=0 Win=6816 Options=<nop,nop,tstamp 743262336
726834214>
client -> server          MOUNT2 C Mount /mnt/vroom/shared
        server -> client TCP D=767 S=111 Ack=3896526383
Seq=1020009019 Len=0 Win=49232 Options=<nop,nop,tstamp 726834214
743262336>
        server -> client MOUNT2 R Mount OK FH=0156
client -> server          PORTMAP C GETPORT prog=100003 (NFS) vers=2 proto=UDP
        server -> client TCP D=767 S=111 Fin Ack=3896526383
Seq=1020009019 Len=0 Win=49232 Options=<nop,nop,tstamp 726834214
743262336>
client -> server          TCP D=111 S=767 Ack=1020009020
Seq=3896526383 Len=0 Win=6816 Options=<nop,nop,tstamp 743262336
726834214>
        server -> client PORTMAP R GETPORT port=2049
client -> server          NFS C GETATTR2 FH=0156
        server -> client NFS R GETATTR2 OK
client -> server          NFS C STATFS2 FH=0156
        server -> client NFS R STATFS2 OK
>>>>>>>>

Ok, so from googling, searching the archives, and reading the errors
messages, this installation and version of Linux doesn't do
NFSv3(duh). However, I've tried the nfsvers=2 option, the proto=(both
tcp and udp) and I've tried setting the wsize and rsize to 1024, 8192,
and 32768 at the suggestion of several online docs. From what I can
see in the output from snoop, it seems that the client is trying to
mount via NFSv3 and then NFSv2 when v3 fails. I've tried several
different Gentoo machines, all with the same problem. However, when I
tried to mount on a JDS2 Linux install, it works flawlessly and
speedily. I know this is a Gentoo/Linux question, but so far no Linux
ng's have been able to answer it and I'm running out of time. I hope
you don't mind too much.

If there are any more tests that I could perform to help with
diagnosis, please let me know and I will post them as well.

#####
# End of original question
#####

-- 
Thanks,
   -Aaron Taylor
_______________________________________________
sunmanagers mailing list
sunmanagers@sunmanagers.org
http://www.sunmanagers.org/mailman/listinfo/sunmanagers
Received on Tue Nov 16 13:43:56 2004

This archive was generated by hypermail 2.1.8 : Thu Mar 03 2016 - 06:43:40 EST