美文网首页
以太网卡故障定界定位方案设计

以太网卡故障定界定位方案设计

作者: robot_test_boy | 来源:发表于2022-08-11 00:14 被阅读0次

转载自华为服务支持的Eth网卡故障定界详细设计方案

网卡功能及接口
网卡的接口

在计算机系统内,网卡是CPU系统的外设,在服务器产品里面就是PCI外设,是CPU系统的网络IO接口,连接外部网络的通道。在交换网络里,网卡是个端节点(实际上端节点是计算机)。网卡实现报文收发功能,为CPU系统和OS提供服务。网卡有Firmware和Driver,可以看做是处理器小系统。

网卡系统侧端口是PCIe,与CPU系统连接网络侧端口是网络协议接口,目前应用的是Eth、FC、FCoE、IB;边带通信接口NC-SI,与设备管理系统连接;SMBus接口,与设备管理系统或者CPU系统连接;I2C接口,用于光模块、线缆管理;MDIO接口,用于管理外PHY。

网卡故障分析

网卡特性多,应用场景复杂无边界,与周边领域配套及耦合关系复杂,造成了其生态的脆弱性,问题点多,出问题概率大。网卡应用一旦出问题,最直接呈现的就是网络中断,业务受损,甚至挂死OS、宕机,影响很大。虽然故障原因不一定是网卡自身,但网卡常被做为故障排查的首要对象

目前应用的网卡,包括Eth网卡、FC HBA卡、FCoE CNA卡、IB HCA卡。

下文针对Eth网卡(下文简称为网卡)应用故障以及故障定界定位进行分析说明。

1. 网卡故障分类

按照不同维度,网卡卡故障分类不同。

按照故障位置进行分类,可以分为硬件问题、Firmware问题、Driver问题、OS及上层应用问题、接口器件问题、外部网络问题(例如交换机)。

按照故障现象及原因,也就是故障模式进行分类,可以分为连接中断问题、连接闪断问题、Firmware挂死问题、IO阻塞问题、OS挂死问题、丢帧问题等。

进行问题定界分析时,一般按照故障位置进行问题分类、定界。进行问题定位分析时,一般按照故障模式进行问题分类、定位。

2. 网卡应用的协议分层

网卡作为CPU的网络IO接口,其主要功能还是在Eth接口上。网卡的Eth接口特性,同样满足TCP/IP协议层次架构。结合网卡自身的硬件、Firmware、Driver的功能结构,可以得到网卡应用的协议分层结构,如图所示。

网卡应用的协议分层

网卡主要是处理物理层(PHY)码流、处理链路层(MAC)报文(帧)网络层、传输层协议由OS协议栈处理。从上图可以看到,网卡的PHY层模块主要完成物理层的编解码、AN(Auto Negotiation)、training、FEC等的处理,一般由网卡硬件和Firmware完成。网卡的MAC层模块主要完成Eth收发帧和链路层协议的处理,例如Pause、PFC、ETS、LLDP等,一般由Firmware和Driver完成。MDI层主要是光模块、线缆,或者背板PCB连接,与网卡的PHY层模块直接对接。

网卡对报文的处理,实质上在发送端,是对OS下发的报文(通过PCIe接口),提取payload并封装成Eth帧,进行发送,在接收端,把Eth帧分发到相应的队列,并通知OS来接收(通过PCIe接口)。

网卡会支持卸载特性,对TCP/UDP/IP报文进行卸载,实质是完成checksum offload、TSO、LRO等操作,并不是处理IP层、TCP/UDP层的协议,网卡不会对报文进行解析。网卡对报文头进行识别、匹配,目的只是根据匹配规则进行队列分发。部分网卡支持对一些链路层协议,例如LLDP、DCBX等,进行处理,即支持协议卸载功能。

3. 网卡故障定界定位难点

网卡应用复杂,问题多,故障频繁,但它的故障定界定位是很困难的,主要体现为几个方面。

1) 网卡Firmware是黑盒子,代码不开源。遇到问题只能依靠收集Firmware日志协助分析,但收集Firmware日志依赖厂家工具,不是所有厂家多支持,能支持的也只有部分OS及版本,而且Firmware日志只能由厂家解读,华为对商用网卡的Firmware日志没有分析能力。

2) 网卡没有告警机制。由于网卡是在OS下运用,而OS是开放的,所有OS都没有标准的外设告警接口设计,没有标准的带内带外通信接口,所以难以实现告警功能。网卡的Firmware、Driver自身检测到问题,也只能以日志形式进行记录。

3) 抓包操作对于网卡作用有限。不像交换机的转发模型,通过抓包就能比较入口与出口的报文差异进而分析问题。网卡发送端可以在外部网络进行抓包,但报文源头在OS,在OS上通过工具(例如tcpdump)抓包,难以直接对比报文差异来进行问题分析。网卡接收端报文是上送OS的,在OS上抓包是不完整的,主要是经过协议卸载(例如LLDP、DCBX、FIP)的报文无法抓取。

4) 网卡内部寄存器对外公开很有限,也没有提供查询接口,遇到问题难以像LSW、PHY芯片那样通过读取寄存器方式进行定位,尤其是PHY层链路连接的问题,无日志,无抓包,无寄存器查询方法。

5) 网卡与业务层相关的问题难定界。网卡很多特性应用,例如DPDK、SR-IOV、OVS  Offload,与业务层强耦合的,网卡提供数据收发通道,提供流表做队列分发,但网卡没有提供队列及buffer监控、查询,报文监控等机制,难以证明是否网卡自身丢了帧造成性能下降。

4. 网卡故障定界能力提升思路

网卡问题要实现定位,是高度依赖厂家的,因为芯片硬件内部逻辑、Firmware、Driver (Linux Driver能看到源码)对用户是透明的,只有厂家自己清楚。如果是涉及业务层、OS层的特性应用问题,也对业务软件、OS(Linux能看到源码)强依赖。因此,网卡问题根因定位、精确定位的能力基本无法具备。而重点要解决的是网卡问题准确定界,以收敛范围,聚焦方向,避免发散。因此,本文侧重点是按照问题定界的思路,以故障位置进行分类,分析和确定各类问题的定界方法,实现能力提升和问题定界率的提升。

MDI层问题PHY层问题Firmware问题Driver问题OS层问题外部网络问题

网卡故障定界方案

根据前述的网卡问题定界思路,下文按照具体的故障模式进行问题分类,详细分析每种问题类的故障定界方案。问题类主要来源于已知的网上问题、测试问题,以及部分通过FMEA分析理论推导的问题。方案分析重点是说明问题定界的方法,即通过什么关键信息对问题进行判定,并分析是否适合使用工具化辅助的手段。

网口链路故障问题Tx hang问题、混杂模式设置丢失问题、VF参数设置问题、中断丢失问题DPDK性能下降问题Pause风暴问题

UEFI Driver版本不配套问题、Internal Error问题、CQE Error问题、Firmware not responding问题、Firmware recovery mode问题、NC-SI边带通信中断问题、PXE失败问题、DCBX失败问题、LLDP失败问题、Unrecoverable ECC问题、Unrecoverable  Error问题、PCIe链路故障问题

工具化辅助定位定界方案

相关文章

  • 以太网卡故障定界定位方案设计

    转载自华为服务支持的Eth网卡故障定界详细设计方案[https://support-it.huawei.com/d...

  • 配网故障定位

    配网故障定位技术,解决配网故障时的故障位置定位功能。

  • 网卡故障定界工具方案

    转载自华为服务支持的 网卡典型场景专题 > Eth网卡故障定界详细设计方案 > 工具化辅助方案[https://s...

  • 故障定位

    专家系统,大数据分析和迭代算法修正。

  • 故障定位继续

    2019.11.22日,初步完成配网故障定位系统开发。启动单相接地故障定位研究。

  • 工程师意识

    线上故障复盘总结得出,引发故障的原因中,变更占比100%,其中代码逻辑占比45%,方案设计占比15%。“变更是万恶...

  • 数据和数学

    故障定位:数据、数学、速度 成功

  • 睿乔电缆教您如何查找电缆故障点

    电缆故障的发生伴随电缆的敷设使用而产生,电缆故障的定位随电缆敷设方式的不同,其定位难度在逐步加大。故障性质简单时,...

  • SDH传输系统故障的原因及分析

    SDH传输系统的日常维护工作经常要求我们对各类故障进行定位并及时排除。SDH传输系统故障定位最关键的是将故障点准确...

  • SDH传输系统故障的原因及分析

    SDH传输系统的日常维护工作经常要求我们对各类故障进行定位并及时排除。SDH传输系统故障定位最关键的是将故障点准确...

网友评论

      本文标题:以太网卡故障定界定位方案设计

      本文链接:https://www.haomeiwen.com/subject/urapwrtx.html