CN106230622A - 一种集群实现方法及装置 - Google Patents
一种集群实现方法及装置 Download PDFInfo
- Publication number
- CN106230622A CN106230622A CN201610587354.XA CN201610587354A CN106230622A CN 106230622 A CN106230622 A CN 106230622A CN 201610587354 A CN201610587354 A CN 201610587354A CN 106230622 A CN106230622 A CN 106230622A
- Authority
- CN
- China
- Prior art keywords
- controller
- leader
- cluster
- sdn
- data
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
- H04L41/0836—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability to enhance reliability, e.g. reduce downtime
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供一种集群实现方法及装置,该方法包括:当所述第一SDN控制器为领导控制器时,与集群中其它领导控制器进行选举,以选举出执行控制器;当所述第一SDN控制器未被选举为执行控制器,并检测到执行控制器不在位,且不存在在位的其它领导控制器时,所述第一SDN控制器作为新的执行控制器对外提供服务。应用本发明实施例可以提高集群的可靠性。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种集群实现方法及装置。
背景技术
通常为了提升系统的业务处理能力,可以将多个业务单元组成集群,集群内的各业务单元互为备份并进行负载分担,进而实现业务单元的灵活扩展。分布式集群技术需要满足以下条件:
1、一致性
一致性是指数据在多个业务单元之间保持一致的特性。
2、可用性
可用性是指系统提供的服务必须一直处于可用的状态。对于每一个请求,系统必须在有限的时间内返回结果,该结果必须是明确的,例如成功或失败。
但是上述一致性或可用性通常比较难满足。因此现有集群实现方案中,通常只要求集群满足“基本可用”和“最终一致”。
其中,“基本可用”是指系统在出现故障情况下,允许损失部分可用性,例如响应时间上增加1~2秒;“最终一致”是指系统保证最终数据能够达成一致,而不需要实时保证系统数据的强一致性。
为了实现“基本可用”和“最终一致”,要求集群遵循多数派原则。即只要集群成员中的多数派一致,就认为能够实现最终一致;如果成员中多数派能够存活,集群就可以对外可用。
SDN(Software Defined Network,软件自定义网络)控制器集群是指由多台SDN控制器组成的集群(组成集群的各SDN控制器称为集群成员)。当SDN控制器集群发生脑裂(集群内各节点间的心跳出现故障,但各节点还处于活跃状态),根据多数派原则,只有形成多数派的集群可以存活,但是若形成多数派的集群无法接入业务网络时,发生脑裂的SDN集群将无法提供服务。
发明内容
本发明提供一种集群实现方法及装置,以提高集群可靠性。
根据本发明实施例的第一方面,提供一种集群实现方法,应用于软件自定义网络SDN控制器集群中的第一SDN控制器,所述SDN控制器集群中包括至少两个被配置为领导控制器的SDN控制器,领导控制器之外的其它SDN控制器为成员控制器,所述方法包括:
当所述第一SDN控制器为领导控制器时,与集群中其它领导控制器进行选举,以选举出执行控制器;
当所述第一SDN控制器未被选举为执行控制器,并检测到执行控制器不在位,且不存在在位的其它领导控制器时,所述第一SDN控制器作为新的执行控制器对外提供服务。
根据本发明实施例的第二方面,提供一种集群实现装置,应用于软件自定义网络SDN控制器集群中的第一SDN控制器,所述SDN控制器集群中包括至少两个被配置为领导控制器的SDN控制器,领导控制器之外的其它SDN控制器为成员控制器,所述装置包括:
检测单元,用于当所述第一SDN控制器为领导控制器时,检测其它领导控制器是否在位;
选举单元,用于当所述第一SDN控制器为领导控制器时,与集群中其它领导控制器进行选举,以选举出执行控制器;
服务单元,用于当所述第一SDN控制器未被选举为执行控制器,且所述检测单元检测到执行控制器不在位,并不存在在位的其它领导控制器时,以所述第一SDN控制为新的执行控制器对外提供服务。
应用本发明实施例,通过对SDN控制器集群中的SDN控制器进行角色划分,并将SDN控制器集群中的至少两个SDN控制器配置为领导控制器,且领导控制器之外的SDN控制器配置为成员控制器,当SDN控制器为领导控制器时,与集群中其它领导控制器进行选举,以选举出执行控制器,当SDN控制器未被选举为执行控制器,并检测到执行控制器不在位,且不存在其它领导控制器时,该SDN控制器可以作为新的执行控制器对外提供服务,由于本发明实施例提供的技术方案中只需集群中存在在位的领导控制器,即能选举出执行控制器对外提供服务,因而,与上述现有技术方案相比,降低了由于集群脑裂导致无法提供服务的情况发生的概率,提高了集群的可靠性。
附图说明
图1是本发明实施例提供的一种集群实现方法的流程示意图;
图2A是本发明实施例提供的一种具体应用场景的架构示意图;
图2B是本发明实施例提供的另一种具体应用场景的架构示意图;
图3是本发明实施例提供的一种集群实现装置的结构示意图;
图4是本发明实施例提供的另一种集群实现装置的结构示意图;
图5是本发明实施例提供的另一种集群实现装置的结构示意图;
图6是本发明实施例提供的另一种集群实现装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
请参见图1,图1为本发明实施例提供的一种集群实现方法的流程示意图,其中,该集群实现方法可以应用于SDN控制器集群,该SDN控制器集群中包括至少两个被配置为领导控制器的SDN控制器;如图1所示,该集群实现方法可以包括以下步骤:
需要说明的是,在本发明实施例中,步骤101~步骤102的执行主体可以为SDN控制器集群中的第一SDN控制器或第一SDN控制器的处理器,如CPU(Center Process Unit,中央处理单元),为便于描述,以下以步骤101~步骤102的执行主体为第一SDN控制器(下文中简称为第一控制器)为例进行说明。
值得说明的是,在本发明实施例中,第一SDN控制器并不特指某一固定的SDN控制器,而是可以指代SDN集群中任一SDN控制器,本发明实施例后续不再复述。
步骤101、当第一SDN控制器为领导控制器时,与集群中其它领导控制器进行选举,以选举出执行控制器。
本发明实施例中,对于组成SDN控制器集群(下文中简称为集群)的控制器,可以对其进行角色划分,将其划分为领导控制器和成员控制器。
其中,领导控制器参与集群选举,选举出一个领导控制器作为执行控制器,该执行控制器作为集群的代表对外提供北向业务,例如用户的配置、云管理平台的Rest(Representational State Transfer,表达性状态传递)API(Application ProgrammingInterface,应用程序编程接口)请求等。执行控制器进而将用户配置、Rest API请求分发到集群中具体控制器上执行。
值得说明的是,领导控制器除了可以对外提供北向业务之外,也可以具备提供南向业务的能力,例如,管理具体的网络设备、为设备下发流表提供转发路径等。
集群中的成员控制器不参与集群的选举,仅对外提供南向业务。
应该认识到,在本发明实施例中,领导控制器或成员控制器并不是特指某种固定的控制器,而是指用户(如管理员)为控制器配置的角色,即对于集群中的任一控制器,在一些实施例中,其可以被配置为领导控制器,以领导控制器的角色参与集群运行;在另一些实施例中,其也可以被配置为成员控制器,以成员控制器的角色参与集群运行。
本发明实施例中,当第一控制器被配置为领导控制器时,第一控制器可以与集群中其它领导控制器进行选举,以选举出执行控制器。
作为一种可选的实施方式,步骤101中,与集群中其它领导控制器进行选举,以选举出执行控制器,可以包括以下步骤:
11)、向其它领导控制器发送携带第一SDN控制器的优先级以及标识信息的选举消息,并接收其它领导控制器发送的携带该其它领导控制器的优先级以及标识信息的选举消息;
12)、当第一SDN控制器优先级高于其它领导控制器的优先级时,确定第一SDN控制器为执行控制器;
13)、当其它领导控制器中存在优先级高于第一SDN控制器的优先级的领导控制器时,确定优先级最高的其它领导控制器为执行控制器。
在该实施方式中,当将集群中的控制器配置为领导控制器时,可以为各领导控制器配置不同的优先级,该优先级作为集群选举执行控制器的一个比较因素。
在该实施方式中,领导控制器初始状态下均认为自身为执行控制器,因而,当控制器以领导控制器的角色加入集群时,领导控制器可以向集群中其它领导控制器发送携带自身优先级以及标识信息的选举消息,该选举消息用于告知其它领导控制器自身为执行控制器;同理,该领导控制器也会接收到集群中其它领导控制器发送的携带有该其它领导控制器的优先级以及标识信息的选举消息。
领导控制器接收到其它领导控制器发送的选举消息时,发现该选举消息中携带的标识信息与自身标识信息不同,则该领导控制器可以比较自身优先级以及其它领导控制器的优先级;
若该领导控制器自身优先级高于其它领导控制器的优先级(若存在多个其它领导控制器,则需要高于所有其它领导控制器的优先级),则该领导控制器可以确定自身为执行控制器。
若该领导控制器发现其它领导控制器中存在优先级高于自身优先级的领导控制器时,则确定优先级最高的其它领导控制器为执行控制器。
在该实施方式中,当领导控制器确定某其它领导控制器为执行控制器时,该领导控制器之后发送的选举消息中携带的标识信息为该其它领导控制器的标识信息,从而,当该其它领导控制器接收到携带自身标识信息的选举消息时,可以获知自身已经被选举为了执行控制器。
步骤102、当第一SDN控制器未被选举为执行控制器,并检测到执行控制器不在位,且不存在在位的其它领导控制器时,第一SDN控制器作为新的执行控制器对外提供服务。
本发明实施例中,集群中的控制器之间可以相互监测对方的在位状态,如集群中的控制器可以定期地向集群中的其它控制器发送心跳报文,以使其它控制器获知自身处于在位状态,并根据是否接收到其它控制器发送的心跳报文,确定其它控制器是否在位。当某控制器在连续若干个心跳周期未接收到另一控制器发送的心跳报文时,可以认为该另一控制器不在位。
相应地,在本发明实施例中,当第一控制器为领导控制器,且未被选举为执行控制器时,第一控制器可以检测执行控制器以及其它领导控制器的在位状态。
当第一控制器检测到执行控制器不在位,且不存在在位的其它领导控制器时,第一控制器可以作为新的执行控制器对外提供服务。
举例来说,假设集群中包括3台控制器:控制器1(假设在该示例中控制器1为第一控制器)、控制器2和控制器3(假设控制器1通过接入交换机1接入管理网络,控制器2和控制器3通过交换机2接入管理网络,交换机1和交换机2相连),且控制器1和控制器2为领导控制器,控制器3为成员控制器,控制器1和控制器2进行选举时,控制器2被选举为执行控制器。
假设某时刻集群发生脑裂,如接入交换机1和接入交换机2之间的链路发生故障,此时,控制器1会检测到执行控制器(控制器2)不在位,同时,控制器1也检测不到在位的其它领导控制器,因此,控制器1可以确定自身为执行控制器,从而,即使控制器2和控制器3无法接入到业务网络,控制器1仍然可以对外提供服务。
值得说明的是,在本发明实施例中,当第一SDN控制器未被选举为执行控制器,且检测到执行控制器不在位,但存在在位的其它领导控制器时,第一SDN控制器可以与该在位的其它领导控制器重新进行选举,以选举出新的执行控制器对外提供服务,其具体实现过程可以参见上述步骤101中的相关描述,本发明实施例在此不再赘述。
可见,在图1所示的方法流程中,通过对SDN控制器集群中的SDN控制器进行角色划分,并将SDN控制器集群中的至少两个SDN控制器配置为领导控制器,且领导控制器之外的SDN控制器配置为成员控制器,当SDN控制器为领导控制器时,与集群中其它领导控制器进行选举,以选举出执行控制器,当SDN控制器未被选举为执行控制器,并检测到执行控制器不在位,且不存在其它领导控制器时,该SDN控制器可以作为新的执行控制器对外提供服务,提高了集群的可靠性。
进一步地,在本发明实施例中,集群中选举出执行控制器后,执行控制器需要与集群中其它控制器进行数据同步,由于本发明实施例中成员控制器不参与执行控制器的选举,因此,在进行数据同步时需要优先保证领导控制器能够进行数据同步。
相应地,本发明实施例提供的集群实现方法还可以包括以下步骤:
21)、当第一SDN控制器被选举为执行控制器时,向其它领导控制器发送数据同步请求,以使其它领导控制器接收到数据同步请求时根据该数据同步请求中携带的数据记录事务日志,并回应ACK消息。
22)、当接收到其它领导控制器回应的ACK消息时,向其它领导控制器发送提交消息,并向成员控制器发送数据更新请求,以使其它领导控制器接收到提交消息时,根据所记录的事务日志修改内存数据模型,以及成员控制器接收到数据更新消息时,根据数据更新消息中携带的数据进行数据更新。
本发明实施例中,当第一控制器作为领导控制器被选举为执行控制器时,第一控制器需要与集群内其它控制器进行数据同步。
本发明实施例中,当需要进行数据同步时,执行控制器需要先确定其它领导控制器是否能够完成数据同步,并当确定至少半数的其它领导控制器能够完成同步时,才与其它领导控制器以及集群中的成员控制器进行数据同步。
相应地,在本发明实施例中,当控制器作为领导控制器被选举为执行控制器时,该控制器可以先向集群中其它领导控制器发送(如广播)数据同步请求。
其它领导控制器接收到执行控制器发送的数据同步请求时,先根据数据同步请求中携带的数据记录事务日志,并在确定能够完成数据同步时,回应ACK(确认)消息,而暂时先不修改内存数据模型。
执行控制器接收到其它领导控制器返回的ACK消息(若存在多个其它领导控制器,则需要接收到至少半数其它领导控制器返回的ACK消息),确定其它领导控制器能够完成数据同步,从而执行控制器一方面可以向其它领导控制器发送提交消息,另一方面,执行控制器可以向集群中的成员控制器发送(如广播)数据更新消息。
其它领导控制器接收到执行控制器发送的提交消息后,可以根据之前记录的事务日志修改内存数据模型。
成员控制器接收到执行控制器发送的数据更新消息时,可以根据接收到数据更新消息中携带的数据进行数据更新。
可见,在本发明实施例中,仅需优先保证大多数的领导控制器之间的数据一致性,即可认为集群满足数据一致性要求。
进一步地,在本发明实施例中,通过对控制器的角色划分,以及上述数据一致性算法的改进,组成集群的控制器的数量不再局限于3台或3台以上的奇数数量。
举例来说,基于本发明实施例提供的集群实现方案,组成集群的控制器的数量可以为2台,当2台控制器(假设为控制器A和控制器B)组成集群时,可以将该2台控制器均配置为领导控制器。
控制器A和控制器B作为领导控制器加入集群后,可以进行选举,选举出执行控制器(假设控制器A被选举为执行控制器)。
控制器A被选举为执行控制器之后,控制器A可以向控制器B发送同步数据,并当接收到控制器B发送的ACK消息时,向控制器B发送提交消息,以使控制器B修改内存数据模型,实现数据同步。
可见,基于本发明实施例提供的集群实现方案,可以实现仅包括两台控制器的控制器集群,提高了集群的适用性。
值得说明的是,在本发明实施例中,当执行控制器向其它领导控制器发送数据同步请求,且未接收到其它领导控制器返回的ACK消息时,执行控制器可以检测其它领导控制器是否在位,若其它领导控制器不在位,则执行控制器可以直接向成员控制器发送数据更新消息,以使成员控制器进行数据更新,即本发明实施例中,即使仅有作为执行控制器的1台领导控制器在位,仍然对外提供服务。
进一步地,在本发明实施例中,当第一控制器为领导控制器,且未被选举为执行控制器,并接收到执行控制器发送的数据同步请求时,第一控制器可以根据接收到数据同步请求中携带的数据记录事务日志,并确定能够进行数据同步时,向执行控制器发送ACK消息。
当第一控制器接收到执行控制器发送的提交消息时,该第一控制器可以根据所记录的事务日志修改内存数据模型。
此外,当第一控制器作为成员控制器时,第一控制器可以在接收到执行控制器发送的数据更新消息时,根据接收到的数据更新消息中携带的数据进行数据更新。
进一步地,在本发明实施例中,当第一控制器被配置为领导控制器,且未被选举为执行控制器,并检测到执行控制器不在位时,第一控制器可以与其它在位的领导控制器进行选举,以选举出新的执行控制器。
当不存在在位的其它领导控制器时,第一控制器确定自身为新的执行控制器。
具体的,在本发明实施例中,集群中的控制器之间可以相互监测对方的在位状态,如集群中的控制器可以定期地向集群中的其它控制器发送心跳报文,以使其它控制器获知自身处于在位状态,并根据是否接收到其它控制器发送的心跳报文,确定其它控制器是否在位。
当作为领导控制器的控制器未被选举为执行控制器,并检测到执行控制器不在位时,如连续若干个周期未接收到执行控制器发送的心跳报文,该控制器需要判断当前是否还存在在位的其它领导控制器。若存在,则该控制器需要与在位的其它领导控制器进行选举,以选举出新的执行控制器;若不存在,则该控制器可以直接确定自身为新的执行控制器。
可见,在本发明实施例中,通过对集群中的控制器进行角色划分,将集群中的控制器划分为领导控制器和成员控制器,当由于网络故障或设备故障等原因导致集群中部分控制器不在位时,仅需要存在至少1台领导控制器在位,集群仍然能够对外提供服务,而不需要保证集群中多数派控制器在位,提高了集群的可靠性,并提高了集群中控制器的利用率。
进一步地,在本发明实施例中,当集群运行过程中有新的SDN控制器加入集群时,新加入的SDN控制器作为成员控制器。
具体的,在本发明实施例中,为了实现集群的横向扩展,在集群运行过程中,可以有新的控制器加入集群,该新加入集群的控制器需要以成员控制器的角色加入集群。由于成员控制器不参加选举,因此,新加入的SDN控制器加入集群后,集群不需要重新选举,而是可以继续保持正常运行。
可见,在本发明实施例提供的集群实现方案中,可以实现集群的横向扩展,满足业务扩展的需要。
为了使本领域技术人员更好地理解本发明实施例提供的技术方案,下面结合具体的应用场景对本发明实施例提供的技术方案进行详细描述。
请参见图2A,为本发明实施例提供第一种具体应用场景的架构示意图,如图2A所示,该应用场景可以包括两台作为接入交换机的TOR(Top of Rack,机柜顶部)交换机(TOR1和TOR2,且TOR1和TOR2相连),以及3台SDN控制器(Controller1、Controller2和Controller3),Controller1和Controller2通过TOR1接入网络,Controller3通过TOR2接入网络,Controller1、Controller2和Controller3组成一个SDN控制器集群。
基于该应用场景,在现有集群实现方案中,若TOR1交换机故障造成Controller1和Controller2从管理网络分裂,唯有Controller3可以与受管理的网络节点通信。而根据多数派原则,Controller3为原集群中的少数派,因此,该集群不能再提供SDN控制器的服务。
而在本发明实施例提供的集群实现方案中,可以将Controller1和Controller3配置为领导控制器,Controller2配置为成员控制器,其中,Controller1的优先级为5,Controller3的优先级为3。
当Controller1、Controller2和Controller3按照各自角色加入集群时,Controller1和Controller3需要进行选举,以选举出执行控制器。因而,Controller1和Controller3都会向对方发送携带自身优先级和标识信息的选举消息。由于Controller1的优先级高于Controller3的优先级,因此,最终Controller1被选举为执行控制器。
Controller1被选举为执行控制器之后,可以向Controller3发送数据同步请求;Controller3接收到数据同步请求后,可以先根据该数据同步请求记录事务日志,并向Controller1返回ACK消息;Controller1接收到Controller3返回的ACK消息后,即可认为能够进行数据同步,进而,Controller1向Controller3发送提交消息,并向Controller2发送数据更新消息;Controller3接收到提交消息后,根据之前记录的事务日志修改内存数据模型;Controller2接收到数据更新消息后,根据该数据更新消息中携带的数据修改内存数据模型。
当由于TOR1交换机故障造成Controller1和Controller2从管理网络分裂,唯有Controller3可以与受管理的网络节点通信时,Controller3检测到Controller1不在位(即执行控制器不在位),且集群中不存在在位的其它领导控制器,因此,Controller3确定自身为执行控制器,并继续对外提供服务。
请参见图2B,为本发明实施例提供第一种具体应用场景的架构示意图,如图2B所示,该应用场景中可以包括两台核心交换机(Core1和Core2,且Core1和Core2相连),SDN控制器以板卡形态运行在核心交换机上,Core1和Core2各通过2个板卡部署2台SDN控制器(Core1上部署了Controller1、Controller2,Core2上部署了Controller3、Controller4),Controller1、Controller2和Controller3组成一个SDN控制器集群,Controller4不参与集群组成。
基于该应用场景,在现有集群实现方案中,当Core1发生故障,例如电源故障导致Core1宕机,此时将导致只有在Core2上的Controller3、Controller4可以运行。但由于Controller3是原集群中的少数派,因此不能继续提供SDN控制器服务器。
而在本发明实施例提供的集群实现方案中,可以将Controller1和Controller3配置为领导控制器,Controller2配置为成员控制器,其中,Controller1的优先级为5,Controller3的优先级为3。
当Controller1、Controller2和Controller3按照各自角色加入集群时,Controller1和Controller3需要进行选举,以选举出执行控制器。因而,Controller1和Controller3都会向对方发送携带自身优先级和标识信息的选举消息。由于Controller1的优先级高于Controller3的优先级,因此,最终Controller1被选举为执行控制器。
Controller1被选举为执行控制器之后,可以向Controller3发送数据同步请求;Controller3接收到数据同步请求后,可以先根据该数据同步请求记录事务日志,并向Controller1返回ACK消息;Controller1接收到Controller3返回的ACK消息后,即可认为能够进行数据同步,进而,Controller1向Controller3发送提交消息,并向Controller2发送数据更新消息;Controller3接收到提交消息后,根据之前记录的事务日志修改内存数据模型;Controller2接收到数据更新消息后,根据该数据更新消息中携带的数据修改内存数据模型。
当由于Core1故障造成Controller1和Controller2无法运行,唯有Controller3可以正常运行时,Controller3检测到Controller1不在位(即执行控制器不在位),且集群中不存在在位的其它领导控制器,因此,Controller3确定自身为执行控制器,并继续对外提供服务。
可见,本发明实施例提供的集群实现方案,可以实现在少数派控制器在位的情况下,仍然能对外提供服务,提高了集群的可靠性,并提高了集群中控制器的利用率。
通过以上描述可以看出,在本发明实施例提供的技术方案中,通过对SDN控制器集群中的SDN控制器进行角色划分,并将SDN控制器集群中的至少两个SDN控制器配置为领导控制器,且领导控制器之外的SDN控制器配置为成员控制器,当SDN控制器为领导控制器时,与集群中其它领导控制器进行选举,以选举出执行控制器,当SDN控制器未被选举为执行控制器,并检测到执行控制器不在位,且不存在其它领导控制器时,该SDN控制器可以作为新的执行控制器对外提供服务,由于本发明实施例提供的技术方案中只需集群中存在在位的领导控制器,即能选举出执行控制器对外提供服务,因而,与上述现有技术方案相比,降低了由于集群脑裂导致无法提供服务的情况发生的概率,提高了集群的可靠性。
请参见图3,为本发明实施例提供的一种集群实现装置的结构示意图,其中,该装置可以应用于上述方法实施例中所描述的第一SDN控制器,如图3所示,该装置可以包括:
检测单元310,用于检测其它控制器是否在位;
选举单元320,用于当所述第一SDN控制器为领导控制器时,与集群中其它领导控制器进行选举,以选举出执行控制器;
服务单元330,用于当所述第一SDN控制器未被选举为执行控制器,且所述检测单元检测到执行控制器不在位,并不存在在位的其它领导控制器时,以所述第一SDN控制为新的执行控制器对外提供服务。
请一并参阅图4,为本发明实施例提供的另一种集群实现装置的结构示意图,该实施例在前述图3所示实施例的基础上,图4所示的集群实现装置还可以包括:发送单元340和接收单元350;其中:
发送单元340,用于当所述第一SDN控制器被选举为执行控制器时,向其它领导控制器发送数据同步请求,以使所述其它领导控制器接收到所述数据同步请求时根据所述数据同步请求中携带的数据记录事务日志,并回应确认ACK消息;
接收单元350,用于接收到所述其它领导控制器回应的ACK消息;
所述发送单元340,还用于当所述接收单元350接收到至少半数其它领导控制器回应的ACK消息时,向所述其它领导控制器发送提交消息,并向成员控制器发送所述数据更新消息,以使所述其它领导控制器接收到所述提交消息时,根据所述事务日志修改内存数据模型,以及所述成员控制器接收到所述数据更新消息时,根据所述数据更新消息中携带的数据进行数据更新。
请一并参阅图5,为本发明实施例提供的另一种集群实现装置的结构示意图,该实施例在前述图4所示实施例的基础上,图5所示的集群实现装置还可以包括:记录单元360和修改单元370;其中:
记录单元360,用于当所述第一SDN控制器为领导控制器,且未被选举为执行控制器,并接收到执行控制器发送的数据同步请求时,根据接收到的数据同步请求中携带的数据记录事务日志;
所述发送单元340,还用于并向所述执行控制器发送ACK消息;
修改单元370,用于当所述接收单元350接收到所述执行控制器发送的提交消息时,根据所记录的事务日志修改内存数据模型。
请一并参阅图6,为本发明实施例提供的另一种集群实现装置的结构示意图,该实施例在前述图3所示实施例的基础上,图6所示的集群实现装置中,选举单元320可以包括:
发送子单元321,用于向其它领导控制器发送携带所述第一SDN控制器的优先级以及标识信息的选举消息;
接收子单元322,用于接收其它领导控制器发送的携带所述其它领导控制器的优先级以及标识信息的选举消息;
比较子单元323,用于比较所述第一SDN控制器的优先级与其它领导控制器的优先级;
确定子单元324,用于当所述第一SDN控制器的优先级高于所述其它领导控制器的优先级时,确定所述第一SDN控制器为执行控制器;当所述其它领导控制器中存在优先级高于第一SDN控制器的优先级的领导控制器时,确定优先级最高的其它领导控制器为执行控制器。
在可选实施例中,当集群运行过程中有新的SDN控制器加入集群时,所述新加入的SDN控制器作为成员控制器。
在可选实施例中,所述SDN控制器集群中包括至少两个被配置为领导控制器的SDN控制器具体为:所述SDN控制器集群中连接在不同接入交换机下的至少两个SDN控制器被配置为领导控制器;或,所述SDN控制器集群中运行在不同核心交换机上的至少两个SDN控制器被配置为领导控制器。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
由上述实施例可见,通过对SDN控制器集群中的SDN控制器进行角色划分,并将SDN控制器集群中的至少两个SDN控制器配置为领导控制器,且领导控制器之外的SDN控制器配置为成员控制器,当SDN控制器为领导控制器时,与集群中其它领导控制器进行选举,以选举出执行控制器,当SDN控制器未被选举为执行控制器,并检测到执行控制器不在位,且不存在其它领导控制器时,该SDN控制器可以作为新的执行控制器对外提供服务,由于本发明实施例提供的技术方案中只需集群中存在在位的领导控制器,即能选举出执行控制器对外提供服务,因而,与上述现有技术方案相比,降低了由于集群脑裂导致无法提供服务的情况发生的概率,提高了集群的可靠性。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种集群实现方法,应用于软件自定义网络SDN控制器集群中的第一SDN控制器,其特征在于,所述SDN控制器集群中包括至少两个被配置为领导控制器的SDN控制器,领导控制器之外的其它SDN控制器为成员控制器,所述方法包括:
当所述第一SDN控制器为领导控制器时,与集群中其它领导控制器进行选举,以选举出执行控制器;
当所述第一SDN控制器未被选举为执行控制器,并检测到执行控制器不在位,且不存在在位的其它领导控制器时,所述第一SDN控制器作为新的执行控制器对外提供服务。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第一SDN控制器被选举为执行控制器时,向其它领导控制器发送数据同步请求,以使所述其它领导控制器接收到所述数据同步请求时根据所述数据同步请求中携带的数据记录事务日志,并回应确认ACK消息;
当接收到至少半数其它领导控制器回应的ACK消息时,向所述其它领导控制器发送提交消息,并向成员控制器发送所述数据更新消息,以使所述其它领导控制器接收到所述提交消息时,根据所述事务日志修改内存数据模型,以及所述成员控制器接收到所述数据更新消息时,根据所述数据更新消息中携带的数据进行数据更新。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第一SDN控制器为领导控制器,且未被选举为执行控制器,并接收到执行控制器发送的数据同步请求时,根据接收到的数据同步请求中携带的数据记录事务日志,并向所述执行控制器发送ACK消息;
当接收到所述执行控制器发送的提交消息时,根据所记录的事务日志修改内存数据模型。
4.根据权利要求1所述的方法,其特征在于,所述与集群中其它领导控制器进行选举,以选举出执行控制器,包括:
向其它领导控制器发送携带所述第一SDN控制器的优先级以及标识信息的选举消息,并接收其它领导控制器发送的携带所述其它领导控制器的优先级以及标识信息的选举消息;
当所述第一SDN控制器的优先级高于所述其它领导控制器的优先级时,确定所述第一SDN控制器为执行控制器;
当所述其它领导控制器中存在优先级高于第一SDN控制器的优先级的领导控制器时,确定优先级最高的其它领导控制器为执行控制器。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当集群运行过程中有新的SDN控制器加入集群时,所述新加入的SDN控制器作为成员控制器。
6.根据权利要求1所述的方法,其特征在于,所述SDN控制器集群中包括至少两个被配置为领导控制器的SDN控制器具体为:所述SDN控制器集群中连接在不同接入交换机下的至少两个SDN控制器被配置为领导控制器;或,所述SDN控制器集群中运行在不同核心交换机上的至少两个SDN控制器被配置为领导控制器。
7.一种集群实现装置,应用于软件自定义网络SDN控制器集群中的第一SDN控制器,其特征在于,所述SDN控制器集群中包括至少两个被配置为领导控制器的SDN控制器,领导控制器之外的其它SDN控制器为成员控制器,所述装置包括:
检测单元,用于检测其它控制器是否在位;
选举单元,用于当所述第一SDN控制器为领导控制器时,与集群中其它领导控制器进行选举,以选举出执行控制器;
服务单元,用于当所述第一SDN控制器未被选举为执行控制器,且所述检测单元检测到执行控制器不在位,并不存在在位的其它领导控制器时,以所述第一SDN控制为新的执行控制器对外提供服务。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
发送单元,用于当所述第一SDN控制器被选举为执行控制器时,向其它领导控制器发送数据同步请求,以使所述其它领导控制器接收到所述数据同步请求时根据所述数据同步请求中携带的数据记录事务日志,并回应确认ACK消息;
接收单元,用于接收到所述其它领导控制器回应的ACK消息;
所述发送单元,还用于当所述接收单元接收到至少半数其它领导控制器回应的ACK消息时,向所述其它领导控制器发送提交消息,并向成员控制器发送所述数据更新消息,以使所述其它领导控制器接收到所述提交消息时,根据所述事务日志修改内存数据模型,以及所述成员控制器接收到所述数据更新消息时,根据所述数据更新消息中携带的数据进行数据更新。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
记录单元,用于当所述第一SDN控制器为领导控制器,且未被选举为执行控制器,并接收到执行控制器发送的数据同步请求时,根据接收到的数据同步请求中携带的数据记录事务日志;
所述发送单元,还用于并向所述执行控制器发送ACK消息;
修改单元,用于当所述接收单元接收到所述执行控制器发送的提交消息时,根据所记录的事务日志修改内存数据模型。
10.根据权利要求7所述的装置,其特征在于,所述选举单元,包括:
发送子单元,用于向其它领导控制器发送携带所述第一SDN控制器的优先级以及标识信息的选举消息;
接收子单元,用于接收其它领导控制器发送的携带所述其它领导控制器的优先级以及标识信息的选举消息;
比较子单元,用于比较所述第一SDN控制器的优先级与其它领导控制器的优先级;
确定子单元,用于当所述第一SDN控制器的优先级高于所述其它领导控制器的优先级时,确定所述第一SDN控制器为执行控制器;当所述其它领导控制器中存在优先级高于第一SDN控制器的优先级的领导控制器时,确定优先级最高的其它领导控制器为执行控制器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610587354.XA CN106230622B (zh) | 2016-07-22 | 2016-07-22 | 一种集群实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610587354.XA CN106230622B (zh) | 2016-07-22 | 2016-07-22 | 一种集群实现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106230622A true CN106230622A (zh) | 2016-12-14 |
CN106230622B CN106230622B (zh) | 2020-02-11 |
Family
ID=57531609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610587354.XA Active CN106230622B (zh) | 2016-07-22 | 2016-07-22 | 一种集群实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106230622B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108881059A (zh) * | 2018-05-29 | 2018-11-23 | 新华三技术有限公司 | 控制器角色确定方法、网络交换设备、控制器及网络系统 |
CN112099451A (zh) * | 2020-09-18 | 2020-12-18 | 北京航空航天大学 | 一种工业机器人的高频数据可靠采集方法与装置 |
CN112165397A (zh) * | 2020-09-18 | 2021-01-01 | 山东超越数控电子股份有限公司 | 一种基于sdn的可动态配置通信网络 |
CN112413833A (zh) * | 2020-11-20 | 2021-02-26 | 珠海格力电器股份有限公司 | 空调组群系统的群控制方法、系统、控制中心设备 |
CN112751789A (zh) * | 2021-01-05 | 2021-05-04 | 浪潮云信息技术股份公司 | 一种非对称sdn控制器集群的实现方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140039014A (ko) * | 2014-02-24 | 2014-03-31 | 연세대학교 산학협력단 | 복수의 컨트롤러를 구비한 소프트웨어 정의 네트워크에서 스위치 접속 변경 방법 |
US20140211661A1 (en) * | 2013-01-25 | 2014-07-31 | Argela Yazilim Ve Bilisim Teknolojileri San. Ve. Tic. A.S. | Automatic Discovery of Multiple Controllers in Software Defined Networks (SDNs) |
CN104104572A (zh) * | 2014-07-15 | 2014-10-15 | 杭州华三通信技术有限公司 | 一种sdn网络中的交换机自动部署方法及装置 |
CN104158642A (zh) * | 2014-08-08 | 2014-11-19 | 上海斐讯数据通信技术有限公司 | 一种为软件定义网络控制器提供备份的方法及系统 |
CN104270260A (zh) * | 2014-09-19 | 2015-01-07 | 杭州华三通信技术有限公司 | 一种sdn控制器集群规模的弹性扩展的方法及装置 |
CN104486394A (zh) * | 2014-12-10 | 2015-04-01 | 杭州华三通信技术有限公司 | 不中断业务软件升级方法及装置 |
-
2016
- 2016-07-22 CN CN201610587354.XA patent/CN106230622B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140211661A1 (en) * | 2013-01-25 | 2014-07-31 | Argela Yazilim Ve Bilisim Teknolojileri San. Ve. Tic. A.S. | Automatic Discovery of Multiple Controllers in Software Defined Networks (SDNs) |
KR20140039014A (ko) * | 2014-02-24 | 2014-03-31 | 연세대학교 산학협력단 | 복수의 컨트롤러를 구비한 소프트웨어 정의 네트워크에서 스위치 접속 변경 방법 |
CN104104572A (zh) * | 2014-07-15 | 2014-10-15 | 杭州华三通信技术有限公司 | 一种sdn网络中的交换机自动部署方法及装置 |
CN104158642A (zh) * | 2014-08-08 | 2014-11-19 | 上海斐讯数据通信技术有限公司 | 一种为软件定义网络控制器提供备份的方法及系统 |
CN104270260A (zh) * | 2014-09-19 | 2015-01-07 | 杭州华三通信技术有限公司 | 一种sdn控制器集群规模的弹性扩展的方法及装置 |
CN104486394A (zh) * | 2014-12-10 | 2015-04-01 | 杭州华三通信技术有限公司 | 不中断业务软件升级方法及装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108881059A (zh) * | 2018-05-29 | 2018-11-23 | 新华三技术有限公司 | 控制器角色确定方法、网络交换设备、控制器及网络系统 |
CN108881059B (zh) * | 2018-05-29 | 2022-05-24 | 新华三技术有限公司 | 控制器角色确定方法、网络交换设备、控制器及网络系统 |
CN112099451A (zh) * | 2020-09-18 | 2020-12-18 | 北京航空航天大学 | 一种工业机器人的高频数据可靠采集方法与装置 |
CN112165397A (zh) * | 2020-09-18 | 2021-01-01 | 山东超越数控电子股份有限公司 | 一种基于sdn的可动态配置通信网络 |
CN112099451B (zh) * | 2020-09-18 | 2022-01-07 | 北京航空航天大学 | 一种多机协作的分布式采集架构装置 |
CN112413833A (zh) * | 2020-11-20 | 2021-02-26 | 珠海格力电器股份有限公司 | 空调组群系统的群控制方法、系统、控制中心设备 |
CN112413833B (zh) * | 2020-11-20 | 2021-11-16 | 珠海格力电器股份有限公司 | 空调组群系统的群控制方法、系统、控制中心设备 |
CN112751789A (zh) * | 2021-01-05 | 2021-05-04 | 浪潮云信息技术股份公司 | 一种非对称sdn控制器集群的实现方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106230622B (zh) | 2020-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113014634B (zh) | 集群选举处理方法、装置、设备及存储介质 | |
US7843811B2 (en) | Method of solving a split-brain condition | |
CN106230622A (zh) | 一种集群实现方法及装置 | |
CN105933137B (zh) | 一种资源管理方法、装置及系统 | |
US9703608B2 (en) | Variable configurations for workload distribution across multiple sites | |
CN105933407B (zh) | 一种实现Redis集群高可用的方法及系统 | |
US20030005350A1 (en) | Failover management system | |
US20060085669A1 (en) | System and method for supporting automatic protection switching between multiple node pairs using common agent architecture | |
CN108234158A (zh) | Vnf的建立方法、nfvo以及网络系统 | |
CN107181637B (zh) | 一种心跳信息发送方法、装置及心跳发送节点 | |
CN112948063B (zh) | 云平台的创建方法、装置、云平台以及云平台实现系统 | |
CN104717077B (zh) | 一种管理数据中心的方法、装置及系统 | |
US20070270984A1 (en) | Method and Device for Redundancy Control of Electrical Devices | |
WO2020001409A1 (zh) | 一种虚拟网络功能vnf部署方法及装置 | |
CN114095343A (zh) | 基于双活系统的容灾方法、装置、设备及存储介质 | |
CN104657240B (zh) | 多内核操作系统的失效控制方法及装置 | |
CN112631756A (zh) | 一种应用于航天测控软件的分布式调控方法及装置 | |
CN107483257B (zh) | 一种基于x86和arm混合环境的应用系统部署方法及架构 | |
CN107005434A (zh) | 一种同步虚拟网络功能vnf状态的方法、装置和设备 | |
CN111464346B (zh) | 基于atca架构的主备用控制板同步方法及系统 | |
EP1793626A1 (en) | System and method for implementing service switching | |
CN115567400A (zh) | 一种整机柜管理方法、装置、设备和介质 | |
CN105634694A (zh) | 一种节点间传输数据的方法和系统 | |
CN107888491A (zh) | Hsb备份系统及基于二层组网vrrp协议的ac双机热备方法 | |
CN112214466B (zh) | 分布式集群系统及数据写入方法、电子设备、存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant before: Huasan Communication Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |