ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【linux 】服务器异常down 机 NFS挂载失败

【linux 】服务器异常down 机 NFS挂载失败

原创 Linux操作系统 作者:杨奇龙 时间:2012-02-18 20:12:51 0 删除 编辑
工作中遇到的一个案例,由于rac1 异常dang 机导致nfs 挂载失败,具体环境如下
nfs server端 als_mybak4 10.251.134.205
nfs client端 rac1       10.250.7.225
在rac1上使用挂载nfs 失败 使用showmount查看,报timeout错误!
root@rac1#showmount -e 10.251.134.205
mount clntudp_create: RPC: Port mapper failure - RPC: Timed out

在nfs服务端查看端口信息
root@als_mybak4 # netstat -ltpn | more
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:42251               0.0.0.0:*                   LISTEN      6451/rpc.mountd     
tcp        0      0 0.0.0.0:875                 0.0.0.0:*                   LISTEN      6435/rpc.rquotad    
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      1361/rpcbind        
tcp        0      0 0.0.0.0:51954               0.0.0.0:*                   LISTEN      1379/rpc.statd      
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1514/sshd           
tcp        0      0 0.0.0.0:57949               0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:20351               0.0.0.0:*                   LISTEN      1578/python         
tcp        0      0 0.0.0.0:2049                0.0.0.0:*                   LISTEN      -                   
tcp        0      0 :::111                      :::*                        LISTEN      1361/rpcbind        
tcp        0      0 :::22                       :::*                        LISTEN      1514/sshd           
tcp        0      0 :::38359                    :::*                        LISTEN      -                   
tcp        0      0 :::12865                    :::*                        LISTEN      26721/netserver     
tcp        0      0 :::42918                    :::*                        LISTEN      1379/rpc.statd  
运行nfs所需要的后台进程:
 rpc.nfsd管理clinet是否有权限登录,以及判别登录者的uid等;
 rpc.mountd读取/etc/exports的权限,对文件访问权限进行控制;
 rpc.lockd文件的互斥锁,保证文件在同一时间只有一个人访问,需要nfslockd服务;
 rpc.statd检查文件的一致性,需要nfslockd服务。

网络方面的acl配置
3970 permit tcp host 10.250.7.225 host 10.251.134.205 eq sunrpc
3980 permit tcp host 10.250.7.225 host 10.251.134.205 eq 2049
3990 permit tcp host 10.250.7.225 host 10.251.134.205 eq 38520
4000 permit tcp host 10.250.7.225 host 10.251.134.205 eq sunrpc
4010 permit tcp host 10.250.7.225 host 10.251.134.205 eq 2049
4020 permit tcp host 10.250.7.225 host 10.251.134.205 eq 38520
服务器上面的端口和网络配置的ACL的端口不对应,造成了两个服务器之间不可连接,从而超时!
这里还要说说NFS 
        网络文件系统(NFS,Network File System)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制,通过对网络文件系统的支持,客户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作。因为NFS支援的功能很多,而不同的功能会使用不同的方式来启动,每启动一个功能就会启用一些port来传输资料!因此, NFS的功能所对应的port是不固定的,而是采用随机取用一些未被使用的小于1024的埠口来作为传输之用。此时我们就得需要远端程序呼叫(RPC)的服务。RPC最主要的功能就是在指定每个NFS功能所对应的port number ,并且回报给客户端,让客户端可以连结到正确的埠口上去。那RPC又是如何知道每个NFS的埠口呢?这是因为当伺服器在启动NFS时会随机取用数个埠口,并主动的向RPC注册,因此RPC可以知道每个埠口对应的NFS功能,然后RPC又是固定使用port 111 来监听客户端的需求并回报客户端正确的埠口!
        portmap 进程的主要功能是把RPC程序号转化为Internet的端口号
当一个RPC服务器启动时,会选择一个空闲的端口号并在上面监听(每次启动后的端口号各不相同),同时它作为一个可用的服务会在portmap进程注册。一个RPC服务器对应惟一一个RPC程序号,RPC服务器告诉portmap进程它在哪个端口号上监听连接请求和为哪个RPC程序号提供服务。经过这个过程,portmap进程就知道了每一个已注册的RPC服务器所用的Internet端口号,而且还知道哪个程序号在这个端口上是可用的。portmap进程维护着一张RPC程序号到Internet端口号之间的映射表,它的字段包括程序号、版本号、所用协议、端口号和服务名,portmap进程通过这张映射表来提供程序号-端口号之间的转化功能。如果portmap进程停止了运行或异常终止,那么该系统上的所有RPC服务器必须重新启动。首先停止NFS服务器上的所有NFS服务进程,然后启动portmap进程,再启动服务器上的NFS进程。但portmap只在第一次建立连接的时候起作用,帮助网络应用程序找到正确的通讯端口,但是一旦这个双方正确连接,端口和应用就绑定,portmap也就不起作用了。但对其他任何第一次需要找到端口建立通讯的应用仍然有用。
nfs 服务器端和客户端连接的步骤:
1 客户端会向伺服器端的RPC (port 111)发出NFS档案存取功能的询问要求;
2 伺服器端找到对应的已注册的NFS daemon埠口后,会回报给客户端;
3 客户端了解正确的埠口后,就可以直接与NFS daemon来连线。
        由于NFS的各项功能都必须要向RPC来注册,如此一来RPC才能了解NFS这个服务的各项功能之port number, PID, NFS在主机所监听的IP等等,而客户端才能够透过RPC的询问找到正确对应的埠口。也就是说,NFS必须要有RPC存在时才能成功的提供服务,因此我们称NFS为RPC server的一种。
       我的环境是客户端从 服务器端的111端口获取nfs 正在监听的端口,再向服务器端发起连接的时候被acl访问控制限制导致不可连接!重新配置acl的端口号,或者将10.250.7.225 到 10.251.134.205 之间的ip 全部端口开放~!这样当下次rac1 down机 重启之后,就不会因为网络ACL的端口限制而不能正常使用nfs服务了~!
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22664653/viewspace-716715/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
MySQL DBA NoSQL DEVOPS

注册时间:2009-10-07

  • 博文量
    1026
  • 访问量
    7531951