Author: qbanke | Category: Linux & Unix, 服务器
Comments: 评论关闭

有史以来最怪的问题,如果不是友人早前的提示,我还真得还要得耗半天找原。话说他们公司 Dell R710 用的操作系统是 RedHat As5.3 X64 会在正常运行中无故断网….
而且并没有规律,择日而断…弄了好久,还以为是机房的问题,最后无奈之下打电话给 Dell 报修。
他们的工程师立马就反应过来,这是 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 驱动。
相信只要是 使用 Broadcom NetXtreme II BCM 5709 网卡的服务器都有必要更新,例如 R710 ,R610。

[root@localhost DRIVER]# modinfo bnx2  [首先查看当前驱动版本]
filename:       /lib/modules/2.6.18-164.el5/updates/bnx2.ko
version:        1.9.3
license:        GPL
description:    Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver

[root@localhost DRIVER]# tar zxvf Bcom_LAN_14.1.5_Linux_Source_A00.tar.gz
[root@localhost DRIVER]# 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

好了,驱动都安装上了,然后有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

:wq

然后赐予可执行权限

[root@localhost redhat]# chmod +x lan_dr_up.sh
[root@localhost redhat]# ./lan_dr_up.sh &  [留意,在执行命令后方带有&符号,意思是让该命令在后台执行就算ssh控制端掉线了,服务器还能自主把新的网卡驱动重新加载。]

好了,下边我们再次查看网卡驱动的版本号

[root@localhost DRIVER]# modinfo bnx2  [首先查看当前驱动版本]
filename:       /lib/modules/2.6.18-164.el5/updates/bnx2.ko
version:        1.9.20d
license:        GPL
description:    Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver

Author: admin | Category: Linux & Unix
Comments: 评论关闭

由于dell给的教程太不直接,所以俺就直接自己写了个教程

设置方法:
网线一定要插到1号口,因为只有插到1号口远程管理才管用,当时操作体统的ip地址也要设置在1号口上.

启动机器,然后机器开始自检,要特别注意屏幕上的提示,等出现有BMC 字样的或者让按  CRTL + E 的时候,马上按  CRTL + E 进入设置界面
进入管理界面之后设置如下

1  将蓝色的光条移动到 IPMI Over LAN  选项,敲空格键,此时出现一个  !!WARNING!!的提示,不用管它敲回车略过,然后右边的off就会变成on
2  然后将光条移动到 LAN Parameters选项上敲回车进入ip设置状态,用键盘的上下键和左右键来控制,设置好相关的ip子网和网关三个重要选项,其中
  Ethernet IP Address  为 你服务器的ip地址  (不可以与操作系统的IP相一致)
  Subnet Mask  为子网掩码
  Default Gateway 为网关
设置完毕俺一下 ESC键退出到刚才的总菜单
3  将光条移动到 LAN User Configuration 选项上,敲回车进入用户设置状态
  将光条移动到   ENTER PASSWORD 上,输入密码,最好不要有标点符号,最好全都是小写字母,输入密码之后敲回车会自动跳到confirm password 下,重复输入密码即可,输入完毕敲回车回到总菜单下

4确认没有问题,按一下 ESC 键,出来一个小对话框,让选择,此时选择 Save Changes and Exit 选项进行存盘退出,此时机器开始继续引导系统

使用方法:

将我发的 ipmish.exe 拷贝到d盘或者c盘根目录下,然后执行下面的命令就可以远程对机器进行电源方面的操作
ipmish.exe -ip 服务器的ip地址 -u root -p 密码 power on/reset/off
其中 power on     硬开机
     power reset  硬重启机器
     power off    硬关机

举例说明,你服务器的ip是 192.168.162.14  当时设置的密码是 donglirong  ,现在服务器正在处于开机状态,现在想要远程硬重启服务器(相当于用手去按服务器上的重启按钮),就用下面的命令

ipmish.exe -ip 192.168.162.14 -u root -p donglirong power reset

输入上面的命令之后一秒钟后如果没有其它的提示则说明服务器重启成功,服务器将进行重启

再举例说明,突然想远程把服务器关机,只需要输入下面的命令即可

ipmish.exe -ip 192.168.162.14 -u root -p donglirong power off

要再开机,就输入下面的命令

ipmish.exe -ip 192.168.162.14 -u root -p donglirong power on

linux下需要编译安装ipmitool

下载ipmitool-1.8.9.tar.gz,解压后
./configure
make
make install

执行方式:

# ipmitool -I lan -H 服务器地址 -U root -P 密码 power off   (硬关机,直接切断电源)
# ipmitool -I lan -H 服务器地址 -U root -P 密码 power soft  (软关机,即如同轻按一下开机扭) 
# ipmitool -I lan -H 服务器地址 -U root -P 密码  power on   (硬开机)
# ipmitool -I lan -H 服务器地址 -U root -P 密码   power reset  (硬重启)
# ipmitool -I lan -H 服务器地址 -U root -P 密码  power status  (获取当前电源状态)
这里要特别注意的是:
此命令不到万不得已尽量不要使用,因为这跟人为的硬重启或者非正常掉电没有什么区别,这样有可能会造成硬盘的raid丢失或者数据的丢失,所以谨慎使用.    

ipmitool  for linux 下载地址:http://www.oschina.net/p/ipmitool

ipmitool  for windows 下载地址:http://www.donglirong.com/?action=show&id=71

Top
RSS for entries