【维护案例】新装、扩容集群通信报错:data/control channel disconnect
1. 问题描述
版本:GaussDB A-8.0.0.1
服务器:ARM 泰山200 CentOS 7.6
9月24日,用户GDS外表导入报错:ERROR:dn_6063_6064: Failed to connect dn_6001_6002, detail:1047 control channel disconnect,用户入库任务基本都失败,查看日志发现在扩容节点上均存在很多的连接错误。
2. 问题根因分析:
如上图,可以看到可以成功的建立连接,但一去使用就是报错Connection timed out。
优先考虑排查网络环境问题,使用gsar.sh脚本工具检测DN6001和6069的网络状态,发现网络丢包率和重传率都高于正常水平。
使用netstat –anop|grep “on (“|sort –rnk 3|head -50具体查看重传的连接情况,发现TCP重传次数很高,达到12次,数据包丢失。至此,定位到底层网络环境存在问题。
由于使用的是ARM架构的服务器,存在着个别驱动不适配的问题,排查一下网卡驱动,发现hns3板载网卡用的是OS默认驱动,这个驱动存在问题,需要装独立驱动。
打上驱动后,现场反馈问题已经解决。
综上,根原因是扩容机器的网卡驱动不配套,导致TCP一直丢包重传,最终通信库建连后数据传递超时,业务失败。
3. 规避措施 :
重新安装配套的网卡驱动。
4. 后续改进措施 :
1、目前,由于网卡驱动不配套导致的通信问题已出现多次了,此类问题不仅让客户业务受阻,同时多次定位也耗费人力资源。后续有效的处理办法就是将目前已知出过问题的网卡驱动纳入黑名单,在巡检过程中直接排查,在问题出现之前就排查到,遏止其发生。
2、在扩容,新装集群变更中,重点关注一下网卡驱动是否配套,是否出过问题,从而避免后续问题的产生。
- 点赞
- 收藏
- 关注作者
评论(0)