nfs连接故障自动检测和恢复程序

本文档介绍了业务场景中遇到的NFS连接问题,包括服务器重启、客户端未自动挂载或网络故障等原因。为解决此问题,提出了通过shell脚本定时检测NFS挂载状态的方案。脚本利用df命令的执行情况进行判断,若发现NFS异常,将执行挂载操作以尝试恢复连接。
摘要由CSDN通过智能技术生成
业务场景

       应用程序之间以文件作为接口,为了简化设计,没有采用单独的文件传输模块,而是采用共用nfs服务器的方式由系统层面自动完成文件的上传下载.但是,在维护阶段却经常发生nfs无法连接的问题,导致应用程序io报错,影响到了业务的正常推进.

 

原因分析

       1>客户端维护人员不知道的情况下,nfs server所在的服务器进行了重新启动,导致原来的挂接点无法访问nfs server,需要重新mount

       2>nfs client端主机重新启动,没有自动mount或者mount失败,导致应用程序报错

       3>网络故障导致nfs连接不可用

 

采取的对策

       通过shell程序定时自动检测nfs mount的情况

 

程序实现

       平时手动确认nfs的时候,用的是df命令,如果nfs连接有问题,因为是同步IO,所以df会卡死到那里等待,直到nfs连接可用为止才会返回,所以这次程序实现上,也是通过df命令的执行情况来判断nfs是否正常,不过需要通过两个进程来实现,如果一个进程的话,一旦df命令卡死到那里,整个程序就卡到那里不动了,所以需要两个shell程序.

 

1.主shell程序

       调用子shell程序,让子shell程序在后台执行

       sleep 30秒,然后通过pid来检测子shell进程是否已经退出

        如果子进程还在,那么说明nfs连接出现异常,返回异常 exit 2,

                注意:这里没有kill子shell进程,如果nfs mount成功,df会成功返回,子进程会自动退出,当然也可以手动kill掉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值