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

简介: 工作中遇到的一个案例,由于rac1 异常dang 机导致nfs 挂载失败,具体环境如下nfs server端 als_mybak4 10.251.134.205nfs client端 rac1       10.
工作中遇到的一个案例,由于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服务了~!
 
目录
相关文章
|
存储 Kubernetes API
kubernetes【存储】1. 共享存储pv、pvc、StorageClass使用详解(1)
kubernetes【存储】1. 共享存储pv、pvc、StorageClass使用详解(1)
kubernetes【存储】1. 共享存储pv、pvc、StorageClass使用详解(1)
|
存储 运维 关系型数据库
运维常见的22个故障排查和10个问题解决技巧大汇总!
运维常见的22个故障排查和10个问题解决技巧大汇总!
1374 0
|
11月前
|
监控 Java Python
Java 中的正则表达式
正则表达式是Java中强大的文本处理工具,支持灵活的匹配、搜索、替换和验证功能。本文介绍了正则表达式的语法基础及其在Java中的应用,包括字符串匹配、替换、分割及实际场景中的邮箱验证和电话号码提取等示例。通过这些技术,可以显著提高文本处理的效率和准确性。
611 8
|
测试技术 API 开发者
.NET单元测试框架大比拼:MSTest、xUnit与NUnit的实战较量与选择指南
【8月更文挑战第28天】单元测试是软件开发中不可或缺的一环,它能够确保代码的质量和稳定性。在.NET生态系统中,MSTest、xUnit和NUnit是最为流行的单元测试框架。本文将对这三种测试框架进行全面解析,并通过示例代码展示它们的基本用法和特点。
1565 8
|
存储 Kubernetes 网络协议
【分布式技术专题】「OSS中间件系列」从0到1的介绍一下开源对象存储MinIO技术架构
【分布式技术专题】「OSS中间件系列」从0到1的介绍一下开源对象存储MinIO技术架构
1370 98
【分布式技术专题】「OSS中间件系列」从0到1的介绍一下开源对象存储MinIO技术架构
|
Kubernetes 监控 程序员
kubernetes部署metrics-server
原有的kubernetes容器监控服务heapster,从kubernetes 1.11版本开始逐渐退休,新的监控服务是metrics-server
1584 0
kubernetes部署metrics-server
|
缓存 Java 关系型数据库
maven篇1: 安装、设置和环境变量配置
maven篇1: 安装、设置和环境变量配置
598 2
|
移动开发 JSON Kubernetes
k8s异常诊断之no space left on device.
某用户反馈,特定节点一直拉不起来pod,提示no space left on device.,手动去docker run也是相同的报错 # docker run --name aestools-perf --cap-add CAP_SYS_ADMIN --privileged -ti --rm registry-vpc.cn-beijing.aliyuncs.com/my-nettools/aestools:onlyperf docker: Error response from daemon: error creating overlay mount to /var/li
3274 135
|
消息中间件 数据可视化
rabbitmq的启动命令
1.以应用方式启动 rabbitmq-server -detached 后台启动 Rabbitmq-server 直接启动,如果你关闭窗口或者需要在改窗口使用其他命令时应用就会停止 关闭:rabbitmqctl stop 2.以服务方式启动
4627 0
rabbitmq的启动命令
|
监控 网络协议 Cloud Native
服务器性能如何优化?(建议收藏)
服务器性能如何优化?(建议收藏)
2098 0