系统:CentOS 6 X86_64、RHEL 5 X86_64
硬件:IBM X3650、Dell R610、R710、R720等系列服务器
通过升级系统自带网卡驱动程序到最新版本,可以解决当网卡流量过大时,出现掉包、断网现象。
已确认问题:
“RHEL 5.3/5.4 自带的Broadcom NetXtreme II BCM5709 网卡驱动有BUG,涉及到 ACPI 电源管理的问题。所以当网卡在正常工作的时候,会被 ACPI 误以为他闲着,从而把它给关闭掉。”
“每次出现这个情况,只需要 service network restart 或者 ifdown/ifup ethX (对于被关闭的网卡端口) 就可以恢复正常。”
注:查看服务器使用的网卡:
[root@cache52 tmp]# lspci 0b:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20) 0b:00.1 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)
IBM服务器解决方案
1)第一种相对简单,就是在Linux内核中禁用 ACPI 电源管理系统。
vi /boot/grub/grub.conf
title Red Hat Enterprise Linux Server (2.6.18-164.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/ rhgb quiet acpi=off
initrd /initrd-2.6.18-164.el5.img
2)另外一种方法就是升级网卡驱动。
当时IBM官方网站的最新版本是 1.9.20b,下载地址:
http://www-947.ibm.com/systems/support/supportsite.wss/docdisplay?lndocid=MIGR-5073130&brandind=5000008
[root@cache52 bnx2]# tar zxvf brcm_dd_nic_netxtreme2-1.9.20b_1.50.13_rhel5_32-64.tgz [root@cache52 bnx2]# nohup ./install.sh --update --override & [root@cache52 bnx2]# tail nohup.out Drivers will be installed/migrated to 2.6.18-164 version ---------------------------------------------------------------------- Checking kmod-brcm-netxtreme2-5.0.17-1.x86_64.rpm ...... ---------------------------------------------------------------------- kmod-brcm-netxtreme2-5.0.17-1.x86_64.rpm installed successfully SUCCESS
查看升级后的模块信息:
[root@cache52 brcm-netxtreme2]# modinfo bnx2
filename: /lib/modules/2.6.18-164.el5/weak-updates/brcm-netxtreme2/bnx2.ko
version: 1.9.20b
license: GPL
description: Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver
...
RHEL5.4 X64 系统自带的版本:
[root@cache50 ~]# modinfo bnx2
filename: /lib/modules/2.6.18-164.el5/kernel/drivers/net/bnx2.ko
version: 1.9.3
license: GPL
description: Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver
...
3)我升级了,网卡不通的问题基本不出现了,但有时还是有Drop包问题,可以尝试调整网卡ring缓冲区参数。
[root@cache54 /]# ethtool -G eth1 rx 1024 [root@cache54 /]# ethtool -g eth1 Ring parameters for eth1: Pre-set maximums: RX: 4080(表示最大可调到4080) RX Mini: 0 RX Jumbo: 16320 TX: 255 Current hardware settings: RX: 1024(默认255,我们调到了1024) RX Mini: 0 RX Jumbo: 0 TX: 255 [root@cache54 /]#
DELL系列服务器解决方案
1.查看当前网卡类型
# /sbin/lspci |grep Ethernet 02:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20) 02:00.1 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20) 03:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20) 03:00.1 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)
2.查看网卡驱动模块
# cat /etc/modprobe.conf|grep eth alias eth0 bnx2 #–>网卡模块为bnx2 alias eth1 bnx2 alias eth2 bnx2 alias eth3 bnx2
3.查看网卡驱动当前版本
# modinfo bnx2 filename: /lib/modules/2.6.18-238.el5/kernel/drivers/net/bnx2.ko version: 2.0.8-rh #–>现有驱动的版本 license: GPL description: Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver #–>网卡型号 author: Michael Chansrcversion: C7F6CA68A2BE2D1974E1D05 alias: pci:v000014E4d0000163Csv*sd*bc*sc*i* alias: pci:v000014E4d0000163Bsv*sd*bc*sc*i* alias: pci:v000014E4d0000163Asv*sd*bc*sc*i* alias: pci:v000014E4d00001639sv*sd*bc*sc*i* alias: pci:v000014E4d000016ACsv*sd*bc*sc*i* alias: pci:v000014E4d000016AAsv*sd*bc*sc*i* alias: pci:v000014E4d000016AAsv0000103Csd00003102bc*sc*i* alias: pci:v000014E4d0000164Csv*sd*bc*sc*i* alias: pci:v000014E4d0000164Asv*sd*bc*sc*i* alias: pci:v000014E4d0000164Asv0000103Csd00003106bc*sc*i* alias: pci:v000014E4d0000164Asv0000103Csd00003101bc*sc*i* depends: vermagic: 2.6.18-238.el5 SMP mod_unload gcc-4.1 parm: disable_msi:Disable Message Signaled Interrupt (MSI) (int) parm: enable_entropy:Allow bnx2 to populate the /dev/random entropy pool (int) module_sig: 883f3504de5f22f43e909ab54b946c11240a909e2fda20a05b43ed30218e26f5efa0af241d6e29a009f45d50b4ccf2c77c0819974b1d3f8f51fca9be2
4.下载最新网卡驱动程序
到以下链接,根据查询到的网卡型号下载最新的驱动程序:
http://zh-cn.broadcom.com/support/ethernet_nic/downloaddrivers.php
5.驱动程序安装
unzip linux-7.2.20.zip cd Server/Linux/Driver/ rpm -ivh netxtreme2-7.2.20-1.src.rpm cd /usr/src/redhat/SPECS/ rpmbuild -bb netxtreme2.spec cd ../RPMS/x86_64/ rpm -ivh netxtreme2-7.2.20-1.x86_64.rpm
6.加载最新驱动模块
#vi change.sh rmmod bnx2 modprobe bnx2
执行脚本:
sh change.sh
7.查看最新驱动版本
#modinfo bnx2 filename: /lib/modules/2.6.18-238.el5/updates/bnx2.ko version: 2.2.1j #–>新版驱动程序版本号 license: GPL description: Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver author: Michael Chansrcversion: 92BB1824D1695C4AE860E5F alias: pci:v000014E4d0000163Csv*sd*bc*sc*i* alias: pci:v000014E4d0000163Bsv*sd*bc*sc*i* alias: pci:v000014E4d0000163Asv*sd*bc*sc*i* alias: pci:v000014E4d00001639sv*sd*bc*sc*i* alias: pci:v000014E4d000016ACsv*sd*bc*sc*i* alias: pci:v000014E4d000016AAsv*sd*bc*sc*i* alias: pci:v000014E4d000016AAsv0000103Csd00003102bc*sc*i* alias: pci:v000014E4d0000164Csv*sd*bc*sc*i* alias: pci:v000014E4d0000164Asv*sd*bc*sc*i* alias: pci:v000014E4d0000164Asv0000103Csd00003106bc*sc*i* alias: pci:v000014E4d0000164Asv0000103Csd00003101bc*sc*i* depends: vermagic: 2.6.18-238.el5 SMP mod_unload gcc-4.1 parm: disable_msi:Disable Message Signaled Interrupt (MSI) (int) parm: stop_on_tx_timeout:For debugging purposes, prevent a chip reset when a tx timeout occurs (int)
如果没有成功,重新启动下服务器;
8.卸载最新驱动,还原到以前的驱动
如果安装的最新驱动程序有问题,怎么卸载?
#rpm -e netxtreme2-7.2.20-1
南京服务器托管 | 南京服务器租用 | 南京主机托管 | 南京主机租用 | 南京华昊数据 | www.467.cn |
TEL:400-025-9-467 025-58633651 QQ:23190019