Cisco MDS:升级到 9.4(2a) 后,由于 FSPF 不稳定,主机丢失路径
摘要: NX-OS 升级到版本 9.4(2a) 后,客户注意到 Windows 主机上出现无效路径,Linux 主机上出现 Devloss。
症状
在具有 Supervisor-1(显示为 Supervisor-3)的 Cisco Multilayer Directional Switch (MDS) 9700 上升级到 NX-OS 版本 9.4(2a) 后,许多主机反复丢失通往目标的路径。
Linux 示例:Dec 6 03:10:48 Hostname kernel: lpfc 0000:09:00.1: 1:(0):0203 Devloss timeout on WWPN 50:xx:xx:xx:xx:xx:xx:xx NPort x480260 Data: x0 x8 x3<SNIP>Dec 6 13:36:15 Hostname kernel: lpfc 0000:09:00.1: 1:(0):0203 Devloss timeout on WWPN 50:xx:xx:xx:xx:xx:xx:xx NPort x480280 Data: x0 x8 x4
Windows 示例:Level Date and Time Source Event ID Task Category Error 15/12/2024 06:42 EmcpMpx 106 None Bus 0 to Symmetrix <Serial # > port FA <FA #> is dead.
问题追溯到结构最短路径优先 (FSPF) 链路状态路由 (LSR) 定期老化。这可以从 show fspf internal event-history events 的输出中看出。
示例:show fspf internal event-history2024 Dec 15 09:15:11.373275: E_DEBUG [105] fspf [8639]: LSR 84 in VSAN 552 reached Max Age 2024 Dec 15 08:51:08.739300: E_DEBUG [105] fspf [8639]: LSR 84 in VSAN 552 reached Max Age 2024 Dec 15 08:27:06.765770: E_DEBUG [105] fspf [8639]: LSR 84 in VSAN 552 reached Max Age 2024 Dec 15 08:03:03.432829: E_DEBUG [105] fspf [8639]: LSR 84 in VSAN 552 reached Max Age 2024 Dec 15 07:39:01.112629: E_DEBUG [105] fspf [8639]: LSR 84 in VSAN 552 reached Max Age 2024 Dec 15 07:14:56.583576: E_DEBUG [105] fspf [8639]: LSR 84 in VSAN 552 reached Max Age 2024 Dec 15 06:50:52.527478: E_DEBUG [105] fspf [8639]: LSR 84 in VSAN 552 reached Max Age
MAX_AGE计时器为 60 分钟,刷新计时器为 30 分钟。上面的示例显示了这些 LSR 在大约 24 分钟而不是 60 分钟时老化。这是在刷新它们之前。
如上所示,24 分钟的间隔可能会有所不同。
另一个症状是发送和接收的 FSPF Hello 数量严重不匹配:
show fspf interfaceFSPF interface port-channel6 in VSAN 1FSPF routing administrative state is activeInterface cost is 3Timer intervals configured, Hello 20 s, Dead 80 s, Retransmit 5 sFSPF State is FULL Neighbor Domain Id is 0x54(84)Neighbor Interface is port-channel6 (0x00040005 )
统计计数器:
Number of packets received : LSU 4133 LSA 4133 Hello 104919 Error packets 0 Number of packets transmitted : LSU 9482 LSA -139208775 Hello 278675 Retransmitted LSU 1 Number of times inactivity timer expired for the interface = 0
与接收到的 Hello 相比,此交换机传输的 Hellos 是其 2.65 倍。这是因为 FSPF Hello 计时器在 20 秒的正确值之前到期。
所有 FSPF 计时器均未以正确的时间间隔到期,从而导致上述问题。
发送或接收的正常 Hello 示例: MDS# show fspf interfaceFSPF interface port-channel3 in VSAN 1FSPF routing administrative state is activeInterface cost is 62Timer intervals configured, Hello 20 s, Dead 80 s, Retransmit 5 sFSPF State is FULLNeighbor Domain Id is 0xe8(232)Neighbor Interface is port-channel3 (0x00040002 )
统计计数器:
Number of packets received : LSU 4144 LSA 4144 Hello 372794 Error packets 0 Number of packets transmitted : LSU 4146 LSA 0 Hello 372813 Retransmitted LSU 0 Number of times inactivity timer expired for the interface = 0
原因
运行 NX-OS 9.4(2)、9.4(2a) 或 9.4(3) 时,具有 Supervisor-1 或 Supervisor-1E(也称为 Supervisor-3)的 MDS 9700 上可能会出现此问题。这似乎是一个相对较低的发生概率。
Cisco 创建了以下 Bug:
CSCwn58100:升级到 9.4(2a) 后,LSR 达到最大使用期限导致 FSPF 不稳定导致主机丢失路径。
更多信息可在此处获得:
https://bst.cloudapps.cisco.com/bugsearch/bug/CSCwn58100 [bst.cloudapps.cisco.com]
解决方案
修复:将代码升级到 NX-OS 9.4.3a。
解决办法:请联系戴尔支持,以获得无中断解决方法;支持人员将联系 Cisco TAC。