来源:自学PHP网 时间:2015-04-14 10:17 作者: 阅读:次
[导读] 背景简介由于业务需要,学校要把考试系统移植到云平台,第一步所做的是先把老系统A的nfs存储平台mount到新系统B上。老考试系统A服役时间已经很长了,操作系统还是redhat4系列,版本...
背景简介由于业务需要,学校要把考试系统移植到云平台,第一步所做的是先把老系统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.31 Export list for 10.77.30.31: /opt/OJ/contests (everyone)这说明B端的nfs服务是正常运行的,且防火墙没有拦截。 然后在A端查找日志,发现一直循环报错, nfsd: unexporting all filesystems nfsd: last server has exited nfsd: 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 nfsd nfsd 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=3 root@ubuntu188:/mnt# ls /mnt/nfs problems problems.1 runs work working 总结这类问题首先要找到问题的日志信息,但是不能光依赖网上的万能解答,而是应该了解其机理。最后感谢下两篇上述引用文章的作者: ) |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com