入库检查服务器访问N8500存储概率性报错问题案例

发布时间:  2015-09-01 浏览次数:  157 下载次数:  0
问题描述
第1章  问题描述

问题描述:
客户反馈入库检查服务器从N8500读取文件时概率性报“指定的网络名不再可用”,导致10多条入库检查任务失败,但随即手动重试入库检查任务成功。在接下来的几天,问题又多次出现。
[5212]--MSG---DMCCodecIO:CDYSoftFileHandle--::CreateFile() of \\10.111.9.131\huawei-low1\low\2013\12\24\0-C0000001843328-NP1-00-0000-00-000-VSD.mp4 error-指定的网络名不再可用。
处理过程
第2章  问题分析

1. 查看N8500的cifs日志,录入检查服务器报错的时候,文件被打开一分多钟之后,cifs连接被关闭,接着录入检查服务器重连。

2. 通过tcpdump抓取网络报文,在出现问题的时候,网络报文如下

1) 从3015行开始,N8500向录入检查服务器发送keep-alive报文,但N8500没有收到响应,N8500  TCP层一直重发该请求。(说明:第一次出现问题后,N8500调整了deadtime参数,即使N8500长时间无法收到keep-alive响应也不主动断开链接)
2) 从3024行开始,录入检查服务器先后发送Tree Connect Andx Request和Echo Request,由于N8500发送Keep-alive报文一直未收到TCP层的响应,N8500 给入检查服务器的cifs响应一直在发送队列中,导致录入检查服务器一直未收到响应。
3) 从3028行开始,由于录入检查服务器一直未收到响应,根据cifs协议机制,录入检查服务器主动断链重连。
小结:
此次现象的主要原因是由于N8500向录入检查服务器发送keep-alive报文,但N8500没有收到响应而一直重发该请求(没有出问题的时候,N8500能够收到keep-alive响应),导致录入检查服务器的其他请求的响应阻塞在N8500 tcp层的发送队列中。由于录入检查服务器一直未收到响应,根据cifs协议机制,录入检查服务器主动断链重连(N8500通过调整deadtime参数,即使N8500不主动断开链接),所有导致录入检查服务器的上层大洋应用报“指定的网络名不再可用”。
解决方案
第3章  解决方案
此次问题的关键点在于,N8500向录入检查服务器发送keep-alive报文(默认300秒发送一次),但几率性N8500没有收到响应,录入检查服务器主动断链后,上层应用任务无重试机制。针对该情况,给出以下调整建议:
调整N8500 CIFS参数,使N8500不再主动发送keep-alive报文。
(keep-alive信息含义:录入检查服务器和N8500 建立TCP链接后,N8500通过定时发送keepalive消息探测TCP连接状态,因为录入检查服务器会自动发送cifs心跳消息“echo request”,所以可以关闭N8500 keep-alive报文的发送)

END