链路修复方法、装置、电子设备及存储介质与流程

文档序号:20440384发布日期:2020-04-17 22:22阅读:131来源:国知局
链路修复方法、装置、电子设备及存储介质与流程

本申请涉及通信技术领域,具体而言,涉及一种链路修复方法、装置、电子设备及存储介质。



背景技术:

现有低端分布式网络设备受限于成本,通常板卡间通信的背板连线较少,一般是只有一个高速端口连接,这种情况下,如果这个高速端口出现异常,会导致两张板卡间数据通道彻底断开,导致数据转发异常。

当前已有解决方案,一种是通过将端口禁用再启用来尝试修复端口,另外一种就是对端口进行尝试降速来修复端口,但是这两种方式的修复能力是有限的,假设端口其中一条通道出了故障,那么无论是将端口禁用再启用,还是将端口降速,都是不能将端口修复的。



技术实现要素:

有鉴于此,本申请实施例的目的在于提供一种链路修复方法、装置、电子设备及存储介质,以改善现有技术中存在的无法修复卡间通信的背板连接通道出现故障的问题。

本实施例提供了一种链路修复方法,所述方法包括:a.在两个板卡通过背板连接的内部端口之间的链路异常时,将所述链路拆分为n条子链路,n为大于等于2的整数;b.记录所述n条子链路的有效总带宽,将所述n条子链路对应的拆分方式作为待选修复方式;c.将n增加预设梯度值后重复执行步骤a至步骤b,直至拆分出的所有子链路的有效总带宽小于上一次拆分出的所有子链路的有效总带宽;d.在已获取的所有待选修复方式中,选择有效总带宽最大的待选修复方式对所述链路进行修复。

在上述实现方式中,通过梯度式的拆分后保留能够正常通信的子链路来对链路进行修复,在链路中一条通道出现故障时也能够对链路进行修复,通过通信正常的子链路进行数据传输;同时,在梯度式的多种子链路拆分方式中选取有效总带宽最大的拆分方式作为链路修复方式,能够保证对带宽的最大利用率,提高了修复后链路可用带宽。

可选地,在步骤d之前,所述方法还包括:e.将所述链路的速率减少预设速率值;f.记录所述链路的有效总带宽,并将速率减少所述预设速率值的降速方式作为待选修复方式;g.重复执行步骤e至步骤f,直至所述链路的有效总带宽小于上一次速率减少后所述链路的有效总带宽。

在上述实现方式中,除了对链路进行梯度拆分,还通过降速方式对链路进行修复,提供了更多的链路修复方式,确定降速修复方式是否能够得到有效总带宽更多的修复方式,进一步提高了修复后链路的可用带宽。

可选地,步骤b还包括:记录所述n条子链路的有效链路个数;步骤d包括:当已获取的所有待选修复方式中,存在多个待选修复方式的有效总带宽最大且相同时,在所述多个待选修复方式中选择有效链路个数最少的待选修复方式对所述链路进行修复。

在上述实现方式中,在多个待选修复方式的有效总带宽均为最大时,选择有效链路数量最少的待选修复方式进行链路修复,能够最大程度地减少负载不均衡带来的丢包。

可选地,在步骤a之前,所述方法还包括:通过链路保活检测所述端口之间的链路是否断开。

可选地,步骤a还包括:对每条子链路进行链路保活。

可选地,步骤e还包括:对速率减少所述预设速率值后的所述链路进行链路保活。

在上述实现方式中,通过链路保活技术防止出现物理上传数据转发异常的问题,提高了异常处理能力。

本申请实施例还提供了一种链路修复装置,所述装置包括:链路拆分模块,用于在两个板卡通过背板连接的内部端口之间的链路异常时,将所述链路拆分为n条子链路,n为大于等于2的整数;第一记录模块,用于记录所述n条子链路的有效总带宽,将所述n条子链路对应的拆分方式作为待选修复方式;第一循环模块,用于将n增加预设梯度值后重复执行将所述链路拆分为n条子链路,至记录所述n条子链路的有效总带宽,将所述n条子链路对应的拆分方式作为待选修复方式的步骤,直至拆分出的所有子链路的有效总带宽小于上一次拆分出的所有子链路的有效总带宽;复执行模块,用于在已获取的所有待选修复方式中,选择有效总带宽最大的待选修复方式对所述链路进行修复。

在上述实现方式中,通过梯度式的拆分后保留能够正常通信的子链路来对链路进行修复,在链路中一条通道出现故障时也能够对链路进行修复,通过通信正常的子链路进行数据传输;同时,在梯度式的多种子链路拆分方式中选取有效总带宽最大的拆分方式作为链路修复方式,能够保证对带宽的最大利用率,提高了修复后链路可用带宽。

可选地,所述装置还包括:降速模块,用于将所述链路的速率减少预设速率值;第二记录模块,用于记录所述链路的有效总带宽,并将速率减少所述预设速率值的降速方式作为待选修复方式;第二循环模块,用于重复执行将所述链路的速率减少预设速率值的步骤,直至所述链路的有效总带宽小于上一次速率减少后所述链路的有效总带宽,并将每种降速方式作为待选修复方式的步骤。

在上述实现方式中,除了对链路进行梯度拆分,还通过降速方式对链路进行修复,提供了更多的链路修复方式,确定降速修复方式是否能够得到有效总带宽更多的修复方式,进一步提高了修复后链路的可用带宽。

可选地,所述第一记录模块,还用于记录所述n条子链路的有效链路个数;所述修复执行模块,还用于当已获取的所有待选修复方式中,存在多个待选修复方式的有效总带宽最大且相同时,在所述多个待选修复方式中选择有效链路个数最少的待选修复方式对所述链路进行修复。

在上述实现方式中,在多个待选修复方式的有效总带宽均为最大时,选择有效链路数量最少的待选修复方式进行链路修复,能够最大程度地减少负载不均衡带来的丢包。

可选地,所述装置还包括:链路保活模块,用于通过链路保活检测所述端口之间的链路是否断开。

可选地,所述链路保活模块还用于:对每条子链路进行链路保活。

可选地,所述链路保活模块还用于:对速率减少所述预设速率值后的所述链路进行链路保活。

在上述实现方式中,通过链路保活技术防止出现物理上传数据转发异常的问题,提高了异常处理能力。

本申请实施例还提供了一种电子设备,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器读取并运行所述程序指令时,执行上述任一链路修复方法。

本申请实施例还提供了一种存储介质,所述存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述任一链路修复方法。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种链路修复方法的流程示意图;

图2为本申请实施例提供的一种链路拆分示意图;

图3为本申请实施例提供的又一种链路拆分示意图;

图4为本申请实施例提供的一种降速修复步骤的流程示意图;

图5为本申请实施例提供的一种链路拆分及降速修复方式的结果示意图;

图6为本申请实施例提供的一种链路修复装置的模块示意图。

图标:20-链路修复装置;21-链路拆分模块;22-第一记录模块;23-第一循环模块;24-修复执行模块。

具体实施方式

下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行描述。

经本申请人研究发现,在成本或条件受限时,例如在低成本分布式网络设备中,背板之间经常通过较少链路进行连接。其中,在两个板卡或其他通信部件之间仅通过各自的高速端口构成一条链路,如果高速端口间出现异常,就会导致两个通信部件或更多通信部件间的数据通道彻底断开,而现有的链路修复方式通常采用降速修复以及对端口禁用再启用的原理对链路进行修复,在链路中端口之间的一条通道(lane)出现故障时上述两种方式均不能实现链路通信功能的恢复。

为了解决上述问题,本申请实施例提供了一种链路修复方法。请参考图1,图1为本申请实施例提供的一种链路修复方法的流程示意图,该方法的具体步骤可以如下:

步骤s11:在两个板卡通过背板连接的内部端口之间的链路断开时,将链路拆分为n条子链路。

可选地,本实施例中的链路断开指的是两张板卡或其他通信元件之间单链路连接,端口之间的通道断开导致的降速修复或端口禁止再启用均无法修复的故障。

上述n条子链路中的n为梯度拆分的初始拆分数量,可选地,为了提供更多、更全面的拆分方式以获得较好的拆分修复效果,本实施例中的n可以取较小的数值,例如2、3、4等。一般地,考虑到链路拆分时将链路拆分为偶数条子链路更容易进行带宽分配及相关操作,n在普遍情况下可以选用偶数值。同时,n的最大值由具体硬件参数限定。

本实施例以板卡1和板卡2在背板上的通过板卡1的端口port1和板卡2的端口port2进行卡间通信为例,其链路速率为100gbps,请参考图2,图2为本申请实施例提供的一种链路拆分示意图,图2的上、下部分别示出了拆分前和拆分后的链路数据传输情况,未拆分时该链路的理论带宽为100gbps,在将其拆分为2条子链路时,每条子路径的理论带宽为50gbps。

可选地,本实施例中判断两个端口之间的链路是否断开,可以是通过链路保活技术实现。链路保活机制又称心跳机制,就是定时发送一个自定义的结构体(心跳包),让对方知道自己还活着,以确保连接的有效性的机制。例如端口1向端口2发送特定报文,端口2接收到该特定报文后将其发送回端口1,端口1接收到自身发给端口2的特定报文时,则说明端口1到端口2再到端口1是正常连通的,则端口1和端口2之间的链路正常。

步骤s12:记录n条子链路的有效总带宽,将n条子链路对应的拆分方式作为待选修复方式。

n条子链路的有效总带宽为n条子链路中所有通信正常的子链路的有效带宽的和。例如,板卡1和板卡2通过板卡1的端口port1和板卡2的端口port2进行数据传输,其链路速率为100gbps,在port1和port2的100gbps链路出现故障时,n=2,将板卡1的port1拆分为带宽分别为50gbps的port1和port3,将板卡2的port2拆分为带宽分别为50gbps的port2和port4,拆分后的port1和port2之间为带宽为50gbps的子链路,拆分后的port3和port4之间为带宽为50gbps的子链路。若port1和port2之间的子链路能够正常通信,port3和port4之间的子链路为故障状态,则板卡1和板卡2之间的有效总带宽为50gbps,将其记录为待修复方式1。

步骤s13:将n增加预设梯度值后重复步骤s11至步骤s12,直至每条子链路的有效带宽小于上一次拆分出的所有子链路的有效总带宽。

应当理解的是,预设梯度值可以是任意数值,为了尽可能获取多种拆分方式并从中选取最优的待选修复方式,预设梯度值可以设置为1、2等较小值。

对链路的拆分还可能受到板卡中交换芯片的链路中通道数量的限制,例如某链路的通道数量为4时,该链路最多能够被拆分为4条子链路,每条通道对应一条子链路。因此,除了第一预设带宽值外,在进行链路拆分时还需要使子链路的数量小于或等于链路中通道数量。

继续以板卡1和板卡2为例,请参考图3,图3为本申请实施例提供的又一种链路拆分示意图。如图3所示,预设梯度值可以为2,将n+2=4,则将板卡1的port1拆分为带宽分别为25gbps的port1、port3、port5、port7,将板卡2的port2拆分为带宽分别为25gbps的port2、port4、port6、port8,拆分后的port1和port2之间、port3和port4之间、port5和port6之间、port7和port8之间分别为带宽25gbps的子链路。若拆分后的port1和port2之间的子链路能够正常通信,port3和port4之间的子链路为故障状态,port5和port6之间的子链路能够正常通信,port7和port8之间的子链路为故障状态,则板卡1和板卡2之间的有效总带宽为50gbps,将其记录为待修复方式2。

作为一种可选的实施方式,每次拆分链路并记录待选修复方式及其有效总带宽后,本实施例可以将子链路重新合并为原链路,以便进行下次拆分,也可以不进行链路重组,直接对上一次拆分获得子链路继续进行拆分。

步骤s14:在已获取的所有待选修复方式中,选择有效总带宽最大的待选修复方式对链路进行修复。

应当注意的是,本实施例还可以在每次进行链路拆分后记录有效链路的个数,可能存在有效总带宽最大且相同的多种待选修复方式,在这种情况下,在多个待选修复方式中选择有效链路个数最少的待选修复方式对链路进行修复。

例如,上述示例中待选修复方式1和待选修复方式2的有效总带宽相同,即最大值均为50gbps。进一步地,待选修复方式1的有效链路个数为1,待选修复方式2的有效链路为2,则选取有效链路个数较少的待选修复方式1对链路进行修复。

本实施例在步骤s11-s14中,通过梯度式的拆分后保留能够正常通信的子链路来对链路进行修复,在链路中一条通道出现故障时也能够对链路进行修复,通过通信正常的子链路进行数据传输。同时,在梯度式的多种子链路拆分方式中选取有效总带宽最大的拆分方式作为链路修复方式,能够保证对带宽的最大利用率,提高了修复后链路可用带宽。进一步地,在多个待选修复方式的有效总带宽均为最大时,选择有效链路数量最少的待选修复方式进行链路修复,能够最大程度地减少负载不均衡带来的丢包。

作为一种可选的实施方式,本实施例在步骤s14之前,还可以对未拆分的链路进行降速处理。请参考图4,图4为本申请实施例提供的一种降速修复步骤的流程示意图,其具体子步骤可以包括:

步骤s15:将链路的速率减少预设速率值。

上述步骤s15中进行减速的链路为未拆分的链路,预设速率值可以根据链路的具体带宽设定,可以是链路有效总带宽的固定百分比的数值,也可以是与有效总带宽对应的一个指定数值。

应当理解的是,为了通过降速修复获取更多、更全面的待选修复方式,预设速率值可以设置为相对于链路的有效总带宽较小的值。

步骤s16:记录链路的有效总带宽,并将速率减少预设速率值的降速方式作为待选修复方式。

通过降速修复获取待选修复方式时,有效链路数量均为1,则不需要对有效链路数量进行记录。

步骤s17:重复执行步骤s15至步骤s17,直至链路的有效总带宽小于上一次速率减少后链路的有效总带宽。

应当理解的是,执行步骤s15-s17通过降速修复获取多种待选修复方式的同时,也采用步骤s11-s13通过链路拆分获取了多种待选修复方式,在执行完步骤s11-s13以及s15-s17后,再执行步骤s14,在已获取的所有待选修复方式中,选择有效总带宽最大的待选修复方式对链路进行修复。

同时,本实施例在已获取的所有待选修复方式中,存在多个待选修复方式的有效总带宽最大且相同时,在多个待选修复方式中选择有效链路个数最少的待选修复方式对链路进行修复。

可选地,针对步骤s11-s13中的待选修复方式拆分获得的子链路,在子链路出现故障时,也可以尝试通过降速修复方式对子链路进行修复,将降速修复后该子链路的有效带宽记录入有效总带宽即可。请参考图5,图5为本申请实施例提供的一种链路拆分及降速修复方式的结果示意图。如图5所示,在将板卡1的port1拆分为带宽分别为25gbps的port1、port3、port5、port7,将板卡2的port2拆分为带宽分别为25gbps的port2、port4、port6、port8,拆分后的port1和port2之间、port3和port4之间、port5和port6之间、port7和port8之间分别为带宽25gbps的子链路之后,发现四条子链路均为故障状态,则对四条子链路进行降速处理,将其速率降低至10gbps,四条子链路的通信状态恢复正常,则记录其有效总带宽为40gbps,有效链路个数为4,作为步骤s15中可供选择的待选修复方式之一进行记录。

本实施例在步骤s15-s17中,除了对链路进行梯度拆分,还通过降速方式对链路进行修复,提供了更多的链路修复方式,确定降速修复方式是否能够得到有效总带宽更多的修复方式,进一步提高了修复后链路的可用带宽值。

在本实施例的步骤s11对链路进行拆分时,以及步骤s15对链路进行降速时,还可以对拆分后的每条子链路以及降速后的链路进行链路保活,确认修复效果,从而通过链路保活技术防止出现物理上传数据转发异常的问题,提高了异常处理能力。

为了配合本实施例提供的上述链路修复方法,本实施例还提供了一种链路修复装置20。

请参考图6,图6为本申请实施例提供的一种链路修复装置的模块示意图。

链路修复装置20包括:

链路拆分模块21,用于在两个板卡通过背板连接的内部端口之间的链路异常时,将链路拆分为n条子链路,n为大于等于2的整数;

第一记录模块22,用于记录n条子链路的有效总带宽,将n条子链路对应的拆分方式作为待选修复方式;

第一循环模块23,用于将n增加预设梯度值后重复执行将链路拆分为n条子链路,至记录n条子链路的有效总带宽,将n条子链路对应的拆分方式作为待选修复方式的步骤,直至拆分出的所有子链路的有效总带宽小于上一次拆分出的所有子链路的有效总带宽;

修复执行模块24,用于在已获取的所有待选修复方式中,选择有效总带宽最大的待选修复方式对链路进行修复。

作为一种可选的实施方式,链路修复装置20还可以包括:

降速模块,用于将链路的速率减少预设速率值;

第二记录模块,用于记录链路的有效总带宽,并将速率减少预设速率值的降速方式作为待选修复方式;

第二循环模块,用于重复执行将链路的速率减少预设速率值的步骤,直至链路的有效总带宽小于上一次速率减少后链路的有效总带宽,并将每种降速方式作为待选修复方式的步骤。

可选地,第一记录模块22还可用于:记录n条子链路的有效链路个数。修复执行模块24还可用于:当已获取的所有待选修复方式中,存在多个待选修复方式的有效总带宽最大且相同时,在多个待选修复方式中选择有效链路个数最少的待选修复方式对链路进行修复。

可选地,链路修复装置20还可以包括链路保活模块,其用于:通过链路保活检测两个端口之间的链路是否断开;对每条子链路进行链路保活;以及对速率减少预设速率值后的链路进行链路保活。

本申请实施例还提供了一种电子设备,该电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器读取并运行所述程序指令时,执行本实施例提供的任一链路修复方法。

应当理解是,该电子设备可以是个人电脑(personalcomputer,pc)、平板电脑、智能手机、个人数字助理(personaldigitalassistant,pda)等具有逻辑计算功能的电子设备。

本申请实施例还提供了一种可读取存储介质,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本实施例提供的任一链路修复方法。

综上所述,本实施例提供了一种链路修复方法、装置、电子设备及存储介质,所述方法包括:a.在两个板卡通过背板连接的内部端口之间的链路异常时,将所述链路拆分为n条子链路,n为大于等于2的整数;b.记录所述n条子链路的有效总带宽,将所述n条子链路对应的拆分方式作为待选修复方式;c.将n增加预设梯度值后重复执行步骤a至步骤b,直至拆分出的所有子链路的有效总带宽小于上一次拆分出的所有子链路的有效总带宽;d.在已获取的所有待选修复方式中,选择有效总带宽最大的待选修复方式对所述链路进行修复。

在上述实现方式中,通过梯度式的拆分后保留能够正常通信的子链路来对链路进行修复,在链路中一条通道出现故障时也能够对链路进行修复,通过通信正常的子链路进行数据传输;同时,在梯度式的多种子链路拆分方式中选取有效总带宽最大的拆分方式作为链路修复方式,能够保证对带宽的最大利用率,提高了修复后链路可用带宽。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的框图显示了根据本申请的多个实施例的设备的可能实现的体系架构、功能和操作。在这点上,框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图中的每个方框、以及框图的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。因此本实施例还提供了一种可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行区块数据存储方法中任一项所述方法中的步骤。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

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

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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