目录

简介

本文档介绍思科多层数据交换机(MDS)9000系列光纤通道(FC)端口上遇到的问题,并提供问题的解决方案。

问题

此链接事件日志显示:

*************** Port Config Link Events Log ***************
----                           ------    -----  -----  ------
Time                        PortNo    Speed  Event  Reason
----                         ------    -----  -----  ------
...
Jul 28 00:46:39 2012  00670297  fc11/25   ---   DOWN   LR Rcvd B2B      

LR Rcvd B2B(或链路故障链路重置失败非空接收队列)消息指示连接到端口的设备向MDS传输链路重置(LR),但MDS由于端口上出现内部拥塞不会响应链路重置响应(LRR)。端口有从连接的设备接收的数据包排队,但MDS无法将其传送到相应的出口端口。由于它们仍在入口端口排队,MDS无法发回LRR,因此链路发生故障。

以下错误消息伴随上一个事件日志:

%PORT-2-IF_DOWN_LINK_FAILURE: %$VSAN 93%$ 
Interface fc11/25 is down (Link failure)

%PORT-5-IF_DOWN_LINK_FAILURE: %$VSAN 100%$
Interface fc5/32 is down (Link failure Link Reset
failed nonempty recv queue
)

:此场景是在MDS授予FC设备的缓冲区信用数量为3且将FC设备的数据包交换到出口FC端口的假设下给出的。

                MDS
   FC Port                FC Port
   (Egress)   Arbiter    (Ingress)      FC device
   --------   -------    ---------      ---------
 1)                           <------- FC packet 1
 2)             <--- Grant Request
 3)             Grant------------>
 4)    <---------------FC packet 1
 5)                            R_Rdy-------->       Tx B2B=3
 6)                           <------- FC packet 2  Tx B2B=2
  7)             <---- Grant Request
 8)                           <------- FC packet 3  Tx B2B=1
  9)             <---- Grant Request
10)                           <------- FC packet 4  Tx B2B=0
11)             <---- Grant Request
12) Time lapses - Variable depending on attached HBA type
13)                           <--------Link Reset(LR)
14)          Start 90ms "LR Rcvd B2B" timer
15)          "LR Rcvd B2B" timer expires
16)                            <--------NOS-------->

说明

本节介绍前面的输出:

  1. FC设备以FC数据包的形式传输到入口端口,该端口以出口端口为目的地。
  2. MDS入口线卡(LC)端口确定目标索引(DI),并将授权请求传输到主用Supervisor上的仲裁器(Bellagio2)。
  3. 仲裁器向入口端口发回Grant,允许其通过XBAR将FC数据包1传输到出口端口。
  4. 入口LC通过XBAR将FC数据包1传输到出口端口。 这使入口缓冲区可用。
  5. 入口端口将R_RDY传输回FC设备,以补充信用。

    :前五个步骤在不发生拥塞时是典型的。此时假设出口端口队列已满,无法接收任何其他数据包。


  6. FC设备将FC数据包2传输到入口端口,目标为出口端口。
  7. MDS入口LC端口确定DI,并将授权请求发送到主用Supervisor上的仲裁器(Bellagio2)。
  8. FC设备将FC数据包3传输到入口端口,目标为出口端口。
  9. MDS入口LC端口确定DI,并将授权请求发送到主用Supervisor上的仲裁器(Bellagio2)。
  10. FC设备将FC数据包4传输到入口端口,目标为出口端口。
  11. MDS入口LC端口确定DI,并将授权请求发送到主用Supervisor上的仲裁器(Bellagio2)。
  12. 时间会过期,因连接的HBA类型而异。
  13. Tx B2B=0一段时间后,FC设备启动信用丢失恢复,并传输链路重置(LR)。
  14. 当入口端口收到LR时,它会检查其入口缓冲区,并确定至少有一个数据包排队。然后启动90毫秒LR Rcvd B2B计时器。
  15. 如果收到授权,并且三个FC数据包被传输到出口端口,则取消LR Rcvd B2B计时器,并将链路重置响应(LRR)发送回FC设备。但是,在这种情况下,出口端口仍然拥塞,三个FC数据包在入口端口上保持排队状态。LR Rcvd B2B计时器过期,并且LRR不会传输回FC设备。
  16. 入口端口和FC设备都通过传输非操作序列来启动链路故障。

解决方案

如果链路失败并显示LR Rcvd B2BLink failure Link Reset failed non-empty recv queue消息,则发生故障的端口不是瓶颈的原因,只受到缓慢/卡滞端口的影响。要确定导致链路故障的慢/阻塞端口,请完成以下步骤:

  1. 确定是否有多条链路由于上述问题而发生故障。 如果多条链路几乎同时发生故障,则可能会出现问题,因为所有端口都会尝试将数据包传输到公共出口端口。
  2. 检查VSAN分区数据库,以查看相邻FC设备使用哪些设备进行分区。将这些端口映射到出口E或本地F端口。为了映射到出口E,端口使用show fspf internal route vsan <vsan> domain <dom>命令。要映射到本地F端口,请使用show flogi database vsan <vsan>命令。如果有多条链路与LR Rcvd B2B消息一起发生故障,则组合找到的出口E或本地F端口,并检查有无重叠。重叠可能是端口缓慢/停滞的原因。
  3. 检查步骤2中的端口,了解瓶颈迹象。这些 ISP 包括:

    • 信用损失(AK_FCP_CNTR_CREDIT_LOSS / FCP_SW_CNTR_CREDIT_LOSS)
    • 100毫秒Tx B2B零(AK_FCP_CNTR_TX_WT_AVG_B2B_ZERO / FCP_SW_CNTR_TX_WT_AVG_B2B_ZERO)
    • 超时丢弃(AK_FCP_CNTR_LAF_TOTAL_TIMEOUT_FRAMES / THB_TMM_TOLB_TIMEOUT_DROP_CNT / F16_TMM_TOLB_TIMEOUT_DROP_CNT)

  4. 如果确定慢速端口是出口E端口,则继续对FSPF下一跳接口指示的相邻交换机进行慢速排空故障排除。
  5. 如果确定缓慢/阻塞端口是FCIP链路或端口通道,则检查FCIP链路是否存在IP重新传输的迹象或其他问题(如链路故障)。输入show ips stats all命令以检查问题。

配置选项

以下是两个可能的系统配置选项:

相关信息