一种SDN控制器集群合并方法及装置与流程

文档序号:12133730阅读:289来源:国知局
一种SDN控制器集群合并方法及装置与流程

本发明涉及通信技术领域,特别是涉及一种SDN控制器集群合并方法及装置。



背景技术:

SDN网络中的多台控制器可以组成控制器集群。SDN控制器集群中,每台控制器配置有其在SDN控制器集群中的角色。具体地,控制器在SDN集群中的角色有两种:主控制器(leader控制器)和普通控制器(member控制器)。如图1(a)所示的SDN网络中,SDN控制器集群包括主控制器1、主控制器2、普通控制器1、以及普通控制器2。

在SDN控制器集群配置完成后,将启动选举机制,通过选举机制,在多台主控制器中选举产生一个主用主控制器,其余的主控制器为备用主控制器。主用主控制器负责对SDN控制器集群内其他控制器产生的数据和服务进行集中的决策和管理,以达到数据在SDN控制器集群范围内一致和同步的目的。如图1(a)所示的SDN控制器集群中,主控制器1为主用主控制器,主控制器2为备用主控制器。

SDN控制器集群中,主控制器与管理平台(如云管理平台)之间的通信接口为北向接口,主控制器与网络设备(如接入设备)之间的通信接口为南向接口。如图1(a)所示,主控制器1与云管理平台之间的通信接口为北向接口,主控制器1、主控制器2与接入设备之间的通信接口为南向接口。通过北向接口,主控制器1可以接收云管理平台下发的持久化数据,如配置数据、用户管理信息等。通过南向接口,主控制器1、主控制器2通过接入设备,可以与各交换设备之间交互运行数据。并且,主控制器1还可以将云管理平台下发的持久化数据通过接入设备同步到主控制器2中。

有些情况下,由于网络故障或其他原因,会导致SDN控制器集群分裂,即一个SDN控制器集群分裂成为两个以上的SDN控制器子集群。如图1(b)所示,控制器集群分裂后,主控制器1和普通控制器1组成一个控制器子集群,主控制器2和普通控制器2组成另一个控制器子集群。这种情况下,当云管理平台下发持久化数据时,持久化数据只能下发到主控制器1中,由于网络故障,主控制器1不能够将持久化数据同步到主控制器2中。

当网络故障恢复后,各SDN控制器子集群合并为一个SDN控制器集群,并依据策略,选出合并后SDN控制器集群的主用主控制器,例如,可以根据各SDN控制器子集群中的控制器数量;或根据各SDN控制器子集群中的主用主控制器的优先级,选取其中一个SDN控制器子集群中的主用主控制器作为合并后的集群的主用主控制器,如图1(b)所示的SDN控制器子集群合并时,当主用主控制器2的优先级高于主用主控制器1的优先级时,可以将主用主控制器2作为合并后的控制器集群的主用主控制器。

但是,由于在控制器集群分裂后,主控制器2中并不能接收到云管理平台下发的持久化数据,因此,将主控制器2作为合并后的控制器集群的主用主控制器,会将最新的持久化数据丢失,进而导致合并后的控制器集群的主用主控制器中保存的数据不是最新的持久化数据。



技术实现要素:

本发明实施例的目的在于提供一种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(a)为一种含SDN控制器集群的SDN网络结构示意图;

图1(b)为图1(a)中所示的SDN控制器集群发生分裂后SDN网络的结构示意图;

图2为本发明实施例提供的一种SDN控制器集群合并方法的流程图;

图3为本发明实施例提供的一种SDN控制器集群合并装置的结构示意图;

图4为本发明实施例提供的一种SDN控制器集群合并装置的另一结构示意图。

具体实施方式

为了确保合并后的SDN控制器集群的主用主控制器中保存的为最新的数据,本发明实施例提供了一种SDN控制器集群合并方法及装置。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。

本申请所提出的实施例,将SDN控制器集群的控制器中的数据分为两类进行区别对待,持久化数据和非持久化数据。其中,持久化数据是指需要SDN控制器存储到持久化存储设备中,例如存储到数据库或者持久文件中,掉电重启后不会丢失的数据,通常是由管理平台,如云管理平台,下发的。例如,各种配置数据、SDN控制器的用户管理信息等等。非持久化数据,是指不需要SDN控制器存储到持久化存储设备中的数据。这类数据是可以根据持久化数据以及网络实时状态进行动态运行计算得到的,例如,运行数据、流表信息等。

分裂的SDN控制器子集群合并为一个SDN控制器集群时,只要保证合并后的SDN控制器集群的主用主控制器中保存的持久化数据为最新的数据,该主用主控制器即可根据最新的持久化数据,恢复最新的非持久化数据,从而保证该主用主控制器中保存的所有数据均为最新的数据。

在本发明实施例中,控制器集群分裂成各控制器子集群时,各个控制器子集群的主用主控制器将本地保存的持久化数据更新时间,做为本控制器子集群的主用主控制器持久化数据更新时间。例如,当主控制器由备用主控制器升级为分裂后的控制器子集群中的主用主控制器时,其持久化数据更新时间即为其所在的控制器子集群初始的持久化时间。

当一个控制器子集群持久化数据更新时,如,持久化数据发生增加、修改、删除等操作时,该控制器子集群的主用主控制器可以记录更新时的时间,即为最新的持久化数据更新时间。本发明实施例提供了一种SDN控制器集群合并方法过程,应用于SDN控制器子集群中的主用主控制器,如图2所示,该过程可以包括以下步骤:

S201,当检测到自身所在的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控制器子集群主用主控制器发送携带自身持久化数据更新时间的通知报文;或者,其可以在向其它SDN控制器子集群主用主控制器发送交互报文时,将自身的持久化数据更新时间携带在交互报文中发送给其它SDN控制器子集群主用主控制器。

同样的,主用主控制器也可以接收其它SDN控制器子集群主用主控制器发送的通知报文或交互报文,获取所接收的报文中携带的对应各SDN控制器子集群主用主控制器的持久化数据更新时间。

S202,判断本地保存的持久化数据更新时间是否均晚于其它SDN控制器子集群主用主控制器的持久化数据更新时间;如果否,执行步骤S203,如果是,不执行操作。

获取到本地保存的持久化数据更新时间,以及其它SDN控制器子集群主用主控制器的持久化数据更新时间后,主用主控制器可以判断本地保存的持久化数据更新时间是否均晚于其它SDN控制器子集群主用主控制器的持久化数据更新时间。

也就是说,主用主控制器可以判断本地保存的持久化数据是否为所有的主用主控制器中最新的数据,以根据判断结果,来确定如何进行SDN控制器集群的合并。

S203,将自身所在的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控制器子集群中的主用主控制器,其都可以在本地保存对应的持久化数据更新时间,当SDN控制器子集群中的主用主控制器检测到自身所在的SDN控制器子集群与本集群其它SDN控制器子集群合并时,主用主控制器可以根据本地保存的持久化数据更新时间,以及获得的其他SDN控制器子集群主用主控制器的持久化数据更新时间,来决定自身是否进行降级合并。当自身的持久化数据更新时间最晚时,可以表明自身保存的持久化数据为最新的数据,此时,该主用主控制器不做任何操作;当自身的持久化数据更新时间非最晚时,表明还存在比自身更新时间更晚的持久化数据,这种情况下,该主用主控制器可以将自身所在的SDN控制器子集群降级,以加入持久化数据更新时间最晚的主用主控制器所在的SDN控制器子集群,从而保证了合并后的SDN集群的主用主控制器为保存有最新持久化数据的主用主控制器。并且,由于非持久化数据可以根据持久化数据进行恢复,因此,本发明实施例能够保证合并后的SDN集群的主用主控制器中保存的为最新的数据。

作为本发明实施例的一种实现方式,主用主控制器在本地保存持久化数据更新时间时,其可以将持久化数据更新时间保存在本地保存的持久化数据对应的日志中。相应的,主用主控制器在获取本地保存的持久化数据更新时间时,可以根据本地保存的持久化数据对应的日志,获取该日志中记录的持久化数据更新时间。

作为本发明实施例的另一种实现方式,当主用主控制器本地保存的持久化数据更新时,如,持久化数据发生增加、修改、删除等操作时,主用主控制器可以更新本地保存的持久化数据更新时间,以保证本地保存的持久化数据更新时间的准确性。

相应于上面的方法实施例,本发明实施例还提供了相应的装置实施例。

如3为本发明实施例提供的一种SDN控制器集群合并装置,其特征在于,应用于SDN控制器子集群中的主用主控制器,所述装置包括:

获取模块310,用于当检测到自身所在的SDN控制器子集群与本集群其它SDN控制器子集群合并时,获取本地保存的持久化数据更新时间,并获取其它SDN控制器子集群主用主控制器的持久化数据更新时间;

判断模块320,用于判断本地保存的持久化数据更新时间是否均晚于其它SDN控制器子集群主用主控制器的持久化数据更新时间;

合并模块330,用于当所述判断模块判断结果为否时,将自身所在的SDN控制器子集群降级,以加入持久化数据更新时间最晚的其它SDN控制器子集群。

本发明实施例提供了一种SDN控制器集群合并装置,各SDN控制器子集群中的主用主控制器,都可以在本地保存对应的持久化数据更新时间,当SDN控制器子集群中的主用主控制器检测到自身所在的SDN控制器子集群与本集群其它SDN控制器子集群合并时,主用主控制器可以根据本地保存的持久化数据更新时间,以及获得的其他SDN控制器子集群主用主控制器的持久化数据更新时间,来决定自身是否进行降级合并。当自身的持久化数据更新时间最晚时,可以表明自身保存的持久化数据为最新的数据,此时,该主用主控制器不做任何操作;当自身的持久化数据更新时间非最晚时,表明还存在比自身更新时间更晚的持久化数据,这种情况下,该主用主控制器可以将自身所在的SDN控制器子集群降级,以加入持久化数据更新时间最晚的主用主控制器所在的SDN控制器子集群,从而保证了合并后的SDN集群的主用主控制器为保存有最新持久化数据的主用主控制器。并且,由于非持久化数据可以根据持久化数据进行恢复,因此,本发明实施例能够保证合并后的SDN集群的主用主控制器中保存的为最新的数据。

作为本发明实施例的一种实现方式,如图4所示,所述获取模块310,包括:

发送子模块311,用于向其它SDN控制器子集群主用主控制器发送持久化数据更新时间请求报文;

获取子模块312,用于接收其它SDN控制器子集群主用主控制器发送的响应报文,获取各响应报文中携带的对应各SDN控制器子集群主用主控制器的持久化数据更新时间。

作为本发明实施例的另一种实现方式,所述获取模块310,具体用于接收其它SDN控制器子集群主用主控制器发送的报文,获取各报文中携带的对应各SDN控制器子集群主用主控制器的持久化数据更新时间。

作为本发明实施例的另一种实现方式,所述获取模块310,具体用于根据本地保存的持久化数据对应的日志,获取所述日志中记录的持久化数据更新时间。

作为本发明实施例的另一种实现方式,如图4所示,所述装置还包括:

更新模块340,用于当本地保存的持久化数据更新时,更新本地保存的持久化数据更新时间。

对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

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

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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