环境:Dell R710 Centos 5.4 i386
现象:正常运行中无故断网,没有规律
原因:RedHat As5.X 版本中的Broadcom NetXtreme II BCM 5709 驱动 BUG,涉及到 ACPI 电源管理的问题。当网卡在正常工作的时候,会被 ACPI 误以为他闲着,会它给关闭掉。
临时解决方法:每次出现这个情况,只需要 service network restart 或者 ifdown/ifup ethX (对于被关闭的网卡端口) 就可以恢复正常。
解决这个问题有2种方法:
第一种相对简单,就是在Linux内核中禁用 ACPI 电源管理系统。但该方法不推荐,因为会导致服务器失去智能电源调节,增加功耗。
另外一种方法就是升级网卡驱动,以下是升级过程:
首先当然是去 Dell 下载一份最新的 Broadcom NetXtreme II BCM 驱动。
http://ftp.us.dell.com/network/Bcom_LAN_14.1.5_Linux_Source_A00.tar.gz
相信只要是使用 Broadcom NetXtreme II BCM 5709 网卡的服务器都有必要更新,例如 R710 ,R610。
查看网卡驱动:
查看当前网卡驱动版本:
升级网卡驱动:
[root@d10035049 ~]# tar zxvf Bcom_LAN_14.1.5_Linux_Source_A00.tar.gz
[root@d10035049 ~]# cd Bcom_LAN_14.1.5_Linux_Source_A00/NetXtremeII/
[root@localhost NetXtremeII]# rpm -ivh netxtreme2-5.0a.10-1.src.rpm
1:netxtreme2 ######################## [100%]
[root@localhost NetXtremeII]# cd /usr/src/redhat/
[root@localhost redhat]# rpmbuild –bb SPECS/netxtreme2.spec
[root@localhost redhat]# rpm -ivh RPMS/x86_64/netxtreme2-5.0a.10-1.x86_64.rpm
如果是32位系统驱动生成在i386文件夹下:
[root@localhost redhat]# rpm -ivh RPMS/i386/netxtreme2-5.0a.10-1.i386.rpm
驱动都安装上了,有2个方法让新驱动起效,一是重启服务器。
如果不便重启的话,以下是第二种(但过程会导致网络断开,而且没有人工干预,会无法连上)
卸载现有驱动(注意:会导致网络中断)
[root@localhost NetXtremeII]# rmmod bnx2
重新加载驱动
[root@localhost NetXtremeII]# modprobe bnx2
也可以把以上2个命令写成一个 sh 脚本
[root@localhost redhat]# vim lan_dr_up.sh
rmmod bnx2
modprobe bnx2
[root@localhost redhat]# ./lan_dr_up.sh & [留意,在执行命令后方带有&符号,意思是让该命令在后台执行就算ssh控制端掉线了,服务器还能自主把新的网卡驱动重新加载。]
网卡驱动加载成功,升级完毕
附三个生成的模块的说明,这个在Broadcom的tar包解压后,里边有详细说明
- bnx2 driver for the Broadcom NetXtreme II BCM5706/BCM5708/5709/5716
10/100/1000/2500/10000 Mbps PCIX/PCIE Ethernet Network Controller.
- bnx2x driver for the Broadcom NetXtremeII BCM57710/BCM57711/BCM57711E
10/100/1000/2500/10000 Mbps PCIE Ethernet Network Controller.
- cnic driver that supports additional features required by the bnx2i iSCSI
offload driver. The bnx2i iSCSI driver is packaged separately.
-------------------------------------------------------