发明内容
有鉴于此,本发明实施例提供一种避免链路聚合组状态震荡的方法及装置,用以解决现有技术中LACP链路聚合组状态的震荡,导致长时间丢包,业务出现中断的问题。
第一方面,本发明实施例提供一种避免链路聚合组状态震荡的方法,包括:
监测处于UP状态的LACP链路聚合组内成员链路的状态,所述成员链路包括活动成员链路和非活动成员链路;
当监测到所述LACP链路聚合组内成员链路的状态变化时,判断所述LACP链路聚合组内活动成员链路数是否小于预设的第一阈值;如果是,判断所述LACP链路聚合组内的活动成员链路数与可用的非活动成员链路数之和是否大于或等于预设的第二阈值;
若确定是,则将所述LACP链路聚合组的状态保持为UP状态;
其中,所述第二阈值小于等于所述第一阈值。
结合第一方面,在第一种可能的实现方式中,上述方法还包括:
启动定时器,以及在所述定时器超时前,监测所述LACP链路聚合组内成员链路的状态,若至少一个成员链路的状态发生变化,则判断所述LACP链路聚合组内的活动成员链路数与所述可用的非活动成员链路数之和是否小于所述第二阈值;
如果是,将所述LACP链路聚合组的状态调整为Down状态。
结合第一方面以及第一种可能的实现方式,在第二种可能的实现方式中,上述方法还包括:
所述定时器超时后,判断所述LACP链路聚合组内活动成员链路数是否小于所述第一阈值,如果是,将所述LACP链路聚合组的状态调整为Down状态。
结合第一方面以及上述可能的实现方式,在第三种可能的实现方式中,所述判断所述LACP链路聚合组内的活动成员链路数与可用的非活动成员链路数之和是否大于或等于预设的第二阈值之前,上述方法还包括:
监测所述LACP链路聚合组中非活动成员链路的状态,以及维护所述LACP链路聚合组内非活动成员链路的可用性信息。
第二方面,本发明实施例提供一种避免链路聚合组状态震荡的装置,包括:
监测单元,用于监测处于UP状态LACP链路聚合组内成员链路的状态,所述成员链路包括活动成员链路和非活动成员链路;
第一判断单元,用于在所述监测单元监测到所述LACP链路聚合组内成员链路的状态变化时,判断所述LACP链路聚合组内活动成员链路数是否小于预设的第一阈值;
第二判断单元,用于在所述第一判断单元确定所述LACP链路聚合组内活动成员链路数小于所述第一阈值时,判断所述LACP链路聚合组内的活动成员链路数与可用的非活动成员链路数之和是否大于或等于预设的第二阈值;
状态调整单元,用于在所述第二判断单元确定所述LACP链路聚合组内活动成员链路数与可用的非活动成员链路数之和大于或等于所述第二阈值时,将所述LACP链路聚合组的状态保持为UP状态;
其中,所述第二阈值小于等于所述第一阈值。
结合第二方面,在第一种可能的实现方式中,所述装置还包括:定时器监控单元,用于在所述状态调整单元将所述LACP链路聚合组的状态保持为UP之后,启动定时器;以及
在所述定时器超时前,所述监测单元还用于,监测所述LACP链路聚合组内成员链路的状态;
相应地,所述第二判断单元还用于,在所述监测单元监测到至少一个成员链路的状态发生变化,则判断所述LACP链路聚合组内的活动成员链路数与所述可用的非活动成员链路数之和是否小于所述第二阈值;
所述状态调整单元还用于,在所述第二判断单元确定所述LACP链路聚合组内活动成员链路数与可用的非活动成员链路数之和小于所述第二阈值时,将所述LACP链路聚合组的状态调整为Down状态。
结合第二方面以及第一种可能的实现方式中,在第二种可能的实现方式中,在所述定时器超时后,所述第一判断单元还用于,判断所述LACP链路聚合组内活动成员链路数是否小于所述第一阈值;
相应地,所述状态调整单元,还用于在所述第一判断单元确定所述LACP链路聚合组内活动成员链路数小于所述第一阈值,则将所述LACP链路聚合组的状态调整为Down状态。
结合第二方面以及上述可能的实现方式,在第三种可能的实现方式中,上述装置还包括:
维护单元,用于监测所述LACP链路聚合组中非活动成员链路的状态,以及维护所述LACP链路聚合组内非活动成员链路的可用性信息。
第三方面,本发明实施例还提供一种通信设备,该通信设备包括上述任一所述的避免链路聚合组状态震荡的装置。
由上述技术方案可知,本发明实施例的避免链路聚合组状态震荡的方法及装置,在LACP链路聚合组内成员链路的状态发生变化,且导致LACP链路聚合组内活动成员链路数小于预设的第一阈值时,并没有直接将LACP链路聚合组的状态变为Down状态,而是判断LACP链路聚合组内的活动成员链路数与可用的非活动成员链路数之和是否大于或等于预设的第二阈值,若是,则将所述LACP链路聚合组的状态保持为UP状态,进而避免了现有技术中LACP链路切换引起整个链路聚合组状态震荡,导致长时间丢包的问题,保证了业务的正常传输。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明的技术方案进行清楚、完整地描述。显然,下述的各个实施例都只是本发明一部分的实施例。基于本发明下述的各个实施例,本领域普通技术人员即使没有作出创造性劳动,也可以通过等效变换部分甚至全部的技术特征,而获得能够解决本发明技术问题,实现本发明技术效果的其它实施例,而这些变换而来的各个实施例显然并不脱离本发明所公开的范围。
图1示出了本发明一个实施例中的避免链路聚合组状态震荡的方法的流程示意图,本实施例中的避免链路聚合组状态震荡的方法包括:
101、监测处于UP状态的LACP链路聚合组内成员链路的状态,所述成员链路包括活动成员链路和非活动成员链路。
102、当监测到所述LACP链路聚合组内成员链路的状态变化时,判断所述LACP链路聚合组内活动成员链路数是否小于预设的第一阈值;如果是,执行103。
上述预设的第一阈值可为LACP链路聚合组内的最小活动成员链路数。
可选的,在上述102中,LACP链路聚合组内活动成员链路数大于或等于第一阈值,可能是LACP链路聚合组内非活动成员链路的状态变化,例如,在LACP链路聚合组内可用的非活动成员链路被激活。
103、判断所述LACP链路聚合组内的活动成员链路数与可用的非活动成员链路数之和是否大于或等于预设的第二阈值,若确定是,执行104。其中,上述预设的第二阈值小于或等于预设的第一阈值。
可选的,在本实施例中,可用的非活动成员链路为LACP链路聚合组内可以激活的非活动成员链路。
通常,预设的第二阈值可大于或等于1。上述的第一阈值和第二阈值可根据LACP链路聚合组内成员链路的数量进行设置,本实施例不做具体限定。
104、将LACP链路聚合组的状态保持为UP状态。
举例来说,将LACP链路聚合组的状态保持为UP的方式包括:在LACP链路聚合组的UP状态中增加一个子UP状态,在所述LACP链路聚合组内的活动成员链路数与可用的非活动成员链路数之和大于或等于预设的第二阈值时,将LACP链路聚合组的状态切换到该子UP状态,处于该子UP状态的LACP链路聚合组数据转发行为与处于UP状态的LACP链路聚合组数据转发行为一致。
或者,将LACP链路聚合组的状态保持为UP的方式可以包括:在LACP链路聚合组UP状态上增加一个自跃迁条件,即,在所述LACP链路聚合组内的活动成员链路数与可用的非活动成员链路数之和大于或等于预设的第二阈值时,LACP链路聚合组从UP状态自跃迁到UP状态。虽然状态有跃迁,但是LACP链路聚合组的状态仍然保持为UP状态。
在优选的应用场景中,如图2所示,上述避免链路聚合组状态震荡的方法还包括:
105、在可用的非活动成员链路的状态变更时,调整可用非活动成员链路的计数,以使得可用的非活动成员链路的计数和当前可用的非活动成员链路的数量一致。
可以理解的是,图2中为方便描述,将105放于104的后面,但需要知道的是,在执行上述101至104的过程中,可以一直执行105。
在另一种可能的应用场景中,如图3所示,在上述的103之前,上述避免链路聚合组状态震荡的方法还包括:
103a、监测所述LACP链路聚合组中非活动成员链路的状态,以及维护所述LACP链路聚合组内非活动成员链路的可用性信息。
举例来说,非活动成员链路的可用性信息可用于指示该非活动成员链路能否被激活。
由上述实施例可知,本实施例的避免链路聚合组状态震荡的方法,在LACP链路聚合组内成员链路的状态发生变化,且导致LACP链路聚合组内活动成员链路数小于第一阈值时,并没有直接将LACP链路聚合组的状态变成Down状态,而是判断LACP链路聚合组内的活动成员链路数与可用的非活动成员链路数之和是否大于或等于第二阈值,若是,则将所述LACP链路聚合组的状态保持为UP状态,进而避免了LACP链路切换引起整个链路聚合组状态发生震荡,导致的长时间丢包的问题,保证了业务的正常传输。
图4示出了本发明另一实施例的避免链路聚合组状态震荡的方法的流程示意图,在上一实施例的基础上,本实施例中的避免链路聚合组状态震荡的方法还包括:
106、在上述104之后,启动定时器。
107、在所述定时器超时前,监测所述LACP链路聚合组内成员链路的状态,若至少一个成员链路的状态发生变化,则执行108,否则,执行110。
可以理解的是,在107中,监测所述LACP链路聚合组内成员链路的状态包括:监测所述LACP链路聚合组内非活动成员链路的状态,和监测所述LACP链路聚合组内活动成员链路的状态;若至少一个成员链路的状态发生变化,则执行108。
108、判断所述LACP链路聚合组内的活动成员链路数与所述可用的非活动成员链路数之和是否小于所述第二阈值,如果是,执行109。
109、将所述LACP链路聚合组的状态调整为Down状态。
110、定时器超时后,判断所述LACP链路聚合组内活动成员链路数是否小于所述第一阈值,如果是,执行111。
在实际应用中,若在定时器规定的时间内,LACP链路聚合组内非活动成员链路被激活成为活动成员链路,则在定时器超时后,LACP链路聚合组内活动成员链路数大于或等于所述第一阈值,则不再改变LACP链路的状态。即,处于UP状态的LACP链路聚合组的状态不变。
111、将所述LACP链路聚合组的状态调整为Down状态。
在本实施例中,将LACP链路聚合组的状态保持为UP状态之后,启动定时器,由定时器来决定等待时间的长短,在定时器预设时间内监测到有可用的非活动成员链路的出现,或可用非活动成员链路变为不可用,使LACP链路聚合组内可激活的非活动成员链路数与当前的活动成员链路数加起来也无法满足预设的第一阈值时,解除LACP链路聚合组的保持状态即UP状态,使其状态设置回真实状态即Down状态;在定时器超时后,如果活动成员链路数还小于第一阈值,将LACP链路聚合组设置回真实状态即Down状态,这种方式避免较长时间内可用的非活动成员链路不能完成状态切换,导致LACP链路聚合组处于虚假状态、LACP链路的资源得不到释放。
图5示出了本发明另一实施例的避免链路聚合组状态震荡的装置的结构示意图,本实施例中的避免链路聚合组状态震荡的装置包括:监测单元51、第一判断单元52、第二判断单元53和状态调整单元54;
其中,监测单元51用于监测处于UP状态LACP链路聚合组内成员链路的状态,所述成员链路包括活动成员链路和非活动成员链路;
第一判断单元52用于在所述监测单元51监测到所述LACP链路聚合组内成员链路的状态变化时,判断所述LACP链路聚合组内活动成员链路数是否小于预设的第一阈值;
第二判断单元53用于在所述第一判断单元52确定所述LACP链路聚合组内活动成员链路数小于所述第一阈值时,判断所述LACP链路聚合组内的活动成员链路数与可用的非活动成员链路数之和是否大于或等于预设的第二阈值;其中,所述第二阈值小于等于所述第一阈值。
状态调整单元54用于在所述第二判断单元53确定所述LACP链路聚合组内活动成员链路数与可用的非活动成员链路数之和大于或等于所述第二阈值时,将所述LACP链路聚合组的状态保持为UP状态;
另外,第一阈值可为LACP链路聚合组的最小活动成员链路数,第二阈值为大于1小于或等于第一阈值的自然数。
本实施例的避免链路聚合组状态震荡的装置,通过监测单元监测LACP链路聚合组内成员链路的状态,进而在成员链路的状态变化时通过第一判断单元和第二判断单元对LACP链路聚合组内的活动成员链路数与可用的非活动成员链路数的判断,进而在LACP链路聚合组内活动成员链路数与可用的非活动成员链路数之和大于或等于所述第二阈值时,通过状态调整单元将所述LACP链路聚合组的状态保持为UP状态,进而避免了LACP链路切换引起整个链路聚合组状态发生震荡,导致的长时间丢包的问题,保证了业务的正常传输。
图6示出了本发明另一实施例提供的避免链路聚合组状态震荡的装置的结构示意图,在上一实施例的基础上,本实施例中的避免链路聚合组状态震荡的装置还包括:定时器监控单元55;所述定时器监控单元55用于在所述状态调整单元54将所述LACP链路聚合组的状态保持为UP之后,启动定时器。
特别地,在所述定时器超时前,监测单元51还用于监测所述LACP链路聚合组内成员链路的状态;
相应地,所述第二判断单元53还用于在所述监测单元51监测到至少一个成员链路的状态发生变化,则判断所述LACP链路聚合组内的活动成员链路数与所述可用的非活动成员链路数之和是否小于所述第二阈值;
所述状态调整单元54还用于在所述第二判断单元53确定所述LACP链路聚合组内活动成员链路数与可用的非活动成员链路数之和小于所述第二阈值时,将所述LACP链路聚合组的状态调整为Down状态。
进一步地,在定时器超时后,所述第一判断单元52还用于判断所述LACP链路聚合组内活动成员链路数是否小于所述第一阈值;
相应地,状态调整单元54还用于在所述第一判断单元52确定所述LACP链路聚合组内活动成员链路数小于所述第一阈值,则将所述LACP链路聚合组的状态调整为Down状态。
在本实施例中,状态调整单元用于将LACP链路聚合组的状态保持为UP状态之后,定时器监控单元用于启动定时器,由定时器来决定等待时间的长短,在定时器预设时间内监测单元还用于监测LACP链路聚合组内成员链路的状态,进一步地,在第二判断单元确定LACP链路聚合组内可激活的非活动成员链路数与当前的活动成员链路数加起来也无法满足预设的第一阈值时,则状态调整单元还用于解除LACP链路聚合组的保持状态,使其状态设置回真实状态即Down状态;
相应地,在定时器超时后,第一判断单元如果确定活动成员链路数还小于第一阈值,则状态调整单元还用于将LACP链路聚合组设置回真实状态即Down状态,这种方式避免较长时间内可用的非活动成员链路不能完成状态切换,导致LACP链路聚合组处于虚假状态、LACP链路的资源得不到释放。
图7示出了本发明另一实施例提供的避免链路聚合组状态震荡的装置的结构示意图,在上一实施例的基础上,本实施例中的避免链路聚合组状态震荡的装置还包括:维护单元56,该维护单元用于监测所述LACP链路聚合组中非活动成员链路的状态,以及维护所述LACP链路聚合组内非活动成员链路的可用性信息。
需要说明的是,以上装置的实施例中,各功能单元的划分仅是举例说明,实际应用中可以根据需要,例如相应硬件的配置要求或者软件的实现的便利考虑,而将上述功能分配由不同的功能单元完成,即将避免链路聚合组状态震荡的装置的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。而且,实际应用中,本实施例中的相应的功能单元可以是由相应的硬件实现,也可以由相应的硬件执行相应的软件完成,例如,前述的第一判断单元、第二判断单元可以是具有执行前述判断单元功能的硬件,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备;再如前述的监测单元,可以是具有执行监测单元的功能的硬件,例如处理器,也可以是能够执行相应计算机程序从而完成前述功能的其他硬件设备;(本说明书提供的各个实施例都可应用上述描述原则)。
另外,可以理解的是,实际应用中的避免链路聚合组状态震荡的装置可包括处理器和存储器;其中,处理器用于执行前述的监测单元51、第一判断单元52、第二判断单元53和状态调整单元54的功能,可选地,处理器还用于执行前述的定时器监控单元55和/或维护单元56的功能;存储器用于存储预设的第一阈值和预设的第二阈值。
根据本发明的另一方面,本发明还提供一种通信设备,该通信设备包括上述任意实施例中所述的避免链路聚合组状态震荡的装置。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。