交换芯片通道故障的检测方法和分布式机架交换机与流程

文档序号:18009365发布日期:2019-06-25 23:48阅读:279来源:国知局
交换芯片通道故障的检测方法和分布式机架交换机与流程

本发明涉及通信领域,尤其涉及一种交换芯片通道故障的检测方法和分布式机架交换机。



背景技术:

分布式机架交换机中通常将控制单元、业务单元、交换矩阵做成独立的板卡,例如控制板卡、业务板卡和交换矩阵板卡等。业务板卡和交换矩阵板卡通常包含中央处理器(centralprocessunit,cpu)和交换芯片。交换芯片之间通常以内部连线进行连接,构成交换芯片之间的数据通道。交换芯片之间的通道提供了数据转发的基础,因此其通道的运行状态非常重要。为此,在软件系统中一般都会启用专门的软件模块来进行通道状态的检测和修复处理。

在通常的检测方案中,如图1所示,源板卡10的cpus将检测报文发送给交换芯片chips,chips将检测报文从通道发送给目的板卡20的交换芯片chipd。chipd收到检测报文之后,上交检测报文给目的板卡20的cpud。反向地,cpud通过chipd、chips将检测报文发送回cpus。通过这个过程,cpus收到了自己发出的检测报文,从而判断交换芯片chips与chipd之间的通道是双向正常的。

通过上述的流程可以看到,除了发起检测的cpus、chips和chipd参与外,还需要目的板卡20的cpud参与完成检测过程,当目的板卡20的cpud比较繁忙时,cpus在规定的时间内收不到返回的检测报文,误判通道出现状态异常。并且,如果chips和chipd之间有多条物理通道,cpus需要针对每条通道发送检测报文,当chips与chipd之间的通道数量较多时,cpus和cpud需要发送和接收的检测报文数量与通道数量相同,cpu的负荷会比较重。



技术实现要素:

本申请的实施例提供一种交换芯片通道故障的检测方法和分布式机架交换机,用于降低通道故障检测时的cpu负荷。

为达到上述目的,本申请的实施例采用如下技术方案:

第一方面,提供了一种交换芯片通道故障的检测方法,应用于分布式机架交换机,所述交换机包括源板卡和目的板卡,所述源板卡上设置有源中央处理器cpu和源交换芯片,所述目的板卡上设置有目的交换芯片,所述源交换芯片与所述目的交换芯片之间包括至少一个通道组,所述通道组包括一个或多个通道,该方法包括:

所述源cpu控制所述源交换芯片,通过所述通道组中的一个通道向所述目的交换芯片发送检测报文;

如果所述目的交换芯片从所述一个通道接收所述检测报文,则从所述一个通道返回所述检测报文;

如果所述源交换芯片从所述一个通道接收所述检测报文,则统计所述一个通道接收到检测报文的次数,并通过所述通道组中的下一通道向所述目的交换芯片发送所述检测报文;如果所述一个通道为所述通道组中最后一个通道,则将所述检测报文返回给所述源cpu;

所述源cpu根据是否接收到所述检测报文以及所述通道组中各个通道接收到检测报文的次数判断通道是否发生故障。

第二方面,提供了一种分布式机架交换机,包括:源板卡和目的板卡,所述源板卡上设置有源中央处理器cpu和源交换芯片,所述目的板卡上设置有目的交换芯片,所述源交换芯片与所述目的交换芯片之间包括一个或多个通道,

所述源cpu用于,控制所述源交换芯片,通过所述通道组中的一个通道向所述目的交换芯片发送检测报文;

所述目的交换芯片,用于如果从所述一个通道接收所述检测报文,则从所述一个通道返回所述检测报文;

所述源交换芯片,用于如果从所述一个通道接收所述检测报文,则统计所述一个通道接收到检测报文的次数,并通过所述通道组中的下一通道向所述目的交换芯片发送所述检测报文;如果所述一个通道为所述通道组中最后一个通道,则将所述检测报文返回给所述源cpu;

所述源cpu,还用于根据是否接收到所述检测报文以及所述通道组中各个通道接收到检测报文的次数判断通道是否发生故障。

第三方面,提供了一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当被计算机执行时使所述计算机执行第一方面所述的方法。

本申请实施例提供的交换芯片通道故障的检测方法和分布式机架交换机,首先,目的板卡的cpu不用参加检测过程,其负荷为0。其次,源板卡的通道检测结果不再受目的板卡的cpu的工作状态影响。而在原来的方案中,可能由于目的板卡的cpu工作繁忙,不能及时回应检测报文。使得源端板卡的通道检测模块的检测时间超时,误认为通道异常,将进行转发通道切换或者复位,最终此误报将会影响数据的正常转发。最后,源端板卡的检测模块通过cpu发送和接收一次报文可完成一组通道的状态检测,提升了检测效率,并且与原来的检测方式相比能较大程度减轻了源cpu的负荷。综上所述,本申请可以降低通道故障检测时的cpu负荷。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1为本申请的实施例提供的分布式机架交换机的结构示意图一;

图2为本申请的实施例提供的分布式机架交换机的结构示意图二;

图3为本申请的实施例提供的交换芯片通道故障的检测方法的流程示意图;

图4为本申请的实施例提供的分布式机架交换机的报文流向示意图。

具体实施方式

下面结合附图,对本申请的实施例进行描述。

本申请实施例中,交换芯片标识(chipid),用于表示交换芯片的标识。通道(channel),用于表示交换芯片之间直接相连的物理通道。通道标识(channelid),用于标记交换芯片之间直接相连的通道。通道组(channelgroup),用于表示两颗交换芯片之间的通道集合,可能包括一个或者一个以上的通道。通道组标识(channelgroupid),用于表示一个通道组,可以用通道组中第一个通道的通道标识来表示。

参照图2中所示,本申请实施例提供了一种分布式机架交换机,包括:控制板卡30、源板卡10和目的板卡20。源板卡10作为检测发起者,目的板卡20作为检测发起者的对联板卡。控制板卡30上设置有控制cpu——cpuc。源板卡10上设置有源cpu——cpus和源交换芯片chips。目的板卡20上设置有目的cpu——cpud和目的交换芯片chipd。源交换芯片chips与目的交换芯片chipd之间包括至少一个通道组channelgroup,该通道组包括一个或多个通道channel。

cpuc的功能:

控制板卡30的cpuc统一管理整个分布式机架交换机,将业务板卡和交换矩阵板卡上的交换芯片统一进行标识,形成芯片标识表,关键字段为{chipi},其中,i表示交换芯片的标识。

对各个交换芯片之间的通道进行标识,形成通道标识表,关键字段为{chipi,chipk,channelid},其中,i和k表示交换芯片的标识chipid,{chipi,chipk,channelid}表示chipi与chipk之间的通道,标识为channelid。

对通道{chipi,chipk,channelid}进行编组形成通道组表。将{chipi,chipk}相同的channelid编为一组channelgroup,channelgroupid可以使用该组中channelid的最小值。为了简洁起见,channelid和chipid都连续标识。

cpuc完成了这些标识信息之后,将相关的芯片标识表、通道标识表和通道组表通过控制通道发送给源板卡10的cpus和目的板卡20的cpud。

cpud的功能:

cpud收到来自cpuc的芯片标识表、通道标识表和通道组表后,将对所在板卡的交换芯片进行转发配置。cpud查找芯片标识表中的所有芯片,记录与其直接有物理连接的交换芯片集合。当从某个channel收到检测报文,且检测报文的目的交换芯片为与其直接相连的交换芯片时,将此检测报文通过该channel转发回去,也就是从收到该检测报文的channel“回弹”检测报文。

cpus的功能:

cpus收到来自cpuc的芯片标识表、通道标识表和通道组表后,将对所在板卡的交换芯片进行转发配置。首先,将进行通道状态检测的channel按照本端芯片和与其直接物理相连的对端芯片进行分组和标识,形成列表{chips,chipd,1},…,{chips,chipd,k-1},{chips,chipd,k},…,{chips,chipd,n},作为一组通道组channelgroup。chips为本端的交换芯片标识,chipd为目的板卡的交换芯片标识。n为这两颗芯片之间的通道总数。由于源板卡10上可能含有多颗交换芯片,也可能目的板卡20上有多颗交换芯片,也可能存在多张目的板卡20的多颗芯片,因此cpus根据情况需要处理多个channel组。

下面描述cpus对于一个通道组的配置过程:

cpus对通道1,…,n-1进行转发表项的配置。使得当chips从这些channel收到目的芯片为chips的检测报文时,将该检测报文从通道组的下一channel转发出去。

cpus对第n条通道进行转发表项配置。使得当chips从第n个通道收到目的芯片为chips的检测报文时,将该检测报文直接上交到所在板卡的cpus。

除了配置转发行为以外,cpus还包括配置交换芯片chips对通道1,2,…,n的统计功能。当chips从对应通道收到目的芯片为chips的检测报文时,需要对该报文进行统计。如果有多个通道组,则循环配置各个通道组。

参照图3中所示,本申请实施例提供的交换芯片通道故障的检测方法,包括:

s101、源cpu控制源交换芯片,通过通道组中的一个通道向目的交换芯片发送检测报文

源cpu以源板卡10的cpus为例进行说明。cpus进行检测报文的封装。检测报文中包括下述字段:检测类型、目的交换芯片标识chipid和通道组标识channelgroupid。其中,检测类型设置为指定的报文检测类型。目的交换芯片标识chipid设置为源板卡10的交换芯片chips对应的chipid。通道组标识channelgroupid设置为需要检测的通道组中第1~n个通道的第1个通道的通道标识channelid。

cpus要求交换芯片chips从上述指定的通道channel将检测报文发送出去。示例性的,参照图4中所示,cpus将检测报文发送给交换芯片chips的过程如箭头a所示。chips将检测报文发送给chipd的过程如箭头1所示。

s102、如果目的交换芯片从一个通道接收检测报文,则从该一个通道返回检测报文。

chipd收到该检测报文以后,解析得到如下信息:通道检测报文,目的交换芯片为chips,channelgropuid。根据chipd的配置,将此报文通过接收此报文的通道channel“回弹”(重新发送)给chips,具体参照图4中的箭头1’。对chipd来说,对于其余通道2,…,n收到该检测报文的行为都是类似的,将检测报文通过接收报文的通道channel回弹给chips,如图4中的箭头k-1’、k’、n’所示。

s103、如果源交换芯片从该一个通道接收检测报文,则统计该一个通道接收到检测报文的次数,并通过通道组中的下一通道向目的交换芯片发送检测报文;如果该一个通道为通道组中最后一个通道,则将检测报文返回给源cpu。

当chips从channel1收到chipd“回弹”的检测报文以后,通过解析发现该报文目的为chips的channelgroup的检测报文,则将检测报文从channelgroup中的下一个通道channel重新发送给chipd,即按照通道组中通道顺序依次发送检测报文。对于通过通道2,…,n-1发送此检测报文,chips的行为与通过通道1发送此检测报文是类似的,具体参照图4中的箭头k-1,k,n等所示。

当chips从通道组中最后一个通道channeln接收到此检测报文时,通过解析发现该报文目的为chips的channelgroup的检测报文,则根据配置将此报文上交给cpus,具体参照图4中的箭头a’所示。chips除了转发报文以外,当从通道1,…,n收到检测报文后,还需要针对接收到检测报文的次数进行统计。

s104、源cpu根据是否接收到所述检测报文以及所述通道组中各个通道接收到检测报文的次数判断通道是否发生故障。

具体的,如果在一定时间内源cpu未接收到检测报文,则判断该通道组发生故障;并可以根据通道组中各个通道接收到检测报文的次数判断通道组中哪一个通道发生故障。

当cpus收到来自chips的检测报文以后,通过解析得到报文的信息包括:目的芯片为chips,通道组为channgelgropuid的检测报文。到此为止,channelgroupid对应的channel1,…,n和cpu与chips之间通道双向都是正常的。一次检测过程结束。

cpus通过设置超时时间t来判定通道是否存在状态异常。t需要根据cpus与chips,chips与chipd之间的多次发送延时进行设置。当cpus发送了一个检测报文以后,超过了时间t后仍然未收到报文,则此次检测失败,判定对应的channelgroup工作状态异常,需要进行修复处理。

其中,因为channelgroup中有n个通道,是哪个通道发生了状态异常,需要通过进一步确定。具体的,如果通道组中前一通道接收到检测报文的次数大于后一通道接收到检测报文的次数,则判断该后一通道发生故障;如果通道组中所有通道接收到检测报文的次数相同,则判断cpus与chips之间的通道发生故障。例如cpus从chips中读取通道1,2,…,k-1,k,…,n收到的对应所在通道组的检测报文的次数。如果通道k的收包统计值<通道k-1的收包统计值,则判定通道k发生了故障,需要进行相应的修复处理。如果通道1,…,n的收包统计值都相等,那么说明cpus和chips之间的该通道组出现了故障,需要进行修复。

cpus在修复过程中,需要对通道1,…,n的接收报文次数清零,使得能够支持下一个阶段的检测过程。

另外,如果源cpu确定通道组中一通道发生故障,则将该一通道移除出通道组,待故障恢复后将该一通道重新加入通道组,使得源板卡在转发检测报文时,跳过出现状态异常的通道。例如,当通道组中的通道k出现故障时,使得通道k+1,…,n在当前检测过程中没有被检测到。因此需要将通道k隔离。具体的,将通道k从该通道组中移除,在源板卡上针对该通道组重新进行交换芯片chips的配置。配置后的效果是,当从通道k-1收到目的芯片为chips且为该通道组的检测报文时,不再通过通道k转发,而是通过通道k+1转发给目的板卡chipd。通过此隔离操作,在后续的检测过程将针对通道组的剩余所有通道进行状态检测。

被隔离的通道k经过修复处理且状态正常之后,重新加入原通道组,使得源板卡在转发检测报文时,也从修复正常的通道转发检测报文。具体的,在源板卡上针对原通道组重新进行交换芯片chips的配置。配置后的效果是,当从通道k-1收到目的芯片为chips且为该通道组的检测报文时,恢复通过通道k转发检测报文。

在上面的流程描述中是按照通道状态检测的角色来描述的。每张板卡都可以同时承担源板卡和目的板卡的双重角色,即分别通过两个角色进行计算和对交换芯片进行相应的配置。

本申请实施例提供的交换芯片通道故障的检测方法和分布式机架交换机,首先,目的板卡的cpu不用参加检测过程,其负荷为0。其次,源板卡的通道检测结果不再受目的板卡的cpu的工作状态影响。而在原来的方案中,可能由于目的板卡的cpu工作繁忙,不能及时回应检测报文。使得源端板卡的通道检测模块的检测时间超时,误认为通道异常,将进行转发通道切换或者复位,最终此误报将会影响数据的正常转发。最后,源端板卡的检测模块通过cpu发送和接收一次报文可完成一组通道的状态检测,提升了检测效率,并且与原来的检测方式相比能较大程度减轻了源cpu的负荷。综上所述,本申请可以降低通道故障检测时的cpu负荷。

综合上述,此方法的参与部件数量更少,源和目的板卡的cpu负荷明显降低。检测方法效率更高,造成误判的可能性更小,可靠性更高。

本申请实施例提供一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当被计算机执行时使所述计算机执行如图3所述的方法。

应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriberline,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solidstatedisk,ssd))等。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1