一种SDN控制器集群数据处理方法、设备及介质与流程

文档序号:26894002发布日期:2021-10-09 12:28阅读:120来源:国知局
一种SDN控制器集群数据处理方法、设备及介质与流程
一种sdn控制器集群数据处理方法、设备及介质
技术领域
1.本说明书涉及通信技术领域,尤其涉及一种sdn控制器集群数据处理方法、设备及介质。


背景技术:

2.软件定义网络(software defined network,sdn)是由美国斯坦福大学clean state课题研究组提出的一种新型网络创新架构,是网络虚拟化的一种实现方式。其核心技术openflow通过将网络设备的控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能,为核心网络及应用的创新提供了良好的平台。
3.随着软件技术的发展在数据中心网络和园区网络环境中,越来越多的用到软件定义网络sdn技术。sdn控制器会对核心网络进行部署和监控,这就需要sdn控制器具备高可靠性,所以一般情况下,都是以集群的方式部署,即多台sdn控制器组成一个集群。而对于sdn控制器集群环境来说,所有重要数据的同步都是非常有必要的。现有技术中通过zookeeper(zk)实现集群数据库的同步,当接收到数据时会将数据存入到本地的缓存。本地的数据库以及zk的数据库变化会通知其他控制器有数据的变化。其他控制器处理数据的变化并将数据写入到本地缓存和本地的数据库中。该方式中的本地缓存只提供对外的数据但是集群之间的本地缓存数据很难保持一致,容易引起业务的异常。而且集群间的数据库数据可能不一致,若从数据库恢复数据会造成业务的异常。
4.基于上述技术问题,本技术提出了在sdn控制器集群数据处理过程中更全面的数据一致性同步方法。


技术实现要素:

5.本说明书一个或多个实施例提供了一种sdn控制器集群数据处理方法、设备及介质,用于解决如下技术问题:如何在sdn控制器集群数据处理过程中提供一种更全面的数据一致性处理方法
6.本说明书一个或多个实施例采用下述技术方案:
7.本说明书一个或多个实施例提供一种sdn控制器集群数据处理方法,方法包括:
8.将多个sdn控制器部署为sdn控制器集群;其中,所述sdn控制器集群包括一个主控制器与多个备控制器;
9.通过所述主控制器接收业务请求,并基于所述主控制器对所述业务请求进行处理,以获得缓存数据与存储数据;
10.根据预先设置的缓存同步机制将所述缓存数据同步到所述备控制器中;
11.通过预先部署的数据库集群中关系型数据库的同步机制,将所述存储数据同步到所述数据库集群中的其它关系型数据库中。
12.可选地,本说明书一个或多个实施例中,所述将多个sdn控制器部署为sdn控制器集群之后,若所述sdn控制器集群的主控制器处于异常状态,则所述方法还包括:
13.根据所述sdn控制器的性能指标,确定所述备控制器在所述sdn控制器集群中的优先级;其中,所述sdn控制器的性能指标至少包括以下任意一项或多项:所述控制器的计算性能、所述控制器的存储性能、所述控制器的宽带性能;
14.对所述sdn控制器集群中备控制器的优先级进行排列,以获得所述sdn控制器集群的集群列表;
15.根据所述集群列表选择优先级高的备控制器作为当前主控制器,将所述集群列表的其他控制器作为当前备控制器;并对所述当前主控制器与所述当前备控制器进行初始化,以完成sdn控制器集群的更新部署。
16.可选地,本说明书一个或多个实施例中,所述基于所述主控制器接收业务请求之前,所述方法还包括:
17.将多个关系型数据库进行部署,以获得预先部署的数据库集群;其中,所述关系型数据库与所述sdn控制器集群中的sdn控制器一一对应;
18.查询所述预先部署的数据库集群的启动状态,若确定所述预先部署的数据库集群处于正常状态则开启所述sdn控制器集群;
19.若所述sdn控制器集群启动后,所述sdn控制器集群中的sdn控制器可以自动连接对应的关系型数据库,则所述sdn控制器集群启动正常,可以接收业务请求。
20.可选地,本说明书一个或多个实施例中,所述根据预先设置的缓存同步机制将所述缓存数据同步到所述备控制器中,具体包括:
21.开启所述主控制器的缓存变化通知与所述备控制器的缓存变化监听;
22.若所述备控制器监听到所述主控制器的缓存数据发生变化,则所述备控制器通过模拟所述主控制器处理业务请求的流程,将所述缓存数据同步到备控制器。
23.可选地,本说明书一个或多个实施例中,所述根据预先设置的缓存同步机制将所述缓存同步数据同步到所述备控制器中,若所述主控制器处于异常状态,则所述方法还包括:
24.通过所述sdn控制器集群的更新部署,确定出所述当前主控制器;
25.若确定所述主控制器恢复正常状态,则将所述当前主控制器的缓存数据进行全量同步,并将所述主控制器作为备控制器加入所述sdn控制器集群;
26.若所述备控制器监听到所述当前主控制器的缓存数据发生变化,则所述备控制器通过模拟所述当前主控制器处理业务请求的流程,将所述缓存数据同步到备控制器。
27.可选地,本说明书一个或多个实施例中,所述通过预先部署的数据库集群中的数据库同步机制,将所述存储数据同步到所述数据库集群中的其它关系型数据库中,具体包括:
28.将所述业务请求封装为所述数据库集群中的关系型数据库可以识别的请求数据;
29.通过与所述主控制器对接的关系型数据库处理所述请求数据,获得与所述业务请求对应的处理数据;
30.将所述处理数据与所述数据库集群中的其它关系型数据库中存储的初始存储数据进行对比,并将与所述初始存储数据具有差异的处理数据确定为存储数据;
31.通过所述主控制器对接的关系型数据库,将所述存储数据同步到所述备控制器对接的关系型数据库,以实现所述存储数据在数据库集群中的同步。
32.可选地,本说明书一个或多个实施例中,所述关系型数据库为postgresql数据库。
33.可选地,本说明书一个或多个实施例中,所述确定所述主控制器处于异常状态,具体包括:
34.根据预先设置的所述主控制器的心跳检测机制,确定所述主控制器发出的心跳消息超出设置的阈值,则对所述主控制器发出通信消息;
35.若在预设的发送次数中可以检测到所述主控制器返回的消息,则确定所述主控制器处于正常状态;若在预设次数中不能检测到所述主控制器返回的消息,则确定所述主控制器处于异常状态。
36.本说明书一个或多个实施例提供一种sdn控制器集群数据处理设备,包括:
37.至少一个处理器;以及,
38.与所述至少一个处理器通信连接的存储器;其中,
39.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
40.将多个sdn控制器部署为sdn控制器集群;其中,所述sdn控制器集群包括一个主控制器与多个备控制器;
41.通过所述主控制器接收业务请求,并基于所述主控制器对所述业务请求进行处理,以获得缓存数据与存储数据;
42.根据预先设置的缓存同步机制将所述缓存数据同步到所述备控制器中;
43.通过预先部署的数据库集群中关系型数据库的同步机制,将所述存储数据同步到所述数据库集群中的其它关系型数据库中。
44.本说明书一个或多个实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
45.将多个sdn控制器部署为sdn控制器集群;其中,所述sdn控制器集群包括一个主控制器与多个备控制器;
46.通过所述主控制器接收业务请求,并基于所述主控制器对所述业务请求进行处理,以获得缓存数据与存储数据;
47.根据预先设置的缓存同步机制将所述缓存数据同步到所述备控制器中;
48.通过预先部署的数据库集群中关系型数据库的同步机制,将所述存储数据同步到所述数据库集群中的其它关系型数据库中。
49.本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
50.通过缓存同步机制与关系型数据库的同步机制,使得sdn控制器集群的数据获得了更加全面的一致性,不仅保证了数据库的同步还保证了控制器长时间运行下的重要的缓存数据的同步。依赖关系型数据库组成的数据库集群进行数据库数据的同步,克服了传统技术中依赖sdn控制器对数据库进行同步对sdn控制器的压力。通过有选择的同步sdn控制器集群的缓存,可以将重要的缓存数据同步于备控制器,在集群主控制器故障时可以承接业务流程,不影响业务进程。
附图说明
51.为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或
现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
52.图1为本说明书一个或多个实施例提供的一种sdn控制器集群数据处理方法的方法流程示意图;
53.图2为本说明书一个或多个实施例提供的一种应用场景下,图1中方法的总体框架图;
54.图3为本说明书一个或多个实施例提供的一种应用场景下sdn控制器集群的缓存同步流程示意图;
55.图4为本说明书一个或多个实施例提供的一种应用场景下数据库集群的集成方式;
56.图5为本说明书一个或多个实施例提供的一种sdn控制器集群数据处理设备的内部结构示意图;
57.图6为本说明书一个或多个实施例提供的一种非易失性存储介质的内部结构示意图。
具体实施方式
58.本说明书实施例提供一种sdn控制器集群数据处理方法、设备及介质。
59.sdn控制器的主要职责就是控制数据中心的网络,对网络运维和网络资源的应用起到至关重要的作用,但是网络控制集中化对控制器在安全性、可靠性、性能等特性有更高的要求。如果控制器在网络架构中的安全性和可靠性无法满足要求的话会影响到整个网络的运行,严重的话可能直接导致网络瘫痪。
60.传统的软件控制器部署,多是单节点。然而单一的控制器既没有主备保障,也无法解决跨地区的sdn网络问题,所以需要引入sdn控制器集群技术。面向集群的sdn控制器在扩展性、可靠性、性能上等方面要优于单一的控制器。而现有技术中对于有集群做主备保障的控制器,对于数据的同步没有比较全面的方法,大多是依赖主节点频繁发起同步请求来同步备节点的数据,这种方式只能同步控制器内部数据库的数据,不能同步每个控制器代码运行时产生的有用缓存信息。并且数据库的同步只依赖控制器,如果管理网出问题时间较长,主备节点数据库差异比较大,在网络恢复正常后,进行数据同步的时候,会给控制器造成较大的数据同步压力,容易引发控制器因同步时间过长,而增加运行风险。
61.为了解决上述技术问题,本技术提出了一种sdn控制器集群数据处理方法。通过sdn控制器集群的缓存同步机制将主控制器在程序运行过程中产生的数据缓存到备控制器,保证了sdn控制器除数据库以外,一些额外的缓存数据的同步,缓存数据的同步保障了主备控制器在震荡、切换业务时,业务无任何感知。通过关系型数据库的集群自动将差异化的数据同步到所有备控制器所对接的数据库中,不需要控制器提供额外的开销来处理,相对于通过控制器来处理具有稳定快递的特点。
62.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书实施例,本领
域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
63.本说明书一个或多个实施例由控制sdn控制器进行数据处理的服务器终端或所述服务器终端所对应的各执行单元进行操作以下结合附图,详细说明本说明书提供的技术方案。
64.以下结合附图,详细说明本说明书提供的技术方案。
65.如图1所示,本说明书一个或多个实施例提供了一种sdn控制器集群数据处理方法的方法流程示意图。
66.图1中的流程可以包括以下步骤:
67.s101:将多个sdn控制器部署为sdn控制器集群;其中,所述sdn控制器集群包括一个主控制器与多个备控制器。
68.在本说明书一个或多个实施例中,所述将多个sdn控制器部署为sdn控制器集群之后,若所述sdn控制器集群的主控制器处于异常状态,则所述方法还包括:
69.根据所述sdn控制器的性能指标,确定所述备控制器在所述sdn控制器集群中的优先级;其中,所述sdn控制器的性能指标至少包括以下任意一项或多项:所述控制器的计算性能、所述控制器的存储性能、所述控制器的宽带性能;
70.对所述sdn控制器集群中备控制器的优先级进行排列,以获得所述sdn控制器集群的集群列表;
71.根据所述集群列表选择优先级高的备控制器作为当前主控制器,将所述集群列表的其他控制器作为当前备控制器;并对所述当前主控制器与所述当前备控制器进行初始化,以完成sdn控制器集群的更新部署。
72.在本说明书一个或多个实施例中,根据预先设置的所述主控制器的心跳检测机制,确定所述主控制器发出的心跳消息超出设置的阈值,则对所述主控制器发出通信消息;
73.若在预设的发送次数中可以检测到所述主控制器返回的消息,则确定所述主控制器处于正常状态;若在预设次数中不能检测到所述主控制器返回的消息,则确定所述主控制器处于异常状态。
74.如图2所述的一种应用场景下的sdn控制器数据处理方法的总体框架图可知控制器集群数据的同步涉及到sdn控制器集群与数据库集群这两个集群。其中,sdn控制器集群由多个sdn控制器部署得到一主多备的控制器集群,即包含一个主控制器与多个备控制器。完成控制器集群的部署后,主控制器可以处理前端发送的各种业务请求,对业务请求进行处理,操作缓存,操作数据库对数据进行处理等。
75.其中需要说明的是,在sdn控制器集群中预先设置有对主控制器的心跳检测机制,用来监测主控制器是否处于正常运行的状态。预先设置时间阈值,如果在设置的时间阈值内检测不到主控制器所发出的心跳信息,通过服务器对主控制器发送通信消息,如果在发送一定次数的通信消息后可以接收到主控制器返回的消息,那么该主控制器还处于正常状态。若果在发送一定次数的通信消息后依然接收不到主控制器返回的消息,则可以确定该主控制器当前处于异常状态,需要在备控制器重新选举当前主控制器对业务流程进行处理。
76.当主控制器处于正常运行状态时,备控制器则作为主控制器的备用设备处于等待
状态。如果sdn控制器集群的主控制器发生宕机、断电等故障,使得主控制器无法对业务流程进行处理处于异常状态时。可以根据控制器集群中备控制器的计算性能、存储性能、带宽性能等性能指标确定出各个备控制器的优先级。通过对备控制器的优先级进行排列将优先级靠前的备控制器放置在集群列表的前面,例如:备控制器a的优先级最高,则备控制器a在集群列表中对应编号1,并将备控制器a的型号与性能指标依次在集群列表中进行标注。当检测到主控制器处于异常状态之后,将集群列表中编号1所对应的备控制器作为sdn控制器的当前主控制器。
77.s102:通过所述主控制器接收业务请求,并基于所述主控制器对所述业务请求进行处理,以获得缓存数据与存储数据。
78.在本说明书一个或多个实施例中,所述基于所述主控制器接收业务请求之前,所述方法还包括:
79.将多个关系型数据库进行部署,以获得预先部署的数据库集群;其中,所述关系型数据库与所述sdn控制器集群中的sdn控制器一一对应;
80.查询所述预先部署的数据库集群的启动状态,若确定所述预先部署的数据库集群处于正常状态则开启所述sdn控制器集群;
81.若所述sdn控制器集群启动后,所述sdn控制器集群中的sdn控制器可以自动连接对应的关系型数据库,则所述sdn控制器集群启动正常,可以接收业务请求。
82.每个sdn控制器都作为客户端对接了一套关系型数据库,在本说明书实施例中的一个或多个实施例中选择成熟的关系型数据库postgresql进行数据库的集群部署。通过将关系型数据库与sdn控制器集群中的sdn控制器以1:1的比例进行存储,使得后续数据库集群可以获得主控制器处理流程所产生的的差异化数据,并同步到备控制器对接的数据库中,节省了sdn控制器控制数据库进行同步的开销。如图2所示,在某一个应用场景下sdn控制器集群包含3个sdn控制器,数据库集群包含三个postgresql数据库,而主控制器可以操作控制器与之对接的postgresql数据库节点对业务请求进行处理。
83.其中,需要说明的是,在进行sdn控制器集群数据处理时,为了保证控制器对业务请求进行处理时,其最底层的数据库接口的读写正常。在启动所述的数据库,确定数据库集群的状态正常后,再开启控制器集群。
84.在开启sdn控制器集群之后,sdn控制器会自动连接对应的关系型数据库,如果每个sdn控制器都成功连接到对应的关系型数据库,则在后续的业务处理流程中sdn控制器可以进行数据库接口的正常读写,则确定sdn控制器集群启动正常,可以对业务请求进行接收机后续的处理。
85.s103:根据预先设置的缓存同步机制将所述缓存数据同步到所述备控制器中。
86.在本说明书一个或多个实施例中,所述根据预先设置的缓存同步机制将所述缓存数据同步到所述备控制器中,具体包括:
87.开启所述主控制器的缓存变化通知与所述备控制器的缓存变化监听;
88.若所述备控制器监听到所述主控制器的缓存数据发生变化,则所述备控制器通过模拟所述主控制器处理业务请求的流程,将所述缓存数据同步到备控制器。
89.在本说明书一个或多个实施例中,所述根据预先设置的缓存同步机制将所述缓存同步数据同步到所述备控制器中,若所述主控制器处于异常状态,则所述方法还包括:
90.通过所述sdn控制器集群的更新部署,确定出所述当前主控制器;
91.若确定所述主控制器恢复正常状态,则将所述当前主控制器的缓存数据进行全量同步,并将所述主控制器作为备控制器加入所述sdn控制器集群;
92.若所述备控制器监听到所述当前主控制器的缓存数据发生变化,则所述备控制器通过模拟所述当前主控制器处理业务请求的流程,将所述缓存数据同步到备控制器。
93.在主控制器对业务请求进行处理后,会产生一些例如:标志位、需要对比的数据等临时性数据需要进行缓存同步,以保证控制器的对外接口数据一致,使得主节点故障后,业务处理不受影响。例如:现实的业务处理中,某一个临时性数据显示了当前控制器的可用空间为80%,在未对该数据进行缓存同步的情况下,主控制器发生故障通过在备控制器中重新选举获得当前控制器,而当前控制器因为缺少上述缓存数据,其对外显示的可用空间可能为60%,从而造成数据的不准确。
94.因此,如图3所示,在控制器集群选举出主控制器后,将主控制器的缓存变化通知开启,将备控制器的缓存变化监听开启,此时当主控制器缓存发生变化时,主控制器发布变化通知。备控制器在监听到该变化通知后,通过模拟与主控制器处理请求时相同的处理流程,将主控制器所产生的缓存数据同样在备控制器中进行同步,使得备控制器的缓存数据与主控制器保持一致。
95.在进行缓存数据同步之后,主控制器发生故障,则如上述步骤s101中记载的当前主控制器的选举方式,选举出新的主控制器担任主要的业务处理,并将作为当前主控制器的备控制器的缓存变化监听关闭,缓存变化通知开启,以将其处理过程中产生的缓存数据继续同步到其他备控制器中。如果故障的主控制恢复到正常状态,则将当前主控制器中的缓存数据进行一次性全量同步后作为当前备控制器加入控制器集群中监听当前主控制器的缓存变化。
96.s104:通过预先部署的数据库集群中关系型数据库的同步机制,将所述存储数据同步到所述数据库集群中的其它关系型数据库中。
97.在本说明书一个或多个实施例中,所述通过预先部署的数据库集群中的数据库同步机制,将所述存储数据同步到所述数据库集群中的其它关系型数据库中,具体包括:
98.将所述业务请求封装为所述数据库集群中的关系型数据库可以识别的请求数据;
99.通过与所述主控制器对接的关系型数据库处理所述请求数据,获得与所述业务请求对应的处理数据;
100.将所述处理数据与所述数据库集群中的其它关系型数据库中存储的初始存储数据进行对比,并将与所述初始存储数据具有差异的处理数据确定为存储数据;
101.通过所述主控制器对接的关系型数据库,将所述存储数据同步到所述备控制器对接的关系型数据库,以实现所述存储数据在数据库集群中的同步。
102.如图4所示,sdn控制器集群启动后,控制器会自动连接对应的数据库,,主控制器在接收前端发送的业务请求后,解析业务请求的报文并将该报文封装成数据库可以识别的数据格式。通过与主控制器对接的数据库对业务请求进行处理后,产生了对应对于业务请求的处理数据。该处理数据可能包含有变化的数据也可能包含与数据库之前存储的相同的数据。关系型数据库通过将产生的处理数据与其他数据库中存储的初始存储数据进行对比,确定出发生变化的数据作为存储数据,为避免集群内部数据的不一致导致业务缺失的
情况出现,需要将存储数据同步到集群内其他数据库节点中。
103.其中,需要说明的是:本说明书一个或多个实施例中采用postgresql集群数据。postgresql是一个功能强大的开源对象关系型数据库系统,它使用和扩展了sql语言,并结合了许多安全存储和扩展最复杂数据工作负载的功能。同时,因为postgresql是非常成熟的关系型数据库,其支持集群部署,在主控制器在操作自己所对接的postgresql数据库时,postgresql集群会自动把差异化的数据同步到所有备控制器所对接的数据库中,由于数据库成熟的同步数据方式,这个过程不需要控制器提供额外的开销来处理,相对于控制器自己来处理,该方式的稳定性更高对控制器的开销压力更小。
104.如图5所示,本说明书一个或多个实施例提供了一种sdn控制器集群数据处理设备,其特征在于,所述设备包括:
105.至少一个处理器501;以及,
106.与所述至少一个处理器501通信连接的存储器502;其中,
107.所述存储器502存储有可被所述至少一个处理器501执行的指令,所述指令被所述至少一个处理器501执行,以使所述至少一个处理器501能够:
108.将多个sdn控制器部署为sdn控制器集群;其中,所述sdn控制器集群包括一个主控制器与多个备控制器;
109.通过所述主控制器接收业务请求,并基于所述主控制器对所述业务请求进行处理,以获得缓存数据与存储数据;
110.根据预先设置的缓存同步机制将所述缓存数据同步到所述备控制器中;
111.通过预先部署的数据库集群中关系型数据库的同步机制,将所述存储数据同步到所述数据库集群中的其它关系型数据库中。
112.如图6所示,本说明书一个或多个实施例中提供了一种非易失性存储介质,存储有计算机可执行指令601,其特征在于,所述可执行指令601设置为:
113.将多个sdn控制器部署为sdn控制器集群;其中,所述sdn控制器集群包括一个主控制器与多个备控制器;
114.通过所述主控制器接收业务请求,并基于所述主控制器对所述业务请求进行处理,以获得缓存数据与存储数据;
115.根据预先设置的缓存同步机制将所述缓存数据同步到所述备控制器中;
116.通过预先部署的数据库集群中关系型数据库的同步机制,将所述存储数据同步到所述数据库集群中的其它关系型数据库中。
117.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
118.以上所述仅为本说明书的一个或多个实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书的一个或多个实施例可以有各种更改和变化。凡在本说明书的一个或多个实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1