在用nfs共享大文件或者挂载根文件系统时候出现下面的问题:
nfs: server 192.168.14.223 not responding
nfs: server 192.168.14.223 not responding
nfs: server 192.168.14.223 OK
但是共享小文件还是可以的。
查阅相关帖子得知如下:
问题的原因分析:
1、NFS 的默认传输协议是 UDP,而PC机与嵌入式系统通过UPD交互时就会出现严重的网卡丢包现象;
2、server机和目标机网卡传输速率冲突,使得目标机需要大量时间复制大量数据包,其实如果目标机的网卡速率够大,则不用分那么多包,也不会冲突。
问题的解决方案:
方法一:在客户端改用TCP协议,使用下面的命令,在mount命令中加上参数tcp
#mount –o tcp ,nolock 192.168.14.223:/nfs_root /mnt
也可这样干:
跟踪了fs/nfs/nfsroot.c的代码,发现在nfs作为根文件系统时,参数可以直接写在“nfsroot=”后面,每个参数用逗号隔开,如:
nfsroot=192.168.10.1:/rootfs,proto=tcp,nfsvers=3,nolock
这样就可以指定nfs使用tcp协议
方法二:指定传输速率(限定传输时一次读写的数据大小)
#mount -t nfs -o intr,nolock,rsize=1024,wsize=1024 192.168.14.223:/nfs_root /mnt
以上方法均参考于互联网。
一篇问题原因原帖(2006年的)
Mandag 27 november 2006 20:12 skrev Verner Kj?rsgaard:
> Mandag 27 november 2006 19:33 skrev John P. New:
> > Verner,
> >
> > This is a problem with NFS and 2.6 kernels, fast server NICs and
> > comparatively slower client NICs. This will show up when the server has
> > a 1000Mb card and the client a 100Mb, or when the server has a 100Mb
> > card and the client a 10Mb.
> >
> > Essentially, you have to pass some options to the kernel on terminal
> > boot, and this varies depending on whether you are using etherboot or
> > PXE.
> >
> > See
> > http://wiki.ltsp.org/twiki/bin/view/Ltsp/NFS#NFS_Server_not_responding
> > for a deeper explanation of the problem and the cure.
用户377235 2013-7-10 14:58