知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

linux老旧nfs系统mount超时问题的解决

发布时间:2015-05-27 19:10:24作者:知识屋

背景简介

由于业务需要,学校要把考试系统移植到云平台,第一步所做的是先把老系统A的nfs存储平台mount到新系统B上。老考试系统A服役时间已经很长了,操作系统还是redhat4系列,版本还是linux 2.4.20。

问题

在B端mount的时候,出现一个问题,即输入

mount  -t nfs 10.77.30.31:/opt/OJ/contests  /mnt/nfs
超时报错

A端的nfs服务,其他老系统可以mountA的nfs文件,但是linux 3.0以后的服务器还是mount不了。后来问了下其他人,原来他们也早就知道了,但一直没解决。

追踪

首先在B端showmount看看,发现一切正常

root@ubuntu188:/mnt# showmount -e 10.77.30.31Export list for 10.77.30.31:/opt/OJ/contests (everyone)
这说明B端的nfs服务是正常运行的,且防火墙没有拦截。

然后在A端查找日志,发现一直循环报错,

nfsd: unexporting all filesystemsnfsd: last server has exitednfsd: unexporting all filesystems

于是网上百度这个问题,都说是nfs服务器中/proc/fs/nfsd没有装载,于是看了下,发现确实A端没有这个东西

于是尝试mount,发现不行,提示出错

mount -t nfsd  nfsd  /proc/fs/nfsd mount: mount point /proc/fs/nfsd does not exist
而在B端或者其他较新的系统上进行此类mount,是一切正常的

那么A端是不是没装nfsd服务呢,虽然基本不可能,但还是验证一下,果然A端nfsd的服务模块是加载了的,/proc里也有

[root@cszjusrv3 contests]# lsmod|grep nfsdnfsd                   81104   8  (autoclean)lockd                  59536   1  (autoclean) [nfs nfsd]sunrpc                 87516   1  (autoclean) [nfs nfsd lockd][root@cszjusrv3 contests]# ls /proc/net/rpc/nfsd /proc/net/rpc/nfsd


问题的解决

到这个时候我已经确认了基本是A端nfs服务版本过老的问题了。但是由于A的操作系统过老,已经不适合安装新的nfs版本了,那么就没办法了么。

我查找"nfsd: unexporting all filesystems"的问题过程中,搜到两个链接http://blog.csdn.net/zanget/article/details/6659314,http://www.233.com/Linux/Instructs/060210/172416755-2.html其中都提到nfsvers=x ,这我本能的感觉到问题所在。进一步阅读后发现是用来选择nfs版本做优化的。通过nfsstat查了下,A端只支持1-3的nfs版本,而现在默认都用4了,于是在B端尝试了下参数,发现成功了。

root@ubuntu188:/mnt# mount  -t nfs 10.77.30.31:/opt/OJ/contests  /mnt/nfs -o nfsvers=3root@ubuntu188:/mnt# ls /mnt/nfsproblems  problems.1  runs  work  working

总结

这类问题首先要找到问题的日志信息,但是不能光依赖网上的万能解答,而是应该了解其机理。最后感谢下两篇上述引用文章的作者: )

(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜