CentOS与Broadcom 5709兼容性问题导致业务网络中断

CentOS网卡兼容性故障
CentOS系统在特定条件下因Broadcom5709网卡兼容性问题导致网络异常。通过对内核版本分析,发现操作系统与网卡驱动bnx2存在bug。禁用MSI功能后,成功解决了网卡不通的问题。
原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 、作者信息和本声明。否则将追究法律责任。 http://navyaijm.blog.51cto.com/4647068/922514

一、现象描述

开发那边反应有一台机器挂了(ping、ssh都不行),我通过远程管理口看到这台机器b并没有挂,我登录进去,ping任何IP都ping不通,系统日志也没有报错,最后我重启了网卡,机器恢复正常。

二、原因分析

 

服务器使用的开源的CentOS操作系统对网卡存在兼容性问题,现场使用的操作系统内核是:

Linux version 2.6.18-164.el5

 

CentOS是RedHatOS的免费编译版本,和RedHatOS基本相同。经过RedHat和网卡厂商的多次确认,RedHat OS在对Broadcom 5709网卡的驱动bnx2支持上存在一个兼容性bug----在某种特殊场合当业务数据流量过大时(即网口负荷过大时),小概率会导致网卡不通导致业务中断,可以参见RedHat对于该问题的描述:

 

通过该图片描述可以看到,在kernel-2.6.18-194.3.1.el 版本以下的Redhat以及CentOS 操作系统,使用Broadcom 5709网卡芯片的服务器上都会存在此问题。

MSIMessage Signalled Interrupts)是一种PCI设备使用的中断机制,多用于网卡且不适用多核;MSI-X是MSI的提升版,开启网卡驱动的MSI-X功能可以提升网络性能,但是会对OS增加负荷,OS若是无法适应网卡运行状况,无法处理数据(尤其是异常大的流量),就会出现异常状况,关闭MSI-X功能之后网卡会以网卡的普通性能工作,就不会使OS负荷过重,从而避免发生异常。

 

三、故障解决

 

禁用  Broadcom 5709网卡驱动bnx2的MSI功能(操作步骤如下)。

(1)登录服务器操作系统打开终端,输入“vi /etc/modprobe.conf”进入文本编辑模式。

(2)在文本结尾处添加一行“options bnx2 disable_msi=1”(如下图所示),保存退出并重启系统。

 

(3)系统重启后在终端输入“grep –i eth /proc/interrupts”,通过返回结果查看MSI是否已被禁掉(MSI禁用后将不会显示PCI-MSI-X的字样),如图所示。

未禁用MSI

已禁用MSI

 

 

 

 

 

 

 

 

 

 

本文出自 “屌丝运维男” 博客,请务必保留此出处http://navyaijm.blog.51cto.com/4647068/922514

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值