CN111865659A - 主备控制器的切换方法和装置、控制器、网络设备 - Google Patents

主备控制器的切换方法和装置、控制器、网络设备 Download PDF

Info

Publication number
CN111865659A
CN111865659A CN202010520460.2A CN202010520460A CN111865659A CN 111865659 A CN111865659 A CN 111865659A CN 202010520460 A CN202010520460 A CN 202010520460A CN 111865659 A CN111865659 A CN 111865659A
Authority
CN
China
Prior art keywords
controller
identifier
network devices
main controller
heartbeat message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010520460.2A
Other languages
English (en)
Other versions
CN111865659B (zh
Inventor
侯义松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Security Technologies Co Ltd
Original Assignee
New H3C Security Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by New H3C Security Technologies Co Ltd filed Critical New H3C Security Technologies Co Ltd
Priority to CN202010520460.2A priority Critical patent/CN111865659B/zh
Publication of CN111865659A publication Critical patent/CN111865659A/zh
Application granted granted Critical
Publication of CN111865659B publication Critical patent/CN111865659B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Hardware Redundancy (AREA)

Abstract

本公开提供一种主备控制器的切换方法和装置,在该主备控制器的切换方法中,主控制器通过向该主控制器管理的网络设备发送心跳报文,相当于将仲裁者的功能分布式的下发至每个网络设备,通过接收到的网络设备反馈的响应报文确定是否进行主备控制器的切换。无需增加另外的网络设备或者第三方软件作为仲裁者,降低了网络架构的复杂性。

Description

主备控制器的切换方法和装置、控制器、网络设备
技术领域
本公开涉及网络通信技术,特别涉及一种主备控制器的切换方法和装置、控制器、网络设备。
背景技术
近年来SDN(Software Defined Network,软件定义网络)技术被广泛应用于各个领域和各种用户实际网络中。
大部分行业用户使用SDN控制器之后,考虑到数据备份恢复,会采用异地备份模式,两套环境互为备份,一套系统出现异常之后,另一套系统能快速接管,提高整体系统可用性。
正常运行时,主控制器负责业务处理,配置下发,主动进行心跳消息发送,保活等,并定时的将自己的数据传输给备控制器。备控制器接受主控制器传输的数据,做数据同步,备份,接收心跳保活消息保活但不接收业务处理请求等。当进行主控制器切换时,备控制器升为主控制器之后,则接管之前主控制器的任务,负责业务处理,配置下发等。
主控制器与备控制器以及主控制器纳管的网络设备进行定期保活,任一方保活出现问题,则进行检查。例如,主控制器与名下纳管的设备出现大量不通时,且主控制器在一定时间内(可以设置为五分钟内或者更久,避免网络波动影响)仍无法恢复与N\2+1台设备(N\2+1,N表示控制器纳管的网络设备的数量)通信,则主动进行主备控制器切换;主控制器与备控制器之间通过心跳报文确定主控制器与备控制器之间的通信是否正常,若经过一定时间备控制器仍是无法接收到主控制器的心跳报文,则尝试升主。
而现有技术中是否进行主备控制器切换,一般是由第三方软件或者除了主、备控制器之外,另外设置一控制器以仲裁者角色加入主备控制器的切换判断中。这种方式增加了系统的复杂度。
发明内容
本公开提供了一种主备控制器的切换方法和装置、控制器、网络设备,用于解决现有技术中主备控制器切换过程中需要另外设置网络设备或者第三方软件作为仲裁者导致系统的复杂度增加的问题。
本公开的第一方面提供一种主备控制器的切换方法,应用于控制器,在所述控制器的角色为主控制器的情况下,所述方法包括:
向网络设备发送心跳报文;
接收网络设备发送的针对心跳报文的响应报文,所述响应报文中包括所述网络设备选举的控制器的标识;
确定接收到的响应报文所对应的第一网络设备的数量以及选举的控制器为所述主控制器的第二网络设备的数量;
若第一网络设备的数量小于等于第一预设阈值;或者,第二网络设备的数量小于等于第二预设阈值,并且确定出的第二网络设备的数量持续小于等于第二预设阈值的时长超过第一预设时长,则向备控制器发送切换请求,请求备控制器将备控制器的角色更改为主控制器。
在该主备控制器的切换方法中,主控制器通过向该主控制器管理的网络设备发送心跳报文,相当于将仲裁者的功能分布式的下发至每个网络设备,通过接收到的网络设备反馈的响应报文确定是否进行主备控制器的切换。无需增加另外的网络设备或者第三方软件作为仲裁者,降低了网络架构的复杂性。
可选的,为了避免频繁的主备切换,在所述主控制器向备控制器发送切换请求之后,所述方法还包括:
若确定出的第二网络设备的数量持续小于等于第二预设阈值超过第二预设时长,则再次向备控制器发送切换请求,并且主控制器将自身角色标记为备用控制器。
可选的,所述响应报文中还包括:选举成功标识或者选举失败标识;所述选举成功标识表征所述网络设备当前选举的主控制器与发送所述心跳报文的控制器相同;所述选举失败的标识表征所述网络设备当前选举的主控制器与发送所述心跳报文的控制器不同。
在响应报文中携带选举成功标识或者选举失败标识可以减少控制器侧的计算量。
本公开的第二方面还提供一种主备控制器的切换方法,应用于控制器,在所述控制器的角色为备用控制器的情况下,所述方法包括:
接收主控制器发送的切换请求,所述切换请求为所述主控制发送的请求备控制器将备控制器的角色更改为主控制器的请求;
若在经过第三预设时长之后再次接收到主控制器发送的切换请求,则向主控制器管理的网络设备发送心跳报文,该备控制器发送的心跳报文中携带备控制器的标识;
若在第三预设时长内未接收到主控制器再次发送的切换请求,则保持备控制器的身份不变。
本公开在第二方面所提供的方法中,备控制器在接收到主控制器发送的切换请求之后,等待第三预设时长,如果在第三预设时长内未接收到主控制器再次发送的切换请求,说明要么主控制器已经恢复了与大多数网络设备的连接,因此可以保持备控制器的身份不变,从而避免频繁的主备切换。
可选的,所述方法还包括:接收主控制器发送的保活报文;
若超过第四预设时长未接收到主控制器发送的保活报文,则向主控制器管理的网络设备发送心跳报文,该备控制器发送的心跳报文中携带备控制器的标识。
可选的,所述方法还包括:备控制器接收针对所述心跳报文的响应报文;若接收到的响应报文所对应的第一网络设备的数量大于第一预设阈值,且选举的控制器为所述备控制器的第二网络设备的数量大于第二预设阈值,则备控制器将自身角色标记为主控制器。
本公开的第三方面还提供一种主备控制器的切换方法,应用于网络设备,所述方法包括:
接收控制器发送的心跳报文,所述心跳报文中携带所述控制器的标识;
若网络设备存储的选举的控制器的标识为空,则记录所述控制器的标识,并记录该控制器为主控制器;
若网络设备存储的选举的控制器的标识不为空且与心跳报文中携带的标识不同,则在向所述控制器发送的响应报文中携带所述网络设备选举的主控制器的标识;
若所述网络设备第一预设时长内未接收到主控制器发送的心跳报文,则将记录的主控制器的标识设为空。
本公开第三方面所提供的主备控制器的切换方法中,网络设备作为仲裁者的身份,如果长时间未接收到主控制器发送的心跳报文,则说明主控制器已经与网设备断开连接,由此网络设备可以选择其他的控制器作为主控制器。
可选的,为了减少控制器一侧的计算量,网络设备在向所述控制器发送的响应报文中还包括选举成功标识或者选举失败标识;所述选举成功标识表征所述网络设备当前选举的主控制器与发送所述心跳报文的控制器相同;所述选举失败的标识表征所述网络设备当前选举的主控制器与发送所述心跳报文的控制器不同。
本公开的第四方面还提供一种主备控制器的切换装置,该装置包括:第一发送模块、第一接收模块、第一判断模块;
第一发送模块,用于向网络设备发送心跳报文;
第一接收模块,用于接收网络设备发送的针对心跳报文的响应报文,所述响应报文中包括所述网络设备选举的控制器的标识;
第一判断模块,用于确定接收到的响应报文所对应的第一网络设备的数量以及选举的控制器为当前的主控制器的第二网络设备的数量;
在所述第一判断模块确定出第一网络设备的数量小于等于第一预设阈值;或者,第二网络设备的数量小于等于第二预设阈值,并且确定出的第二网络设备的数量持续小于等于第二预设阈值的时长超过第一预设时长,则触发第一发送模块向备控制器发送切换请求,请求备控制器将备控制器的角色更改为主控制器。
可选的,所述装置还包括第一记录模块;
所述第一判断模块还用于在确定出的第二网络设备的数量持续小于等于第二预设阈值超过第二预设时长,则触发第一发送模块再次向备控制器发送切换请求,并且主控制器的记录模块将自身角色标记为备用控制器。
本公开的第五方面还提供一种主备控制器的切换装置,包括:第二接收模块、第二判断模块、第二发送模块、第二记录模块;
第二接收模块,用于接收控制器发送的心跳报文,所述心跳报文中携带所述控制器的标识;
第二判断模块,用于判断存储的选举的控制器的标识,若存储的选举的控制器的标识为空,则第二记录模块记录所述控制器的标识,并记录该控制器为主控制器;
所述第二判断模块在判断出存储的选举的控制器的标识不为空且与心跳报文中携带的标识不同,则在向所述控制器发送的响应报文中携带选举的主控制器的标识;
若第二接收模块在第一预设时长内未接收到主控制器发送的心跳报文,则第二记录模块将记录的主控制器的标识设为空。
本公开的第六方面还提供一种控制器,包括:处理器和存储器,所述存储器用于存储程序指令,所述处理器用于调用所述存储器中的存储的程序指令,当所述处理器执行所述存储器存储的程序指令时,用于执行上述第一方面和第二方面所提供的方法。
本公开的第七方面还提供一种网络设备,包括:处理器和存储器,所述存储器用于存储程序指令,所述处理器用于调用所述存储器中的存储的程序指令,当所述处理器执行所述存储器存储的程序指令时,用于执行第三方面所提供的方法。
附图说明
图1为本公开提供的组网示意图;
图2为本公开提供的主备控制器的切换方法一种实施方式的流程示意图;
图3为本公开提供的主备控制器的切换方法又一实施方式的流程示意图;
图4为本公开实施例提供的备控制器执行主备控制器的切换方法的流程示意图;
图5为本公开实施例二提供的主备控制器的切换装置的结构示意图;
图6为本公开实施例三提供的主备控制器的切换装置的结构示意图;
图7为本公开实施例提供的控制器的结构示意图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
为了解决现有技术中在主备控制器切换过程中需要另外设置网络设备或者第三方软件作为仲裁者导致系统的复杂度增加的问题,本公开提供了一种主备控制器的切换方法,在该主备控制器的切换方法中,主控制器通过向该主控制器管理的网络设备发送心跳报文,相当于将仲裁者的功能分布式的下发至每个网络设备,通过接收到的网络设备反馈的响应报文确定是否进行主备控制器的切换。无需增加另外的网络设备或者第三方软件作为仲裁者,降低了网络架构的复杂性。
实施例一
本公开所提供的主备控制器的切换方法,可以应用于如图1所示的网络架构中,如图1所示,网络中包括多个控制器,其中包括主控制器和备控制器。其中,主控制器和备控制器可以为包括了多台服务器组成的控制器集群。网络中还包括被控制器纳管的多个网络设备,网络设备可以为路由器、交换机、服务器等。对于控制器纳管的网络设备的类型并不加以限定。
本公开实施例以控制器100作为主控制器为例进行说明。图2为本公开提供的主备控制器的切换方法的流程示意图,如图1和图2所示,该方法包括:
步骤202,控制器100向网络设备发送心跳报文。
主控制器负责对网络设备进行配置下发、监控等。因此控制器100需要与纳管的网络设备进行周期性的心跳报文交互,以确定与网络设备之间的通信正常。同时主控制器还需要与备控制器之间周期性交互保活报文。保活报文与心跳报文可以采用相同的协议,也可以采用不同的协议。本公开对此并不限定。
其中,作为仲裁者的网络设备可以为控制器100纳管的全部网络设备,也可以为部分网络设备。
心跳报文的发送周期例如可以为5s,对于某一网络设备而言,若控制器100在一定时间内未接收到该网络设备发送的针对心跳报文的反馈报文,则控制器100重复向该网络设备发送心跳报文,若连续发送的多个心跳报文均未收到反馈报文,则记录该网络设备失联。
可选的,可以发送告警,从而通知网络管理人员以便尽快解决网络故障。
步骤204,控制器100接收网络设备针对心跳报文的响应报文,所述响应报文中包括所述网络设备选举的控制器的标识。
网络设备在接收到控制器100发送的心跳报文之后,则将自己选举的控制器的标识发送给控制器100。本公开中以控制器的标识为IP地址为例进行说明,应当理解的是,网络设备在标识自身选举的控制器的信息时,采用的控制器的标识可以为IP地址,也可以为MAC地址,或者也可以为其他可以唯一标识控制器的标识。具体的,可以将该IP地址携带在针对心跳报文的响应报文报文中。
步骤206,控制器100确定接收到的响应报文所对应的第一网络设备的数量以及选举控制器100为主控制器的第二网络设备的数量。
步骤208,若第一网络设备的数量小于等于第一预设阈值;或者,第二网络设备的数量小于等于第二预设阈值,并且确定出的第二网络设备的数量持续小于等于第二预设阈值的时长超过第一预设时长,则向备控制器发送切换请求,请求备控制器将备控制器的角色更改为主控制器。
控制器100接收各个网络设备发送的响应报文之后,可能存在多种情况,下面本实施例将以控制器100纳管的网络设备为100台,且这100台网络设备均均可以作为仲裁者对控制器进行选举、第一预设阈值和第二预设阈值均为50为例,对可能发生的几种情况进行说明。但应当理解的是,第一预设阈值和第二预设阈值的选取可以不同,如果第一预设阈值和第二预设阈值选取的不同,一般选择第二预设阈值小于第一预设阈值。
为了后文中描述方便,将接收到的响应报文所对应的网络设备,称为第一网络设备,第一网络设备可以理解为理想情况下发送响应报文的设备;将选举控制器100为主控制器的网络设备称为第二网络设备。
情况一:在针对心跳报文的一个发送周期内,控制器100可能只接收到60个网络设备发送的响应报文,控制器100根据接收到的60个网络设备发送的响应报文,确定60个网络设备只有49个网络设备选择控制器100作为主控制器。
在一个发送周期内,控制器100接收到60个网络设备发送的响应报文,即发送响应报文的网络设备大于第一预设阈值50,但是选举控制器100作为主控制器的网络设备小于第二预设阈值50。
为了频繁的避免控制器的切换,控制器100可以确定这种只有少数网络设备选举控制器100作为主控制器的状态是否会持续。例如,针对发送的10000次心跳报文(发送10000次心跳报文经过了第一预设时长),选举控制器100作为主控制器的网络设备的数量均小于第一预设阈值50,说明控制器100与大多数网络设备处于失联状态持续比较久了(超过了第一预设时长),因此需要进行主备切换,可以向备控制器发送切换请求。
如果经过多个心跳报文的发送周期之后,选择控制器100作为主控制器网络设备的时而大于第一预设阈值50,时而小于第一预设阈值50,说明此时可能出现网络连接的波动,需要维持控制器100作为主控制器不变。
情况二:在针对心跳报文的一个发送周期内,控制器100可能只接收到80个网络设备发送的响应报文,控制器100根据接收到的80个网络设备发送的响应报文,确定80个网络设备有70个网络设备选择控制器100作为主控制器。
与情况一类似的,接收到的响应报文所对应的第一网络设备的数量80大于第一预设阈值50,并且选举控制器100为主控制器的第二网络设备的数量70也大于第二预设阈值50,此时维持控制器100作为主控制器不变。
情况三:在针对心跳报文的一个发送周期内,控制器100可能只接收到30个网络设备发送的响应报文,即接收到的响应报文所对应的网络设备的数量30小于或者等于第一预设阈值50。
在这种情况下,说明控制器100与大量的所纳管的网络设备均失去联系,如果控制器100确定出的第二网络设备的数量持续小于等于第二预设阈值50的时长超过第一预设时长,则向控制器发送切换请求。对于持续小于等于第二预设阈值的理解,在一个示例中,针对5个心跳报文的发送周期,第二网络设备的数量例如可能是40、41、46、43、40,也就是数量是变化的,但是这些数量均小于第二预设阈值这种情况。换句话说,持续小于等于第二预设阈值,并不要求确定出的第二网络设备的数量是一成不变的。
可选的,在上述实施方式的基础上,为了进一步的避免控制器的频繁切换,如图3所示,图3为本公开提供的方法的又一实施方式的流程图。本公开所提供的方法还可以包括以下步骤:
步骤210,若确定出的第二网络设备的数量持续小于等于第二预设阈值超过第二预设时长,则再次向备控制器发送切换请求,并且控制器100将自身角色标记为备用控制器。
由于心跳报文是周期性的发送的,控制器100在发送每一次发送完心跳报文之后,都会执行确定接收到的响应报文所对应的第一网络设备的数量以及选举的控制器为所述主控制器的第二网络设备的数量的步骤,即执行步骤206。
在经历多个心跳报文的发送周期之后,所确定出的第二网络设备的数量持续的小于或等于第二预设阈值的状态超过第二预设时长,此时可以再次向备控制器发送切换请求。
当然,也可能存在经历多个心跳报文的发送周期之后,确定出的接收到的响应报文所对应的第一网络设备的数量大于第一预设阈值,并且选举控制器100作为主控制器的第二网络设备大于第二预设阈值,此时说明,多数网络设备恢复了与控制器100的连接,因此可以维持控制器100作为主控制器,由此避免了主备控制器的频繁切换。
其中第二预设时长大于第一预设时长。例如,第一预设时长可以为1分钟,第二预设时长为2分钟。也就是当控制器100确定选举控制器100作为主控制器的网络设备的数量小于或等于50的状态持续1分钟时,则向备控制器发送切换请求,当上面的状态又持续了1分钟(总共持续了2分钟),则再次向备控制器发送切换请求。
针对备控制器,本公开中以控制器200为备控制器为例,对备控制器所执行的方法进行说明。图4为本公开实施例提供的备控制器执行切换方法的流程图,如图4所示,控制器200执行如下步骤:
步骤302,控制器200接收控制器100发送的切换请求。
在控制器200首次接收到控制器100发送的切换请求之后,为了避免频繁的发生主备控制器的切换,控制器200先维持自身的备控制器的角色不变。
可选的,此时控制器200可以先获取控制器100纳管的网络设备的IP地址,为后续接管网络设备做准备。
步骤304,若经过第三预设时长之后,控制器200再次接收到主控制器发送的切换请求,则向控制器100管理的网络设备发送心跳报文,并在心跳报文中携带控制器200的标识。
如果超过第三预设时长,例如第三预设时长也为1分钟,在控制器200接收到切换请求之后1分钟,再次接收到控制器100发送的切换请求,此时说明控制器100已经纳管的大多数网络设备断开连接,并且这种状态持续了一段时间。因此,控制器200需要升为主控制器,并向此前控制器100纳管的网络设备发送心跳报文。其中,第三预设时长基本等于第二预设时长与第一预设时长之间的差值。例如,若第二预设时长为2分钟,第一预设时长为1分钟,那么第三预设时长基本等于2-1,即1分钟。
对于一部分网络设备,可能已经长时间未接收到控制器100发送的心跳报文,因此可以将自身记录的选举的主控制器的IP地址设置为空。因此,当这一部分网络设备接收到控制器200发送的心跳报文时,由于存储的选举的控制器的IP地址为空时,可以将控制器200的IP地址记录,并记录控制器200为自己选举的主控制器。
而对于有一些网络设备,可能依然能够与控制器100正常的交互心跳报文,对于这一类网络设备,其记录自己选举的主控制器的IP地址为控制器100的IP地址,当接收到控制器200发送的心跳报文时,由于控制器200携带的IP地址与自己选举的主控制器不同,因此向控制器200发送的响应报文中携带控制器100的IP地址。可选的,为了降低控制器的计算负担,网络设备若确定出当前自身选举的控制器与发送心跳报文的控制器的IP地址不同,则可以在响应报文中携带选举失败或者成功的标识,用于表征该发送心跳报文的控制器选举失败或者成功。对于接收到响应报文的网络设备,可以通过识别选举失败的标识确定出对应的网络设备没有选举自己作为主控制器,由此无需通过对比响应报文中携带的IP地址是否与自身相同去确定是否选举成功。
举例来说,若网络设备当前选举控制器100为主控制器,当接收到控制器200发送的心跳报文时,网络设备获知心跳报文中的IP地址与自己选举的主控制器的IP地址不同,因此可以在发往控制器200的响应报文中携带控制器100的IP地址,同时在响应报文中携带选举失败的标识,即表征网络设备选择控制器200作为主控制器失败。
若网络设备当前选举控制器100为主控制器,当接收到控制器100发送的心跳报文时,网络设备获知心跳报文中的IP地址与自己选举的主控制器的IP地址相同,因此可以在发往控制器100的响应报文中携带控制器100的IP地址,同时在响应报文中携带选举成功的标识。
控制器200针对接收到的响应报文,确定出这些响应报文对应的第一网络设备的数量,如果第一网络设备的数量大于第一预设阈值,并且选举控制器200为主控制器的第二网络设备的数量大于第二预设阈值,此时控制器200可以将自身的角色标注为主控制器。自此,控制器100和控制器200完成了主备控制器的切换。
在一种可能的情况中,控制器200针对接收到的响应报文,确定出的第一网络设备的数量小于等于第一预设阈值,或者第二网络设备的数量小于等于第二预设阈值,并且确定出的第二网络设备的数量持续小于等于第二预设阈值的时长超过第一预设时长,此时控制器200无法成功切换为主控制器,此时控制器200发出告警,可以提示网络管理人员进行排查恢复。
步骤306,若在第三预设时长之内控制器200未接收到主控制器发送的切换请求,则控制器200维持自身备控制器的角色不变。
如果在第三预设时长内控制器200没有接收到控制器100再次发送的切换请求,表征控制器100在第三预设时长内已经恢复了与其纳管的大多数的网络设备的连接,因此此时控制器200无需将自己的身份变更为主控制器,只要保持备控制器的身份不变即可。
在上述实施例的基础上,由于实际情况中控制器纳管的网络设备的数量很多,如果主控制器与主控制器纳管的全部网络设备交互的心跳报文都进行统计处理,将会给控制器带来较大的负担。因此,控制器可以指定哪些网络设备可以作为仲裁者,即只有作为仲裁者的网络设备发送的响应报文,控制器才会作为是否进行主备切换的依据。也即本公开中控制器可以针对纳管的网络设备中的指定网络设备所发送的响应报文执行上述实施例中提供的主备控制器的切换方法。其中,指定网络设备可以为网络中的核心设备、或者接入设备等比较重要的网络设备。
上述步骤302-步骤306所描述的示例中,是控制器100主动向控制器200主动发送切换请求去请求主备角色切换。
在另一种场景中,由于控制器100和控制器200之间还会周期性的交互保活报文,如果作为备控制器的控制器200超过第四预设时长,例如一分钟未接收到主控制器100发送的保活报文,此时主控制器100有可能发生故障。因此备控制器200也可以主动尝试进行角色切换。具体的,向控制器100管理的网络设备发送心跳报文,并在心跳报文中携带控制器200的标识。
控制器200针对接收到的针对心跳报文的响应报文,确定出这些响应报文对应的第一网络设备的数量,如果第一网络设备的数量大于第一预设阈值,则说明大多数的网络设备收到了的控制器200发送的心跳报文并进行了反馈,同时,如果控制器200接收到的响应报文中,选举控制器200为主控制器的第二网络设备的数量大于第二预设阈值,说明大多数的网络设备选举控制器200作为主控制器,此时控制器200可以将自身的角色标注为主控制器。自此,控制器200完成了主动升主的流程。
本公开所提供的方法中,可以通过主控制器主动向备控制器发送切换请求进行主备切换,同时备控制器在无法接收到主控制器发送的保活报文时,也可以主动进行升主,更好的保障了业务的正常运行。实施例二
与上述实施例相对应的,本公开还提供一种主备控制器的切换装置,该装置可以用于执行实施例一中主控制器所执行的方法,图5为本公开实施例二提供的主备控制器的切换装置的结构示意图,如图5所示,该装置包括:第一发送模块502、第一接收模块503、第一判断模块504;
第一发送模块502,用于向网络设备发送心跳报文;
第一接收模块503,用于接收网络设备发送的针对心跳报文的响应报文,所述响应报文中包括所述网络设备选举的控制器的标识;
第一判断模块504,用于确定接收到的响应报文所对应的第一网络设备的数量以及选举的控制器为当前的主控制器的第二网络设备的数量;
在所述第一判断模块504确定出第一网络设备的数量小于等于第一预设阈值;或者,第二网络设备的数量小于等于第二预设阈值,并且确定出的第二网络设备的数量持续小于等于第二预设阈值的时长超过第一预设时长,则触发第一发送模块502向备控制器发送切换请求,请求备控制器将备控制器的角色更改为主控制器。
可选的,所述装置还包括第一记录模块(图中未示出);所述第一判断模块504还用于在确定出的第二网络设备的数量持续小于等于第二预设阈值超过第二预设时长,则触发第一发送模块再次向备控制器发送切换请求,并且主控制器的记录模块将自身角色标记为备用控制器。
可选的,所述第一接收模块503接收的响应报文中还包括:选举成功标识或者选举失败标识;所述选举成功标识表征所述网络设备当前选举的主控制器与发送所述心跳报文的控制器相同;所述选举失败的标识表征所述网络设备当前选举的主控制器与发送所述心跳报文的控制器不同。
实施例三
与上述实施例相对应的,本公开还提供一种主备控制器的切换装置,图6为本公开实施例三提供的主备控制器的切换装置的结构示意图,该装置可以用于执行实施例一中网络设备所执行的方法,如图6所示该装置包括:第二接收模块602、第二判断模块603、第二发送模块604、第二记录模块605;
第二接收模块,用于接收控制器发送的心跳报文,所述心跳报文中携带所述控制器的标识;
第二判断模块,用于判断存储的选举的控制器的标识,若存储的选举的控制器的标识为空,则第二记录模块记录所述控制器的标识,并记录该控制器为主控制器;
所述第二判断模块在判断出存储的选举的控制器的标识不为空且与心跳报文中携带的标识不同,则在向所述控制器发送的响应报文中携带选举的主控制器的标识;
若第二接收模块在第一预设时长内未接收到主控制器发送的心跳报文,则第二记录模块将记录的主控制器的标识设为空。
可选的,所述第二接收模块还用于接收针对所述心跳报文的响应报文;
所述第二判断模块若判断出接收到的响应报文所对应的第一网络设备的数量大于第一预设阈值,且选举的控制器为所述备控制器的第二网络设备的数量大于第二预设阈值,则第二记录模块将自身角色标记为主控制器。
实施例四
图7为本公开实施例提供的控制器的结构示意图,如图7所示,本公开还提供一种控制器70,包括:处理器701和存储器702,所述存储器702用于存储程序指令,所述处理器701用于调用所述存储器中的存储的程序指令,当所述处理器执行所述存储器存储的程序指令时,用于执行上述实施例一中主控制器和/或备控制器所执行的方法。
本公开还提供一种网络设备,包括:处理器和存储器,所述存储器用于存储程序指令,所述处理器用于调用所述存储器中的存储的程序指令,当所述处理器执行所述存储器存储的程序指令时,用于执行上述实施例一中网络设备所执行的方法。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
在本公开所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本公开的实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本公开各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个可读存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的可读存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。

Claims (13)

1.一种主备控制器的切换方法,应用于控制器,其特征在于,在所述控制器的角色为主控制器的情况下,所述方法包括:
向网络设备发送心跳报文;
接收网络设备发送的针对心跳报文的响应报文,所述响应报文中包括所述网络设备选举的控制器的标识;
确定接收到的响应报文所对应的第一网络设备的数量以及选举的控制器为所述主控制器的第二网络设备的数量;
若第一网络设备的数量小于等于第一预设阈值;或者,第二网络设备的数量小于等于第二预设阈值、并且确定出的第二网络设备的数量持续小于等于第二预设阈值的时长超过第一预设时长,则向备控制器发送切换请求,请求备控制器将备控制器的角色更改为主控制器。
2.根据权利要求1所述的方法,其特征在于,向备控制器发送切换请求之后,所述方法还包括:
若确定出的第二网络设备的数量小于等于第二预设阈值且小于等于第二预设阈值的持续时间超过第二预设时长,则再次向备控制器发送切换请求,并且主控制器将自身角色标记为备用控制器。
3.根据权利要求1或2所述的方法,其特征在于,所述响应报文中还包括:选举成功标识或者选举失败标识;所述选举成功标识表征所述网络设备当前选举的主控制器与发送所述心跳报文的控制器相同;所述选举失败的标识表征所述网络设备当前选举的主控制器与发送所述心跳报文的控制器不同。
4.一种主备控制器的切换方法,应用于控制器,在所述控制器的角色为备用控制器的情况下,其特征在于,所述方法包括:
接收主控制器发送的切换请求,所述切换请求为所述主控制发送的请求备控制器将备控制器的角色更改为主控制器的请求;
若在经过第三预设时长之后再次接收到主控制器发送的切换请求,则向主控制器管理的网络设备发送心跳报文,该备控制器发送的心跳报文中携带备控制器的标识;
若在第三预设时长内未接收到主控制器再次发送的切换请求,则保持备控制器的身份不变。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
接收主控制器发送的保活报文;
若超过第四预设时长未接收到主控制器发送的保活报文,则向主控制器管理的网络设备发送心跳报文,该备控制器发送的心跳报文中携带备控制器的标识。
6.根据权利要求4或5所述的方法,其特征在于,所述方法还包括:
接收针对所述心跳报文的响应报文;
若接收到的响应报文所对应的第一网络设备的数量大于第一预设阈值,且选举的控制器为所述备控制器的第二网络设备的数量大于第二预设阈值,则备控制器将自身角色标记为主控制器。
7.一种主备控制器的切换方法,应用于网络设备,其特征在于,所述方法包括:
接收控制器发送的心跳报文,所述心跳报文中携带所述控制器的标识;
若网络设备存储的选举的控制器的标识为空,则记录所述控制器的标识,并记录该控制器为主控制器;
若网络设备存储的选举的控制器的标识不为空且与心跳报文中携带的标识不同,则在向所述控制器发送的响应报文中携带所述网络设备选举的主控制器的标识;
若所述网络设备第一预设时长内未接收到主控制器发送的心跳报文,则将记录的主控制器的标识设为空。
8.根据权利要求7所述的方法,其特征在于,在向所述控制器发送的响应报文中还包括选举成功标识或者选举失败标识;所述选举成功标识表征所述网络设备当前选举的主控制器与发送所述心跳报文的控制器相同;所述选举失败的标识表征所述网络设备当前选举的主控制器与发送所述心跳报文的控制器不同。
9.一种主备控制器的切换装置,其特征在于,包括:第一发送模块、第一接收模块、第一判断模块;
第一发送模块,用于向网络设备发送心跳报文;
第一接收模块,用于接收网络设备发送的针对心跳报文的响应报文,所述响应报文中包括所述网络设备选举的控制器的标识;
第一判断模块,用于确定接收到的响应报文所对应的第一网络设备的数量以及选举的控制器为当前的主控制器的第二网络设备的数量;
在所述第一判断模块确定出第一网络设备的数量小于等于第一预设阈值;或者,第二网络设备的数量小于等于第二预设阈值,并且确定出的第二网络设备的数量持续小于等于第二预设阈值的时长超过第一预设时长,则触发第一发送模块向备控制器发送切换请求,请求备控制器将备控制器的角色更改为主控制器。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括第一记录模块;
所述第一判断模块还用于若确定出的第二网络设备的数量小于等于第二预设阈值且小于等于第二预设阈值的持续时间超过第二预设时长,则触发第一发送模块再次向备控制器发送切换请求,并且主控制器的记录模块将自身角色标记为备用控制器。
11.一种主备控制器的切换装置,其特征在于,包括:第二接收模块、第二判断模块、第二发送模块、第二记录模块;
第二接收模块,用于接收控制器发送的心跳报文,所述心跳报文中携带所述控制器的标识;
第二判断模块,用于判断存储的选举的控制器的标识,若存储的选举的控制器的标识为空,则第二记录模块记录所述控制器的标识,并记录该控制器为主控制器;
所述第二判断模块在判断出存储的选举的控制器的标识不为空且与心跳报文中携带的标识不同,则在向所述控制器发送的响应报文中携带选举的主控制器的标识;
若第二接收模块在第一预设时长内未接收到主控制器发送的心跳报文,则第二记录模块将记录的主控制器的标识设为空。
12.一种控制器,其特征在于,包括:处理器和存储器,所述存储器用于存储程序指令,所述处理器用于调用所述存储器中的存储的程序指令,当所述处理器执行所述存储器存储的程序指令时,用于执行上述权利要求1-6任一项所述的方法。
13.一种网络设备,其特征在于,包括:处理器和存储器,所述存储器用于存储程序指令,所述处理器用于调用所述存储器中的存储的程序指令,当所述处理器执行所述存储器存储的程序指令时,用于执行上述权利要求7或8所述的方法。
CN202010520460.2A 2020-06-10 2020-06-10 主备控制器的切换方法和装置、控制器、网络设备 Active CN111865659B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010520460.2A CN111865659B (zh) 2020-06-10 2020-06-10 主备控制器的切换方法和装置、控制器、网络设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010520460.2A CN111865659B (zh) 2020-06-10 2020-06-10 主备控制器的切换方法和装置、控制器、网络设备

Publications (2)

Publication Number Publication Date
CN111865659A true CN111865659A (zh) 2020-10-30
CN111865659B CN111865659B (zh) 2023-12-29

Family

ID=72987943

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010520460.2A Active CN111865659B (zh) 2020-06-10 2020-06-10 主备控制器的切换方法和装置、控制器、网络设备

Country Status (1)

Country Link
CN (1) CN111865659B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114584707A (zh) * 2022-03-01 2022-06-03 杭州海康威视数字技术股份有限公司 摄像机中无线通信组件功耗的控制方法
CN114640574A (zh) * 2022-02-28 2022-06-17 天翼安全科技有限公司 一种主备设备的切换方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150281128A1 (en) * 2014-03-31 2015-10-01 Juniper Networks, Inc. High-performance, scalable and drop-free data center switch fabric
CN105591776A (zh) * 2014-10-23 2016-05-18 杭州华三通信技术有限公司 Sdn网络设备的主备链路切换方法和装置
CN108173971A (zh) * 2018-02-05 2018-06-15 江苏物联网研究发展中心 一种基于主备切换的MooseFS高可用方法及系统
CN108683532A (zh) * 2018-05-11 2018-10-19 新华三技术有限公司 一种主备同步方法及装置
CN110011840A (zh) * 2019-03-26 2019-07-12 新华三技术有限公司 控制器的状态处理方法、装置和控制器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150281128A1 (en) * 2014-03-31 2015-10-01 Juniper Networks, Inc. High-performance, scalable and drop-free data center switch fabric
CN105591776A (zh) * 2014-10-23 2016-05-18 杭州华三通信技术有限公司 Sdn网络设备的主备链路切换方法和装置
CN108173971A (zh) * 2018-02-05 2018-06-15 江苏物联网研究发展中心 一种基于主备切换的MooseFS高可用方法及系统
CN108683532A (zh) * 2018-05-11 2018-10-19 新华三技术有限公司 一种主备同步方法及装置
CN110011840A (zh) * 2019-03-26 2019-07-12 新华三技术有限公司 控制器的状态处理方法、装置和控制器

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114640574A (zh) * 2022-02-28 2022-06-17 天翼安全科技有限公司 一种主备设备的切换方法及装置
CN114640574B (zh) * 2022-02-28 2023-11-28 天翼安全科技有限公司 一种主备设备的切换方法及装置
CN114584707A (zh) * 2022-03-01 2022-06-03 杭州海康威视数字技术股份有限公司 摄像机中无线通信组件功耗的控制方法
CN114584707B (zh) * 2022-03-01 2023-07-07 杭州海康威视数字技术股份有限公司 摄像机中无线通信组件功耗的控制方法

Also Published As

Publication number Publication date
CN111865659B (zh) 2023-12-29

Similar Documents

Publication Publication Date Title
US10560315B2 (en) Method and device for processing failure in at least one distributed cluster, and system
CN106330475B (zh) 一种通信系统中管理主备节点的方法和装置及高可用集群
CN110830283B (zh) 故障检测方法、装置、设备和系统
CN103795553A (zh) 基于监控的主、备服务器切换
EP3214865B1 (en) Cluster arbitration method and multi-cluster coordination system
CN109218126B (zh) 监测节点存活状态的方法、装置及系统
CN110417600B (zh) 分布式系统的节点切换方法、装置及计算机存储介质
CN107508694B (zh) 一种集群内的节点管理方法及节点设备
CN109101196A (zh) 主节点切换方法、装置、电子设备及计算机存储介质
CN111865659A (zh) 主备控制器的切换方法和装置、控制器、网络设备
CN111385107B (zh) 一种服务器的主备切换处理方法及装置
CN110875857A (zh) 断网状态的上报方法、装置及系统
CN109510730B (zh) 分布式系统及其监控方法、装置、电子设备及存储介质
EP3570169B1 (en) Method and system for processing device failure
CN112492030B (zh) 数据存储方法、装置、计算机设备和存储介质
CN107046474B (zh) 一种服务集群
CN110224872B (zh) 一种通信方法、装置及存储介质
CN104836679B (zh) 通信异常处理方法及网元设备
CN110661836B (zh) 消息路由方法、装置及系统、存储介质
CN111190913A (zh) 一种分布式锁实现方法及系统
CN115002001B (zh) 一种检测集群网络亚健康的方法、装置、设备及介质
CN112637337B (zh) 一种数据处理方法及装置
CN111586110B (zh) 一种raft在出现点对点故障时的优化处理方法
CN114301763A (zh) 分布式集群故障的处理方法及系统、电子设备及存储介质
CN113625946A (zh) 一种实现存储集群仲裁的方法、系统及计算机设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant