CN112751789A - 一种非对称sdn控制器集群的实现方法及系统 - Google Patents
一种非对称sdn控制器集群的实现方法及系统 Download PDFInfo
- Publication number
- CN112751789A CN112751789A CN202110006147.1A CN202110006147A CN112751789A CN 112751789 A CN112751789 A CN 112751789A CN 202110006147 A CN202110006147 A CN 202110006147A CN 112751789 A CN112751789 A CN 112751789A
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- cluster
- southbound
- module
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 17
- 230000004048 modification Effects 0.000 claims abstract description 21
- 238000012986 modification Methods 0.000 claims abstract description 21
- 230000001360 synchronised effect Effects 0.000 claims description 9
- 238000005192 partition Methods 0.000 claims 1
- 238000000638 solvent extraction Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 241000750004 Nestor meridionalis Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种非对称SDN控制器集群的实现方法及系统,属于SDN集群控制领域;所述的方法具体步骤如下:S1将集群节点分为南向节点和北向节点;S2将data store的修改分别同步到南向节点和北向节点;S3卸载大部分主节点的读负载;S4将南向节点和北向节点分别构成南向节点集群和北向节点集群,两个集群之间通过kafaka消息队列形成非对称集群;本发明使用非对称方法搭建SDN控制器集群,能够解决了SDN控制器集群的水平扩展问题,为其在大规模云数据中心部署清除障碍;利用kafka的高度可伸缩性,可以满足任意规模的云数据中心的SDN控制器集群部署。
Description
技术领域
本发明公开一种非对称SDN控制器集群的实现方法及系统,涉及SDN集群控制技术领域。
背景技术
现有的SDN控制器集群技术基本都是对称的,即每一个节点功能完全相同,跑的应用完全一样,只是有主从之分。主只有一个,从可以有两个或更多个,但是集群节点的总数必须是奇数。
以Opendaylight开源SDN控制器为例,主控制器实际上承担着绝大部分任务,包括data store的同步,读写,尽管每一个节点都可以发起data store的读写操作,但真正负责读写的节点是主data store节点,这就导致集群不具有好的水平/横向扩展性,集群节点数越多,主节点负担越重,最后可能导致无法正常工作,故现发明一种非对称SDN控制器集群的实现方法及系统以解决上述问题。
发明内容
本发明针对现有技术的问题,提供一种非对称SDN控制器集群的实现方法及系统,所采用的技术方案为:一种非对称SDN控制器集群的实现方法,所述的方法具体步骤如下:
S1将集群节点分为南向节点和北向节点;
S2将data store的修改分别同步到南向节点和北向节点;
S3卸载大部分主节点的读负载;
S4将南向节点和北向节点分别构成南向节点集群和北向节点集群,两个集群之间通过kafaka消息队列形成非对称集群。
所述S1将集群节点根据实际业务分为南向节点和北向节点;
所述南向节点跑北向的业务,所述北向节点跑北向和南向的业务。
所述S2将data store的修改分别同步到南向节点和北向节点的具体步骤包括:
S201通过kafka消息队列把对data store的修改同步到南向节点;
S202本地的data store通过kafka消息队列与北向的节点同步。
所述S3卸载大部分主节点的读负载的具体步骤包括:
S301写操作通过kafka消息队列发送给主节点;
S302将主节点写的data store通过kafka消息队列同步到南向节点;
S303南向节点在本地完成对data store的读操作。
一种非对称SDN控制器集群的实现系统,所述的系统包括节点划分模块、节点同步模块、负载卸载模块和集群建立模块:
节点划分模块:将集群节点分为南向节点和北向节点;
节点同步模块:将data store的修改分别同步到南向节点和北向节点;
负载卸载模块:卸载大部分主节点的读负载;
集群建立模块:将南向节点和北向节点分别构成南向节点集群和北向节点集群,两个集群之间通过kafaka消息队列形成非对称集群。
所述节点划分模块将集群节点根据实际业务分为南向节点和北向节点;
所述南向节点跑北向的业务,所述北向节点跑北向和南向的业务。
所述节点同步模块具体包括南向节点同步模块和北向节点同步模块:
南向节点同步模块:通过kafka消息队列把对data store的修改同步到南向节点;
北向节点同步模块:本地的data store通过kafka消息队列与北向的节点同步。
所述负载卸载模块具体包括写操作模块、发送模块和读操作模块:
写操作模块:写操作通过kafka消息队列发送给主节点;
发送模块:将主节点写的data store通过kafka消息队列同步到南向节点;
读操作模块:南向节点在本地完成对data store的读操作。
本发明的有益效果为:本发明使用非对称方法搭建SDN控制器集群,能够解决了SDN控制器集群的水平扩展问题,为其在大规模云数据中心部署清除障碍;使用kafka消息队列做数据同步,利用kafka的高度可伸缩性,可以满足任意规模的云数据中心的SDN控制器集群部署,利用成熟的消息队列技术,大大降低了集群开发周期和成本;南向节点只处理南向协议,能管理更多南向节点,data store的写操作集中在北向主节点,避免数据写冲突和不一致性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明方法的流程图;图2是本发明系统的结构示意图;图3是实施例中非对称SDN控制器集群的结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
首先对发明中涉及的关键术语定义进行解释:
SDN(Software Defined Network):软件定义网络,一个新型的网络技术,实现控制面和转发面分离,从而允许SDN控制器通过openflow等标准的控制面协议对网络设备动态编程。
Data store:Opendaylight SDN控制器配置和运营数据的存储对象,是在内存里的树形数据,可以存放到硬盘文件用于备份和恢复。
实施例一:
一种非对称SDN控制器集群的实现方法,所述的方法具体步骤如下:
S1将集群节点分为南向节点和北向节点;
S2将data store的修改分别同步到南向节点和北向节点;
S3卸载大部分主节点的读负载;
S4将南向节点和北向节点分别构成南向节点集群和北向节点集群,两个集群之间通过kafaka消息队列形成非对称集群;
本发明方法提供一种非对称SDN控制器集群的实现方法,首先按照S1将集群节点分为南向节点和北向节点,然后将data store的修改按照S2分别同步到南向节点和北向节点,按照S3卸载大部分主节点的读负载,再按照S4将南向节点和北向节点分别构成南向节点集群和北向节点集群,两个集群之间通过kafaka消息队列形成非对称集群,所有北向节点构成一个对称集群,三个南向节点构成一个对称集群,南向节点的集群根据需要可以有任意多个,所有这些北向和南向节点集群之间通过kafka消息队列又形成一个非对称的集群,从而达到了大规模水平、横向扩展的需要;图3直观地显示了非对称SDN控制器集群;
进一步的,所述S1将集群节点根据实际业务分为南向节点和北向节点;
所述南向节点跑北向的业务,所述北向节点跑北向和南向的业务;
进一步的,所述S2将data store的修改分别同步到南向节点和北向节点的具体步骤包括:
S201通过kafka消息队列把对data store的修改同步到南向节点;
S202本地的data store通过kafka消息队列与北向的节点同步;
消息队列卸载了主节点的绝大部分负载,因为不论节点数有多少,对任何一次data store的修改,它只需要写一次消息队列,消息队列自身可以是集群,可根据北向南向节点的规模水平扩展,消息队列集群技术比较成熟,可直接商用;
再进一步的,所述S3卸载大部分主节点的读负载的具体步骤包括:
S301写操作通过kafka消息队列发送给主节点;
S302将主节点写的data store通过kafka消息队列同步到南向节点;
南向节点对data store的读操作能在本地完成,不需要依赖于主节点,这能卸载大部分主节点的读负载,但写操作需要先通过消息队列发送给主节点,由主节点写datastore,然后再通过消息队列同步到南向节点,这样做能避免data store的写操作竞争并确保数据的一致性;
实施例二:
一种非对称SDN控制器集群的实现系统,所述的系统包括节点划分模块、节点同步模块、负载卸载模块和集群建立模块:
节点划分模块:将集群节点分为南向节点和北向节点;
节点同步模块:将data store的修改分别同步到南向节点和北向节点;
负载卸载模块:卸载大部分主节点的读负载;
集群建立模块:将南向节点和北向节点分别构成南向节点集群和北向节点集群,两个集群之间通过kafaka消息队列形成非对称集群;
本发明系统提供一种非对称SDN控制器集群的实现系统,首先通过节点划分模块将集群节点分为南向节点和北向节点,然后将data store的修改利用节点同步模块分别同步到南向节点和北向节点,通过负载卸载模块卸载大部分主节点的读负载,再通过集群建立模块将南向节点和北向节点分别构成南向节点集群和北向节点集群,两个集群之间通过kafaka消息队列形成非对称集群,所有北向节点构成一个对称集群,三个南向节点构成一个对称集群,南向节点的集群根据需要可以有任意多个,所有这些北向和南向节点集群之间通过kafka消息队列又形成一个非对称的集群,从而达到了大规模水平、横向扩展的需要;图3直观地显示了非对称SDN控制器集群;
进一步的,所述节点划分模块将集群节点根据实际业务分为南向节点和北向节点;
所述南向节点跑北向的业务,所述北向节点跑北向和南向的业务;
进一步的,所述节点同步模块具体包括南向节点同步模块和北向节点同步模块:
南向节点同步模块:通过kafka消息队列把对data store的修改同步到南向节点;
北向节点同步模块:本地的data store通过kafka消息队列与北向的节点同步;
消息队列卸载了主节点的绝大部分负载,因为不论节点数有多少,对任何一次data store的修改,它只需要写一次消息队列,消息队列自身可以是集群,可根据北向南向节点的规模水平扩展,消息队列集群技术比较成熟,可直接商用;
再进一步的,所述负载卸载模块具体包括写操作模块、发送模块和读操作模块:
写操作模块:写操作通过kafka消息队列发送给主节点;
发送模块:将主节点写的data store通过kafka消息队列同步到南向节点;
读操作模块:南向节点在本地完成对data store的读操作
南向节点对data store的读操作能在本地完成,不需要依赖于主节点,这能卸载大部分主节点的读负载,但写操作需要先通过消息队列发送给主节点,由主节点写datastore,然后再通过消息队列同步到南向节点,这样做能避免data store的写操作竞争并确保数据的一致性。
本发明以Opendaylight为基础来详细说明具体实施方式。
Opendaylight被扩展支持从kafka消息队列收发数据,所有对data store的改变的数据(YANG model实例对象)对象都能够序列化和反序列化
开发新的模块来监听对data store的变化,并把相应的数据序列化后作为一个二进制数据流发送到kafka消息队列,该模块也负责接收来自kafka消息队列的二进制数据流,并把它反序列化,生成相应的YANG model数据对象实例,然后更新到data store。
所有北向节点使用kafka形成对称集群,所有的网络节点(即neutron server)通过负载均衡器连接到这个北向节点集群,北向节点集群只有一个VIP地址,即负载均衡器的VIP,所有网络节点使用该VIP访问北向节点的RESTCONF API。
每三个南向节点形成一个小的南向集群,南向集群既使用kafka形成对称集群,又自己实现了集群来提高南向的可靠性,对于任何一个南向设备(即计算节点),这个集群的三个节点中有一个是主,其它两个是从,对于不同的南向设备,尽管他们可能连接到同样的南向集群,但主和从节点可能是不一样的,这样做的目的是实现集群内各节点的负载均衡。南向节点只跑南向协议openflowplugin和ovsdb,所以它不像北向节点,占用的内存和CPU资源更少,因而可以连接更多的南向设备。
消息队列使用kafka,kafka可以使用数据库来备份消息。kafka可以根据需要水平扩展,满足更大的集群规模要求。北向节点和南向节点既是生产者又是消费者,但南向节点绝大部分操作是消费,生产稀少。
计算节点的绝大部分操作设读操作,所以其操作绝大部分在南向节点的集群就完成了,有效的减轻了北向节点集群的负载,从而可以在不扩展北向节点集群的情况下通过扩展南向节点集群有效的增加计算节点的规模。
对于计算节点的写操作,比较稀少,它会通过kafka消息队列先写到北向节点集群,然后再通过北向节点集群通过kafka消息队列回写到南向节点集群,这样做的目的是确保写操作的同步和data store的数据一致性。
北向节点集群的data store的变化都会尽可能实时的同步到南向节点集群,进而把配置落实到南向节点控制的计算节点。但小的数据同步延迟是可接受的。
Neutron server的规模也可以按需扩展,以满足计算节点的规模扩展。
以上方案可大可小,因而完全能满足各种部署需求,小到几台计算节点的规模,达到数万台计算节点的场景,因而能有效解决部署的灵活性和可伸缩性。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种非对称SDN控制器集群的实现方法,其特征是所述的方法具体步骤如下:
S1将集群节点分为南向节点和北向节点;
S2将data store的修改分别同步到南向节点和北向节点;
S3卸载大部分主节点的读负载;
S4将南向节点和北向节点分别构成南向节点集群和北向节点集群,两个集群之间通过kafaka消息队列形成非对称集群。
2.根据权利要求1所述的方法,其特征是所述S1将集群节点根据实际业务分为南向节点和北向节点;
所述南向节点跑北向的业务,所述北向节点跑北向和南向的业务。
3.根据权利要求1所述的方法,其特征是所述S2将data store的修改分别同步到南向节点和北向节点的具体步骤包括:
S201通过kafka消息队列把对data store的修改同步到南向节点;
S202本地的data store通过kafka消息队列与北向的节点同步。
4.根据权利要求1所述的方法,其特征是所述S3卸载大部分主节点的读负载的具体步骤包括:
S301写操作通过kafka消息队列发送给主节点;
S302将主节点写的data store通过kafka消息队列同步到南向节点;
S303南向节点在本地完成对data store的读操作。
5.一种非对称SDN控制器集群的实现系统,其特征是所述的系统包括节点划分模块、节点同步模块、负载卸载模块和集群建立模块:
节点划分模块:将集群节点分为南向节点和北向节点;
节点同步模块:将data store的修改分别同步到南向节点和北向节点;
负载卸载模块:卸载大部分主节点的读负载;
集群建立模块:将南向节点和北向节点分别构成南向节点集群和北向节点集群,两个集群之间通过kafaka消息队列形成非对称集群。
6.根据权利要求5所述的系统,其特征是所述节点划分模块将集群节点根据实际业务分为南向节点和北向节点;
所述南向节点跑北向的业务,所述北向节点跑北向和南向的业务。
7.根据权利要求6所述的系统,其特征是所述节点同步模块具体包括南向节点同步模块和北向节点同步模块:
南向节点同步模块:通过kafka消息队列把对data store的修改同步到南向节点;
北向节点同步模块:本地的data store通过kafka消息队列与北向的节点同步。
8.根据权利要求7所述的系统,其特征是所述负载卸载模块具体包括写操作模块、发送模块和读操作模块:
写操作模块:写操作通过kafka消息队列发送给主节点;
发送模块:将主节点写的data store通过kafka消息队列同步到南向节点;
读操作模块:南向节点在本地完成对data store的读操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110006147.1A CN112751789A (zh) | 2021-01-05 | 2021-01-05 | 一种非对称sdn控制器集群的实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110006147.1A CN112751789A (zh) | 2021-01-05 | 2021-01-05 | 一种非对称sdn控制器集群的实现方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112751789A true CN112751789A (zh) | 2021-05-04 |
Family
ID=75649819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110006147.1A Pending CN112751789A (zh) | 2021-01-05 | 2021-01-05 | 一种非对称sdn控制器集群的实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112751789A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422280A (zh) * | 2021-12-31 | 2022-04-29 | 深信服科技股份有限公司 | 网络部署方法、装置、节点及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015078498A1 (en) * | 2013-11-27 | 2015-06-04 | Huawei Technologies Co., Ltd. | Method and system for balancing load in a sdn network |
CN104754036A (zh) * | 2015-03-06 | 2015-07-01 | 合一信息技术(北京)有限公司 | 一种基于kafka的消息处理系统及处理方法 |
US20160330281A1 (en) * | 2015-05-07 | 2016-11-10 | Dell Products L.P. | Systems and methods to improve read/write performance in object storage applications |
CN106230622A (zh) * | 2016-07-22 | 2016-12-14 | 杭州华三通信技术有限公司 | 一种集群实现方法及装置 |
CN108667868A (zh) * | 2017-03-30 | 2018-10-16 | 杭州达乎科技有限公司 | 一种用于广域网长距离通信的sdn网络控制平面的部署架构 |
US20200351334A1 (en) * | 2018-01-20 | 2020-11-05 | Telefonaktiebolaget Lm Ericsson (Publ) | Robust message processing for a software-defined networking (sdn) controller cluster |
-
2021
- 2021-01-05 CN CN202110006147.1A patent/CN112751789A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015078498A1 (en) * | 2013-11-27 | 2015-06-04 | Huawei Technologies Co., Ltd. | Method and system for balancing load in a sdn network |
CN104754036A (zh) * | 2015-03-06 | 2015-07-01 | 合一信息技术(北京)有限公司 | 一种基于kafka的消息处理系统及处理方法 |
US20160330281A1 (en) * | 2015-05-07 | 2016-11-10 | Dell Products L.P. | Systems and methods to improve read/write performance in object storage applications |
CN106230622A (zh) * | 2016-07-22 | 2016-12-14 | 杭州华三通信技术有限公司 | 一种集群实现方法及装置 |
CN108667868A (zh) * | 2017-03-30 | 2018-10-16 | 杭州达乎科技有限公司 | 一种用于广域网长距离通信的sdn网络控制平面的部署架构 |
US20200351334A1 (en) * | 2018-01-20 | 2020-11-05 | Telefonaktiebolaget Lm Ericsson (Publ) | Robust message processing for a software-defined networking (sdn) controller cluster |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422280A (zh) * | 2021-12-31 | 2022-04-29 | 深信服科技股份有限公司 | 网络部署方法、装置、节点及存储介质 |
CN114422280B (zh) * | 2021-12-31 | 2023-11-07 | 深信服科技股份有限公司 | 网络部署方法、装置、节点及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103503414B (zh) | 一种计算存储融合的集群系统 | |
CN108280080B (zh) | 一种数据同步方法、装置以及电子设备 | |
CN109376197B (zh) | 一种数据同步方法、服务器及计算机存储介质 | |
US11068499B2 (en) | Method, device, and system for peer-to-peer data replication and method, device, and system for master node switching | |
CN104361030A (zh) | 一种具有任务分发功能的分布式缓存架构及缓存方法 | |
WO2015192661A1 (zh) | 一种分布式存储系统中的数据同步方法、装置及系统 | |
CN106155811B (zh) | 资源服务装置、资源调度方法和装置 | |
CN109639773B (zh) | 一种动态构建的分布式数据集群控制系统及其方法 | |
CN111651275A (zh) | 一种MySQL集群自动化部署系统及方法 | |
CN112069265A (zh) | 配置数据的同步方法、业务数据系统、计算机系统和介质 | |
CN110784539A (zh) | 一种基于云计算的数据管理系统及方法 | |
WO2016065776A1 (zh) | 一种紧耦合可扩展的大数据交互方法 | |
CN111464447B (zh) | 一种超带宽多核心以太网交换芯片转发表同步的方法及装置 | |
CN111597197A (zh) | 数据库之间的数据对账方法和装置、存储介质及电子设备 | |
CN105657057A (zh) | 一种计算存储融合的集群系统 | |
CN111913837A (zh) | 大数据环境下实现分布式中间件消息恢复策略管理的系统 | |
CN112751789A (zh) | 一种非对称sdn控制器集群的实现方法及系统 | |
CN102752173B (zh) | 支持大规模复杂dtn网络的分布式仿真系统和仿真方法 | |
CN112052104A (zh) | 基于多机房实现的消息队列的管理方法及电子设备 | |
CN115167971A (zh) | 一种基于云平台的高可用MySQL部署方法及系统 | |
CN115495265A (zh) | 一种基于hadoop提高kafka消费能力的方法 | |
Lin et al. | ReHRS: A hybrid redundant system for improving MapReduce reliability and availability | |
CN112860657A (zh) | Tias系统实时数据库地址空间的构建方法及系统 | |
CN113360279A (zh) | 一种异地多活系统的实现方法 | |
CN113505175A (zh) | 一种基于消息队列实现MySQL增量数据同步的方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210504 |
|
RJ01 | Rejection of invention patent application after publication |