更新:问题是交换机上的硬件错误。 感谢大家提供的好的debuggingbuild议。 给MattyB正确答案,build议使用不同的开关来查看问题是否存在。
你好serverfault,
我正试图debugging一个问题,在几个节点上反复检测链路丢失,一次1-2分钟,这时应该没有链路丢失。
服务器:
– HP DL360 G5
– 1个板载2端口Broadcom NetXtreme II BCM5708千兆以太网(12版)(使用bnx2驱动程序)
– 1个4端口Intel 82571EB千兆位以太网控制器(铜缆)(06版)(使用e1000e驱动程序)
事实:
– 在所有节点上,Broadcom端口和一个Intel端口都连接到相同的交换机。
– 更新 :在两个NIC,Broadcom和Intel的端口上检测到链路丢失
– 所有端口均以Gb / s速度运行,但两个节点上的Intel端口速度为100Mb / s。 所有速度均使用自动协商设置。
– 所有节点最近从RHEL 5.0升级到RHEL 5.3。
我目前正试图访问交换机强制Gbps /全双工链接。 除此之外还有什么可以诊断或解决这个问题吗? 什么进一步的信息将是有用的?
编辑:我已经在其中一个受影响的接口运行tcpdump,我可以看到所有LLDP数据包和单个IGMP组成员查询。 我也设置了交换机强制所有端口1000Mbps链接,全双工。 这是否表明问题是在节点内部的,而不是由交换机上的任何设置引起的?
======日志消息======
Oct 29 11:30:36 db1 kernel: bnx2: eth1 NIC Copper Link is Down
Oct 29 11:30:37 db1 kernel: bnx2: eth0 NIC Copper Link is Down
Oct 29 11:30:39 db1 kernel: bnx2: eth1 NIC Copper Link is Up, 1000 Mbps full duplex, receive & transmit flow control ON
Oct 29 11:30:39 db1 kernel: bnx2: eth0 NIC Copper Link is Up, 1000 Mbps full duplex
Oct 29 11:31:08 db1 kernel: bnx2: eth0 NIC Copper Link is Down
Oct 29 11:31:10 db1 kernel: bnx2: eth0 NIC Copper Link is Up, 1000 Mbps full duplex, receive & transmit flow control ON
Oct 29 12:56:41 db1 kernel: bnx2: eth1 NIC Copper Link is Down
Oct 29 12:56:41 db1 kernel: bnx2: eth0 NIC Copper Link is Down
Oct 29 12:58:34 db1 kernel: bnx2: eth1 NIC Copper Link is Up, 1000 Mbps full duplex
Oct 29 12:58:34 db1 kernel: bnx2: eth0 NIC Copper Link is Up, 1000 Mbps full duplex
Oct 29 12:59:02 db1 kernel: bnx2: eth1 NIC Copper Link is Down
Oct 29 12:59:03 db1 kernel: bnx2: eth0 NIC Copper Link is Down
Oct 29 12:59:05 db1 kernel: bnx2: eth1 NIC Copper Link is Up, 1000 Mbps full duplex, receive & transmit flow control ON
Oct 29 12:59:05 db1 kernel: bnx2: eth0 NIC Copper Link is Up, 1000 Mbps full duplex
Oct 29 12:59:34 db1 kernel: bnx2: eth0 NIC Copper Link is Down
Oct 29 12:59:35 db1 kernel: bnx2: eth1 NIC Copper Link is Down
Oct 29 12:59:37 db1 kernel: bnx2: eth0 NIC Copper Link is Up, 1000 Mbps full duplex, receive & transmit flow control ON
======一个节点上所有连接接口的ethtool输出======
[root@db1 ~]# ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: g
Wake-on: g
Link detected: yes
[root@db1 ~]# ethtool eth1
Settings for eth1:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: g
Wake-on: g
Link detected: yes
[root@db1 ~]# ethtool eth2
Settings for eth2:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbag
Wake-on: d
Current message level: 0x00000001 (1)
Link detected: yes
这很奇怪 既然你在两个nics上都遇到了问题,我会怀疑这会排除一个特殊的固件问题,一个内核驱动程序问题或者一个硬件问题(除了主板之外)。 尽pipe您发布的日志特定于BNX2。 您是否已经validation了使用相同的硬件configuration文件连接到同一交换机的其他机器没有出现相同的问题? 你应该努力编码到100兆位/满和交换机,尽可能愚蠢的声音检查错误的布线。 最后,如果资源允许,为什么不尝试将该机器连接到第三方交换机(如netgear或类似无害的东西)。 ?
如果多个节点同时出现链路丢失,我甚至会说你可能有一个生成树错误,这个错误一直包含着你的交换机失败和重新收敛。 有关拓扑的更多信息将有助于诊断问题。
ethtool -K ethX tso off
在Broadcom网卡上试试这个。 它应该禁用ToEfunction,这通常会导致很多悲伤。
您也可以尝试将端口设置为双工或单工,而不是自动协商。
您是否在机器上运行最新的NIC和服务器固件? 在HP DL380和360系统上运行过时的网卡固件时,遇到一些类似的问题。
英特尔网卡的dmesg是什么样的?
你能访问交换机日志吗? 开关是什么型号的?