GBase 常见网络问题及排查方法

本文探讨了集群中遇到的网卡速度降低、SSH连接受限和IPv6协议checksum错误的问题,提供了包括重启网卡、调整ssh配置、关闭tx-checksumming校验等在内的解决方案。

网卡降速

集群部分节点性能差,查看 nmon 等看到外发和收取速度明显低于其它节点。再查看 ethtools 网卡, 看到网速不是正常的千兆或万兆。比如万兆网,显示千兆,甚至百兆。这种情况一般是网线或者网卡不稳定。

解决方案

可以尝试重启网卡或者换其它正常的网口以及维修或更换网卡、检测网线。

SSH 不通

集群部分节点性能差,查看 nmon 等看到外发和收取速度明显低于其它节点。再查看 ethtools 网卡, 看到网速不是正常的千兆或万兆。比如万兆网,显示千兆,甚至百兆。这种情况一般是网线或者网卡不稳定。

集群安装、升级、扩容、节点替换等操作过程中,出现网络 ssh 不通等问题。如 tcp连接数不够的情况下,/var/log/message 日志中有报错:TCP: time wait bucket table overflow。

这一般是如下情况:

  • 操作系统配置禁止了 root 等用户的远程 ssh 操作;
  • ssh 配置端口不统一或配置文件修改不彻底;
  • ssh 连接数已满。

解决方案

可以通过调整操作系统的 ssh 用户访问策略,ssh 端口、连接数等配置。如修改 tcp_max_tw_buckets 参数,配置为 60000,保证 tcp 连接数够用。

ipv6 协议 chercksum 异常

使用 ipv6 安装集群,运行一段时间后集群不可用。查看/var/log/messages 日志,有UDP checksum 字样,如:kernel:IPV6:udp checksum is 0 for ...。

这是因为使用 Ipv6 协议部署集群,发送 UDP 包时必须计算数据包的 checksum,tx-checksuming 参数开启时,由网卡计算;tx-checksuming 参数关闭时,由内核计算。

当数据包的 checksum 值为 0x0000 时,需要转换成 0xffff 再发送。当接收端收到checksum 值为 0x0000 的 UDP 数据包时,内核将包丢弃。

不同节点 corosync 拿到 token 才能发送数据包,当 token 包的 checksum 值为 0x0000时,会被目标端内核丢弃,目标端 corosync 无法收到 token 包,达到设置的默认时间 60 秒后,corosync 认为有节点离开,重新同步,在同步期间,集群不对外提供服务,导致用户刷表操作报错。

该问题只在个别 VMware 虚拟机上出现过,偶发。

解决方案

可以使用ethtool -K < 网 卡 名 称 > tx off , 如 ethtool -K em1 tx off 关 闭 网 卡tx-checksumming 校验参数解决。 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值