CN103346904A - 一种容错的OpenFlow 多控制器系统及其控制方法 - Google Patents

一种容错的OpenFlow 多控制器系统及其控制方法 Download PDF

Info

Publication number
CN103346904A
CN103346904A CN2013102476978A CN201310247697A CN103346904A CN 103346904 A CN103346904 A CN 103346904A CN 2013102476978 A CN2013102476978 A CN 2013102476978A CN 201310247697 A CN201310247697 A CN 201310247697A CN 103346904 A CN103346904 A CN 103346904A
Authority
CN
China
Prior art keywords
controller
copy
node
strategy
unit
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
CN2013102476978A
Other languages
English (en)
Other versions
CN103346904B (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.)
Xian Jiaotong University
Original Assignee
Xian Jiaotong University
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 Xian Jiaotong University filed Critical Xian Jiaotong University
Priority to CN201310247697.8A priority Critical patent/CN103346904B/zh
Publication of CN103346904A publication Critical patent/CN103346904A/zh
Application granted granted Critical
Publication of CN103346904B publication Critical patent/CN103346904B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开一种容错的OpenFlow多控制器系统及其控制方法,包括多个控制器、控制器部署与监测单元、策略验证消息接收单元、错误检测单元、错误修复单元、数据包发送单元、策略划分部署单元、索引服务器和若干OpenFlow交换机;所述索引服务器连接所述多个控制器,所述多个控制器间通过交换网络互连,每个控制器连接一个或者多个OpenFlow交换机;控制器部署与监测单元,用于配置和监测所述多个控制器。本发明在保证一定的策略可用性的情况下,使用的冗余度最小。验证消息通信开销小:每个策略的验证周期中只需要向仲裁控制器发送策略摘要;对于控制器节点的增加与失效具有较小的复杂度。

Description

一种容错的OpenFlow 多控制器系统及其控制方法
技术领域
本发明涉及网络技术领域,特别涉及一种软件定义网络中容错的多控制器系统及其控制方法。 
背景技术
云计算、移动互联网以及物联网等应用驱动着数据中心的发展。随着各种应用的不断出现以及网络带宽需求的提升,数据中心面临着越来越多的挑战,而传统的网络架构在灵活性、成本等方面已经无法满足日益增长的需求。而SDN(Software Defined Networking)和OpenFlow的出现将会对数据中心产生革命性的影响。 
SDN/OpenFlow网络将控制面和数据面分离,其中数据面主要根据特定的策略实现对数据包的转发功能,而控制面通过使用一个控制器在实现对整个网络的集中式控制。 
然而,目前使用的单控制器结构虽然实现简单,但是没有提供处于核心层的控制面的错误容忍能力,如果控制面中的控制策略遭受恶意攻击篡改后整个网络将被非法控制。同时随着网络规模的迅速扩大,由于单控制器处理性能的限制将成为整个网络的性能瓶颈,进而使整个网络性能下降,甚至造成全网瘫痪。 
近来,关于SDN控制面的扩展性和可靠性方案有: 
技术方案1:在公开发表的名为DevoFlow:Scaling Flow Management for High-Performance Networks的论文中,作者提出了DevoFlow将原本属于控制器的一些决策权转移到数据平面的OpenFlow交换机上,同时采用不同的机制尽量使数据包在数据面处理,从而降低对控制器的请求。 
技术方案2:在公开号为CN201210363173.0的中国专利申请中,提出了一种实现Openflow交换机系统中控制器冗余备份的方法及系统,通过部署多个不同角色(主设备,从设备以及对等设备)的控制器,并实时监测主设备的可达性,在主设备出现不可达的情况下立即采用其余冗余设备接管,从而实现了系统中时刻存在可正常工作的主设备,进而提高了系统稳定性。 
上述方案1中存在的主要问题是:虽然通过将控制面的决策权垂直延伸到数据面,这样可以降低控制器的负载,但却增加了OpenFlow交换机的实现难度与开销;另外该方案没有提供控制面的策略异常容忍。 
上述方案2中存在的主要问题是:1)增加了冗余备份,但却只有一个主设备具有网络控制的最高权限,造成其余设备资源浪费;2)主要解决的是单控制器可能存在的单点故障,没有实现多控制器协同工作;3)无法保障控制器中不同应用的控制策略的可靠性性。 
发明内容
本发明的目的在于解决OpenFlow网络中单控制器所存在的性能瓶颈和可靠性问题,提供一种容错的OpenFlow多控制器系统及其控制方法。 
为实现上述发明目的,本发明技术方案如下: 
一种容错的OpenFlow多控制器系统,包括多个控制器、控制器部署与监测单元、策略验证消息接收单元、错误检测单元、错误修复单元、数据包发送单元、策略划分部署单元、索引服务器和若干OpenFlow交换机;所述索引服务器连接所述多个控制器,所述多个控制器间通过交换网络互连,每个控制器连接一个或者多个OpenFlow交换机;控制器部署与监测单元,用于配置和监测所述多个控制器;策略验证消息接收单元,用于接收其它控制器发出的策略验证消息并提醒其它控制器发送是否超时;错误检测单元,用于将策略验证消息接收单元接收到的待验证的策略副本摘要与本控制器的本地副本摘要进行比较;如果出现结果不一致情况,则记录异常副本来源;错误修复单元,用于对错误检测单元检测出的异常副本进行修复;数据包发送单元,用于控制器之间的消息发送;策略划分部署单元,用于将策略分组并部署到不同的控制器上。 
本发明进一步的改进在于:部署与监测单元包括控制器配置单元和控制器监测单元;控制器配置单元用于配置控制器,控制器监测单元用于检测控制器是否保持ONLINE状态;策略验证消息接收单元包括数据包接收单元和超时提醒单元;数据包接收单元用于接收其它控制器发出的策略验证消息;超时提醒单元用于提醒其它控制器接收是否超时;当错误检测单元检测发现异常错误时,数据包发送单元,用于向异常控制器发送正确策略内容的数据包消息或者向正确控制器发送策略内容索取的数据包消息。 
本发明进一步的改进在于:策略划分部署单元,用于将策略集分组并部署到不同的控制器上,同时在增加新的控制器或者控制器失效时调整周边邻居的策略。 
容错的OpenFlow多控制器系统的控制方法,包括如下步骤: 
(1)、控制器部署与监测单元根据多个控制器节点的ID哈希值大小组成一个顺时针的逻辑环; 
(2)、策略划分部署单元计算策略的哈希值,在控制器节点逻辑环中找出包含该哈希值的相邻两个控制器节点,并将该策略分配到顺时针开始节点上,该节点记为前驱节点; 
(3)、将该策略的剩余k-1副本依次放在控制器逻辑环中第(i±m)%n个节点上,其中i为该策略的前驱节点在逻辑环中的位置编号,n为控制器逻辑环中节点个数,m=1,2,……(k-1)/2; 
(4)、错误检测单元将接收到的待验证的策略验证消息的副本摘要与控制器的本地副本摘要进行比较:如果出现结果不一致情况,则证明出现异常状态,并记录异常副本来源后进入步骤(5);如果一致,则继续进行下一个验证周期; 
(5)、错误修复单元对所述异常副本进行修复。 
本发明进一步的改进在于:还包括如下步骤:将存放在所述前驱节点上的副本初始 化为主副本,主副本所在的控制器作为仲裁控制器,其它副本所在的控制器发送该副本的策略验证消息给仲裁控制器,仲裁控制器通过统计接收到的k-1个策略验证信息和本地策略验证信息来判断是否出现副本异常;判断是否存在副本异常的方法是简单多数投票方法:对于一条策略出现不同的副本摘要,且当所有的k个副本中超过k/2的副本摘要相同时认为多数副本正确。 
本发明进一步的改进在于:还包括如下步骤:在完成一个验证周期后,仲裁控制器由其它副本所在的控制器根据控制器ID编号轮流担当,进行下一验证周期的副本验证。 
本发明进一步的改进在于:所述策略验证信息为通过摘要算法计算副本内容所得的摘要数据。 
本发明进一步的改进在于:所述异常状态分为非主副本错误和主副本错误;当发生非主副本错误时,仲裁控制器向异常副本发携带主副本内容的策略修正消息,异常副本所在控制器收到后修改自己保存的该条策略副本;当出现主副本错误时,仲裁控制器向其余正确非主副本所在控制器发送策略请求消息,并等待正确非主副本所在控制器返回正确的策略副本消息;并根据最先收到的策略副本消息来纠正自身策略副本。 
本发明进一步的改进在于:所述k值的确定方法如下: 
系统可容忍的策略最大错误率表示为α;则PRA≥1-α,PRA表示一条策略可用的概率;对于任意一条策略,如果该策略的副本不一致个数不超过(k-1)/2,即可采用剩下大部分一致副本的策略内容来纠正那些不一致的副本; 
所以 
P RA = P { x ≤ ( k - 1 ) / 2 } = Σ x = 0 ( k - 1 ) / 2 C k x × ( 1 - Pe ) ( k - x ) × Pe x - - - ( 1 )
其中Pe为一个策略副本可能出错的概率,x为出错的副本个数; 
每个副本都知道其余的k-1个副本所在的控制器ID;则存储一条策略所需要的开销为 
Cmen=k×(SR+(k-1)×Sn)                   (2) 
其中控制器ID长度表示为Sn;策略内容长度表示为SR; 
根据公式(1)求得k值的范围,并代入公式(2),当Cmen最小时,即可确定k值。 
本发明进一步的改进在于:还包括新增加控制器节点的策略迁移步骤: 
S1:控制器部署与监测单元(101)配置新增加的控制器节点的信息; 
S2:计算该控制器的哈希值;并将该控制按照哈希值大小顺序插入到已有的控制器组成的逻辑环中; 
S3:新增节点的后继邻居中小于新增节点哈希值的主副本拷贝到新增加的控制器上,组成属于该新增节点的主副本; 
S4:新增节点的后继邻居中拷贝过的主副本标记成非主副本,表示新增节点中对应策略的副本; 
S5:从新增节点的后继结点的非主副本集合中删除新增节点的主副本集合; 
S6:将新增节点的后继节点的主副本集拷贝一份到新增节点的非主副本集合中; 
S7:将新增节点的后继节点的非主副本集合中属于原来前驱节点的主副本从本地删除并迁移到新增节点的非主副本集合上; 
S8:将新增节点的前驱节点的非主副本集合中属于原来后继节点的主副本集合删除。 
作为上述方法的进一步改进,除了初始化后的第一个验证周期,其余验证周期选举主副本可以根据k个副本所在控制器的ID编号轮流担当。 
作为上述方法的进一步改进,验证周期开始后,所有非主副本需向仲裁节点发送“策略副本摘要”的消息。仲裁节点对于收到的副本摘要和自己本地副本摘要进行简单多数投票。 
本发明提供的这种容错的OpenFlow多控制器方法,可以通过增加控制器,改善单控制器的处理性能,而且,本方法可以明显提高控制面的容错能力。 
相对于现有技术,本发明的优点如下: 
1)本方法在保证一定的策略可用性的情况下,使用的冗余度最小。 
2)验证消息通信开销小:每个策略的验证周期中只需要向仲裁控制器发送策略摘要信息,取代了直接发送策略内容;只有当出现不一致时才请求策略内容。 
3)本方法对于控制器节点的增加与失效具有较小的复杂度,当控制器节点失效时,可以从失效节点的前后邻居中找到对应副本,当增加新的节点时,只需要从控制器逻辑环中的前驱节点上进行部分策略迁移即可。 
附图说明
图1是本发明提出的多控制器Openflow网络示意图; 
图2是本发明具体实施方式中初始化流程图; 
图3是本发明具体实施方式中控制器处理OpenFlow交换机请求的流程图; 
图4是在冗余度为3的情况下两种不同异常错误的监测与恢复示意图; 
图5是本发明具体实施方式中容错的OpenFlow多控制器系统单元示意图; 
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。 
请参阅图1至图5所示,本发明提供了一种容错的OpenFlow多控制器系统及其控制方法。基于策略划分和索引,通过周期性的交互式验证来发现错误并自动纠正。 
1.可容错的多控制器设计中的关键对象 
1)控制器:用于管理和控制数据平面流量转发的设备,处于控制平面。 
2)策略集:不同应用或者租户所对应的特定网络需求组成的集合,是决策数据平面流量的重要依据。 
3)IndexServer(索引服务器):存储所有策略的位置索引,并向控制器提供策略检索服务,同时负责控制器的ONLINE监测。 
4)flow entry:存放在OpenFlow交换机上的用于决定数据包转发的具体实例。 
参见图1所示,给出了基于策略划分和索引的多控制器网络结构示意图。该架构包括一个索引服务器(IndexServer),多个控制器和若干OpenFlow交换机。所有的控制器与索引服务器相连,控制器通过交换网络互连,每个控制器部署全局策略集合的一个真子集,并且负责管理控制与其直接相连地若干个OpenFlow交换机,所有控制器之间为对等设备。 
其中IndexServer的主要作用有: 
(1)存储全网中所有策略的索引,并处理来自控制器的索引请求。例如,当某个控制器收到来自某个OpenFlow交换机的数据包后,如果没有找到对应的本地匹配策略,就要请求IndexServer查找出该策略副本所在的控制器,并从对等控制器(指任意一条策略的所有副本所在的控制器)中获取该策略。 
(2)同步策略副本。当某个控制器修改了其中某个策略(比如由于用户需求的变更等)后,需要通知IndexServer对其余策略副本进行更新。 
(3)检测控制器是否ONLINE。通过接收来自控制器周期性的“HELLO”消息来判断是否有控制器OFFLINE。 
本发明一种容错的OpenFlow多控制器系统,包括多个控制器、控制器部署与监测单元101、策略验证消息接收单元102、错误检测单元103、错误修复单元104、数据包发送单元105、策略划分部署单元106、索引服务器和若干OpenFlow交换机; 
所述索引服务器连接所述多个控制器,所述多个控制器间通过交换网络互连,每个控制器连接一个或者多个OpenFlow交换机; 
控制器部署与监测单元101设置于索引服务器内,用于配置(比如IP,控制器编号ID)和监测所述多个控制器是否保持ONLINE状态; 
策略验证消息接收单元102设置于每个控制器内,用于接收其它控制器发出的策略验证消息,为防止部分控制器没能在验证周期开始后1/2周期内发送验证消息,需要主动提醒对应的控制器; 
错误检测单元103设置于每个控制器内,用于将策略验证消息接收单元102接收到的待验证的策略副本摘要与本控制器的本地副本摘要进行比较;如果出现结果不一致情况,则记录异常副本来源;如果一致,说明没有异常副本,则继续进行下一个验证周期; 
错误修复单元104设置于每个控制器内,用于对错误检测单元103检测出的异常副本进行修复; 
数据包发送单元105设置于每个控制器内,用于控制器之间的消息发送;发送控制器之间的消息发送逻辑,比如当出现异常错误时,用于向异常控制器发送正确策略内容的数据包消息或者向正确控制器发送策略内容索取的数据包消息。 
策略划分部署单元106设置于索引服务器内,用于将策略分组并部署到不同的控制器上,同时在增加新的控制器或者控制器失效时调整周边邻居的策略。 
参见图2所示,容错的OpenFlow多控制器的控制方法初始化过程包括以下步骤: 
S1初始化控制器节点逻辑环:将所有的控制器节点根据其ID哈希值的大小组成一个顺时针的逻辑环。 
S2计算策略的主副本所在的控制器:对于一条策略根据其哈希值找到控制器节点逻辑环中的对应位置,并将该策略分配到逻辑环中的前驱节点(顺时针开始节点)上。 
S3部署该策略的其余副本:待找出主副本的对应控制器节点后,将其余k-1个副本依次放在该主副本的对应控制器节点的前后邻居节点上。 
S4副本之间的周期性验证:通过k个副本之间周期性的验证(下文中有描述)来监测错误副本并自动修正。 
呈上所述,控制器之间除了周期性的验证之外,主要的任务是正确地处理来自数据平面的请求。由于每个控制器只存储全局策略集的一个真子集,并且每个控制器只负责处理与其直接相连的OpenFlow交换机的请求,因此处理结果又分为两种:本地策略可以处理和本地策略无法处理。 
当本地策略可以正常处理时,控制器根据对应的策略生成flow entry,并下发安装到对应的OpenFlow交换机上,以便后期直接处理相同的数据包,参看图3中的S14; 
当控制器无法在本地策略中找到处理相应数据包的策略时,其具体步骤又包括: 
向IndexServer发送“策略检索请求”消息,参看图中的S8; 
接收到来自IndexServer的“策略检索应答”消息,参看图中的S9; 
如果应答消息中有标示未找到对应策略,则通知OpenFlow交换机执行drop(丢弃数据包)动作,参看图中的S11,否则向检索出的最近地策略副本所在的控制器发送“策略索取”消息,参看图中的S12; 
当接收到“策略索取响应”消息后,将消息中的策略内容缓存在本地直至缓存超时,参看图中的S13,并根据此策略处理对应的数据包;然后,控制器根据该策略生成flow entry,并下发安装到对应的OpenFlow交换机上,以便后期直接处理相同的数据包,参看图3中的S14。 
为了实现容错的多控制器方案,需要解决三个主要问题。 
1、如何确定策略冗余度(指任意策略的所有副本个数)。显然,冗余度k值越大,能容忍的错误副本数以及修复能力越高;但是,对应的存储开销以及为了维护副本一致性所造成的通信开销也越大。当然,冗余度k值越小会得到相反的结果。因此冗余度k是影响整体性能的重要因素。由于不同的冗余度对应着不同的可靠性及不同的开销,所以在实际应用中需要考虑两者之间的折中。 
2、在存在冗余副本的基础上,如何通过一致性验证过程来检测并修正被篡改或者异常的策略副本,从而实现控制面的错误容忍。 
3、策略划分部署问题。为了节省控制器的存储开销,每个控制器仅拥有策略集合的一个真子集,因此,所有的策略需要进行分组且分发部署到不同的控制器上。 
3、本发明的技术关键点 
1)冗余度的确定 
由于目前OpenFlow网络中单控制器策略存在发生异常错误的情况,并且没有额外备份,为解决这种缺点,本发明提供一种冗余备份方法。 
冗余度k指系统中一条策略的所有副本个数。 
本发明中对于冗余度k的确定可采用下列约束条件: 
1、系统可容忍的策略最大错误率表示为α 
则PRA≥1-α,PRA表示一条策略可用的概率; 
2、对于k个副本之间通过多数投票方式来判断不一致的副本并进行修正,所以对于任意一条策略,如果该策略的副本不一致个数不超过(k-1)/2,即可采用剩下大部分一致副本的策略内容来纠正那些不一致的副本。 
所以 P RA = P { x ≤ ( k - 1 ) / 2 } = Σ x = 0 ( k - 1 ) / 2 C k x × ( 1 - Pe ) ( k - x ) × Pe x , 其中Pe为一个策略副本可能出错的概率,x为出错的副本个数; 
3、本发明中,采用k个副本互相感知的方式,即每个副本都知道其余的k-1个副本所在的控制器ID。 
因此,存储一条策略所需要的开销为Cmen=k×(SR+(k-1)×Sn),其中控制器ID长度表示为Sn;策略内容长度表示为SR; 
在以上几个因素的限制下,在实际应用中可以计算出一个最合适的冗余度k值作为工程实现的参考。比如,在副本出错率Pe=0.05且α≤0.01时,根据公式(1)(2)可以计算出k=3或k≥5时,满足策略错误率小于α的要求。从公式(3)中可以看出,当k﹥1时Cmen随k的增大而增加,因此当k=3时Cmen最小。 
表1列举了在不同的策略副本出错率Pe的情况下,使用不同的冗余度得到的策略可用概率。 
Figure BDA00003384180400072
2)策略异常监测和修复过程 
针对目前OpenFlow网络中单控制器策略存在发生异常错误的情况,本发明在基于策略冗余备份的基础上,提供一种策略异常检测与自动修复方法。具体步骤如下: 
A1每个验证周期中选举其中一个副本所在的控制器担当本次的仲裁节点,并将所选的副本标记为本轮的主副本; 
具体地,在本发明优选的实施例中,步骤A1中“选举仲裁节点”在初始化后的第一个验证周期采用主副本所在的控制器,其余验证周期可以根据k个副本所在的控制器的ID编号轮流担当。 
A2验证周期开始后,所有非仲裁节点需向仲裁节点发送“策略副本摘要”的验证信息。所述验证信息为通过摘要算法(比如md5,CRC等,本文使用的是md5)计算副本内容所得的摘要数据。 
A3仲裁节点对于收到的副本摘要和自己本地的聚合后进行简单多数投票。 
具体地,在本发明优选的实施例中,步骤A3具体包括: 
A31、接收“策略副本摘要”消息,并解析该数据包内容后进行统计; 
A32、如果收到的所有副本摘要和本地摘要全部相同,则无异常出现; 
A33、如果出现不一致情况,则由仲裁节点实现自动修复; 
其中,步骤A33中“自动修复”步骤又可分为两种情况:非主副本错误和主副本错误两种情况。 
作为上述方法的进一步改进,当出现非主副本错误时,需要向异常副本所在的控制器发送携带主副本策略内容的“策略修正”消息,异常副本所在控制器收到消息后修改自己保存的该条策略副本即可;参见图4中验证周期T1中的错误情况。 
作为上述方法的进一步改进,当出现主副本错误时,仲裁节点需要向其余正确的非主副本所在的控制器发送“策略请求消息”,并等待所述控制器返回“策略正确内容”消息;并根据最先收到的消息来纠正自身策略。参见图4中验证周期T2中的出错情况。 
3)策略划分部署过程 
目前,由于单控制器网络中的处理性能瓶颈,当出现大规模PacketIn消息请求,或者控制器上部署运行较多的应用策略时,会导致控制器响应速度变慢。本发明为解决此问题,提供可扩展的多控制器方法,具体步骤包括: 
B1配置新增加的控制器信息(包括ID,IP),当前逻辑环对应的数据如下表,其中有4个控制器; 
Figure BDA00003384180400081
Figure BDA00003384180400091
B2计算该节点ID的哈希值,并将其插入到控制器所组成的逻辑环中,假设新增控制器的ID为5,对应的哈希值为100,则插入后逻辑环所对应的数据结构如下表; 
Figure BDA00003384180400092
B3从前后邻居节点处迁移对应的策略; 
其中,在本发明的具体实施中,在步骤S3中,“动态迁移策略”的步骤具体包括: 
B31、新增节点的后继邻居中小于新增节点哈希值的主副本拷贝到新的控制器上,组成属于该节点的主副本; 
参见表2所示,调整后3号控制器主集合为(111,123,133,154), 
5号控制器的主集合为(70,81,92,100) 
B32、新增节点的后继邻居中拷贝过的主副本标记成非主,表示新节点中对应策略的副本; 
调整后3号控制器非主集合为(15,26,33,45,56,65)U(165,177,185,199,200,211,222)U(70,81,92,100) 
B33、从后继结点的后继中删除新增节点的主集合; 
调整后4号控制器非主集合为(70,81,92,100,111,123,133,154)-(70,81,92,100)=(111,123,133,154) 
B34、将后继节点中位于新增节点与后继邻居之间的主副本拷贝一份到新增节点上,并标示为新增节点的非主副本; 
调整后5号控制器非主集合为(111,123,133,154) 
B35、将后继节点中属于原来前驱的非主副本从本地删除并迁移到新增节点上; 
调整后3号控制器非主集合为(15,26,33,45,56,65)U(165,177,185,199,200,211,222)U(70,81,92,100)-(15,26,33,45,56,65)=(165,177,185,199,200,211,222)U(70,81,92,100) 
调整后5号控制器非主集合为(111,123,133,154)U(15,26,33,45,56,65) 
B36、删除新增节点前驱中属于新增节点后驱的主副本; 
调整后1号控制器非主集合为(3,6,8,10)U(70,81,92,100,111,123,133,154)-(111,123,133,154)=(3,6,8,10)U(70,81,92,100) 
因此,调整结束后的当前节点逻辑环数据结构如下表所示: 
由以上实施例可以看出,本发明的优势如下: 
本发明提供的这种容错的OpenFlow多控制器的控制方法,可以通过增加控制器,改善单控制器的处理性能,而且,本方法可以明显提高控制面的容错能力。本发明的优点如下: 
1)本方法在保证一定的策略可用性的情况下,使用的冗余度最小。 
2)验证消息通信开销小:每个策略的验证周期中只需要向仲裁控制器发送策略摘要,取代了直接发送策略内容;只有当出现不一致时才请求策略内容。 
3)本方法对于控制器节点的增加与失效具有较小的复杂度,当控制器节点失效时,可以从失效节点的前后邻居中找到对应副本,当增加新的节点时,只需要从控制器逻辑环中的前驱节点上进行部分策略迁移即可。 
以上所述是本发明的优选实施方式,通过上述说明内容,本技术领域的相关工作人员可以在不偏离本发明技术原理的前提下,进行多样的改进和替换,这些改进和替换也应视为本发明的保护范围。 

Claims (10)

1.一种容错的OpenFlow多控制器系统,其特征在于:包括多个控制器、控制器部署与监测单元(101)、策略验证消息接收单元(102)、错误检测单元(103)、错误修复单元(104)、数据包发送单元(105)、策略划分部署单元(106)、索引服务器和若干OpenFlow交换机;
所述索引服务器连接所述多个控制器,所述多个控制器间通过交换网络互连,每个控制器连接一个或者多个OpenFlow交换机;
控制器部署与监测单元(101),用于配置和监测所述多个控制器;
策略验证消息接收单元(102),用于接收其它控制器发出的策略验证消息并提醒其它控制器发送是否超时;
错误检测单元(103),用于将策略验证消息接收单元(102)接收到的待验证的策略副本摘要与本控制器的本地副本摘要进行比较;如果出现结果不一致情况,则记录异常副本来源;
错误修复单元(104),用于对错误检测单元(103)检测出的异常副本进行修复;
数据包发送单元(105),用于控制器之间的消息发送;
策略划分部署单元(106),用于将策略分组并部署到不同的控制器上。
2.根据权利要求1所述的容错的OpenFlow多控制器系统,其特征在于:部署与监测单元(101)包括控制器配置单元(1011)和控制器监测单元(1012);控制器配置单元(1011)用于配置控制器,控制器监测单元(1012)用于检测控制器是否保持ONLINE状态;策略验证消息接收单元(102)包括数据包接收单元(1021)和超时提醒单元(1022);数据包接收单元(1021)用于接收其它控制器发出的策略验证消息;超时提醒单元(1022)用于提醒其它控制器发送是否超时;当错误检测单元(103)检测发现异常错误时,数据包发送单元(105),用于向异常控制器发送正确策略内容的数据包消息或者向正确控制器发送策略内容索取的数据包消息。
3.根据权利要求1所述的容错的OpenFlow多控制器系统,其特征在于:策略划分部署单元(106),用于将策略集分组并部署到不同的控制器上,同时在增加新的控制器或者控制器失效时调整周边邻居的策略。
4.根据权利要求1-3中任一项所述的容错的OpenFlow多控制器系统的控制方法,其特征在于,包括如下步骤:
(1)、控制器部署与监测单元(101)根据多个控制器节点的ID哈希值大小组成一个顺时针的逻辑环;
(2)、策略划分部署单元(106)计算策略的哈希值,在控制器节点逻辑环中找出包含该哈希值的相邻两个控制器节点,并将该策略分配到顺时针开始节点上,该节点记为前驱节点;
(3)、将该策略的剩余k-1副本依次放在控制器逻辑环中第(i±m)%n个节点上,其中i为该策略的前驱节点在逻辑环中的位置编号,n为控制器逻辑环中节点个数,m=1,2,……(k-1)/2;
(4)、错误检测单元(103)将接收到的待验证的策略副本摘要与控制器的本地副本摘要进行比较:如果出现结果不一致情况,则证明出现异常状态,并记录异常副本来源后进入步骤(5);如果一致,则结束本轮验证进入下一个验证周期;
(5)、错误修复单元(104)对所述异常副本进行修复。
5.根据权利要求4所述的控制方法,其特征在于,还包括如下步骤:将存放在所述前驱节点上的副本初始化为主副本,主副本所在的控制器作为仲裁控制器,其它副本所在的控制器发送该副本的策略验证消息给仲裁控制器,仲裁控制器通过统计接收到的k-1个策略验证信息和本地策略验证信息来判断是否出现副本异常;判断是否存在副本异常的方法是简单多数投票方法:对于一条策略出现不同的副本摘要,且当所有的k个副本中超过k/2的副本摘要相同时认为多数副本正确。
6.根据权利要求5所述的控制方法,其特征在于,还包括如下步骤:在完成一个验证周期后,仲裁控制器由其它副本所在的控制器根据控制器ID编号轮流担当,进行下一验证周期的副本验证。
7.根据权利要求4所述的控制方法,其特征在于,所述策略验证信息为通过摘要算法计算副本内容所得的摘要数据。
8.根据权利要求4所述的控制方法,其特征在于,所述异常状态分为非主副本错误和主副本错误;当发生非主副本错误时,仲裁控制器向异常副本发携带主副本内容的策略修正消息,异常副本所在控制器收到后修改自己保存的该条策略副本;当出现主副本错误时,仲裁控制器向其余正确的非主副本所在控制器发送策略请求消息,并等待正确的非主副本所在控制器返回正确的策略副本消息;并根据最先收到的策略副本消息来纠正自身策略副本。
9.根据权利要求4所述的控制方法,其特征在于,所述k值的确定方法如下:
系统可容忍的策略最大错误率表示为α;则PRA≥1-α,PRA表示一条策略可用的概率;对于任意一条策略,如果该策略的副本不一致个数不超过(k-1)/2,即可采用剩下大部分一致副本的策略内容来纠正那些不一致的副本;
所以
P RA = P { x ≤ ( k - 1 ) / 2 } = Σ x = 0 ( k - 1 ) / 2 C k x × ( 1 - Pe ) ( k - x ) × Pe x - - - ( 1 )
其中Pe为一个策略副本可能出错的概率,x为出错的副本个数;
每个副本都知道其余的k-1个副本所在的控制器ID;则存储一条策略所需要的开销为
Cmen=k×(SR+(k-1)×Sn)                          (2)
其中控制器ID长度表示为Sn;策略内容长度表示为SR
根据公式(1)求得k值的范围,并代入公式(2),当Cmen最小时,即可确定k值。
10.根据权利要求4所述的控制方法,其特征在于,还包括新增加控制器节点的策略迁移步骤:
S1:控制器部署与监测单元(101)配置新增加的控制器节点的信息;
S2:计算该控制器的哈希值;并将该控制按照哈希值大小顺序插入到已有的控制器组成的逻辑环中;
S3:新增节点的后继邻居中小于新增节点哈希值的主副本拷贝到新增加的控制器上,组成属于该新增节点的主副本;
S4:新增节点的后继邻居中拷贝过的主副本标记成非主副本,表示新增节点中对应策略的副本;
S5:从新增节点的后继结点的非主副本集合中删除新增节点的主副本集合;
S6:将新增节点的后继节点的主副本集拷贝一份到新增节点的非主副本集合中;
S7:将新增节点的后继节点的非主副本集合中属于原来前驱节点的主副本从本地删除并迁移到新增节点的非主副本集合上;
S8:将新增节点的前驱节点的非主副本集合中属于原来后继节点的主副本集合删除。
CN201310247697.8A 2013-06-21 2013-06-21 一种容错的OpenFlow多控制器系统及其控制方法 Expired - Fee Related CN103346904B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310247697.8A CN103346904B (zh) 2013-06-21 2013-06-21 一种容错的OpenFlow多控制器系统及其控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310247697.8A CN103346904B (zh) 2013-06-21 2013-06-21 一种容错的OpenFlow多控制器系统及其控制方法

Publications (2)

Publication Number Publication Date
CN103346904A true CN103346904A (zh) 2013-10-09
CN103346904B CN103346904B (zh) 2016-03-30

Family

ID=49281680

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310247697.8A Expired - Fee Related CN103346904B (zh) 2013-06-21 2013-06-21 一种容错的OpenFlow多控制器系统及其控制方法

Country Status (1)

Country Link
CN (1) CN103346904B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103716415A (zh) * 2014-01-20 2014-04-09 北京交通大学 一种具有良好可扩展性的资源感知适配方法
CN104410528A (zh) * 2014-12-09 2015-03-11 中国人民解放军国防科学技术大学 软件定义数据中心网络控制器的最小容错覆盖部署方法
CN104980296A (zh) * 2014-04-11 2015-10-14 华为技术有限公司 OpenFlow多控制器系统及其管理方法
CN105359157A (zh) * 2013-07-09 2016-02-24 国际商业机器公司 网络安全系统
CN105549040A (zh) * 2015-12-04 2016-05-04 航天恒星科技有限公司 定位解算方法及接收机
CN106161548A (zh) * 2015-04-15 2016-11-23 先智云端数据股份有限公司 用于软件定义网络中数据库、应用程序与储存安全的系统
CN106803803A (zh) * 2015-11-26 2017-06-06 财团法人工业技术研究院 虚拟局域网络复原方法、系统及其装置
CN106972964A (zh) * 2017-03-27 2017-07-21 北京邮电大学 一种sdn网络系统及其控制器故障的恢复方法
CN107211013A (zh) * 2015-01-28 2017-09-26 诺基亚通信公司 软件定义联网控制器
US9813286B2 (en) 2015-11-26 2017-11-07 Industrial Technology Research Institute Method for virtual local area network fail-over management, system therefor and apparatus therewith
CN104811325B (zh) * 2014-01-24 2018-12-25 华为技术有限公司 一种集群节点控制器监控方法、相关装置以及控制器
CN109617776A (zh) * 2018-12-20 2019-04-12 桂林电子科技大学 基于分布式散列表的软件定义网络控制器的方法及系统
US10425293B2 (en) 2014-07-30 2019-09-24 Hewlett Packard Enterprise Development Lp Network resource allocation proposals
US11385602B2 (en) 2015-07-27 2022-07-12 Huawei Technologies Co., Ltd. System control method and apparatus, controller, and control system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102882719A (zh) * 2012-09-26 2013-01-16 盛科网络(苏州)有限公司 实现Openflow交换机系统中控制器冗余备份的方法及系统
US20130028091A1 (en) * 2011-07-27 2013-01-31 Nec Corporation System for controlling switch devices, and device and method for controlling system configuration
CN103023879A (zh) * 2012-11-26 2013-04-03 国电南瑞科技股份有限公司 一种基于高速缓存的数据中心间广域数据同步方法
CN103051539A (zh) * 2012-12-14 2013-04-17 中兴通讯股份有限公司 一种基于dht的控制网络实现方法、系统和网络控制器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130028091A1 (en) * 2011-07-27 2013-01-31 Nec Corporation System for controlling switch devices, and device and method for controlling system configuration
CN102882719A (zh) * 2012-09-26 2013-01-16 盛科网络(苏州)有限公司 实现Openflow交换机系统中控制器冗余备份的方法及系统
CN103023879A (zh) * 2012-11-26 2013-04-03 国电南瑞科技股份有限公司 一种基于高速缓存的数据中心间广域数据同步方法
CN103051539A (zh) * 2012-12-14 2013-04-17 中兴通讯股份有限公司 一种基于dht的控制网络实现方法、系统和网络控制器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
左青云等: "基于OpenFlow的SDN技术研究", 《软件学报》, vol. 24, no. 5, 29 March 2013 (2013-03-29), pages 1078 - 1097 *

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10110565B2 (en) 2013-07-09 2018-10-23 International Business Machines Corporation Network security processing
CN105359157A (zh) * 2013-07-09 2016-02-24 国际商业机器公司 网络安全系统
US9887963B2 (en) 2013-07-09 2018-02-06 International Business Machines Corporation Network security processing
CN105359157B (zh) * 2013-07-09 2017-12-29 国际商业机器公司 用于检测到安全漏洞而生成警报的网络安全系统和方法
US10587581B2 (en) 2013-07-09 2020-03-10 International Business Machines Corporation Network security processing
US11082405B2 (en) 2013-07-09 2021-08-03 International Business Machines Corporation Network security processing
CN103716415B (zh) * 2014-01-20 2017-08-22 北京交通大学 一种具有良好可扩展性的资源感知适配方法
CN103716415A (zh) * 2014-01-20 2014-04-09 北京交通大学 一种具有良好可扩展性的资源感知适配方法
CN104811325B (zh) * 2014-01-24 2018-12-25 华为技术有限公司 一种集群节点控制器监控方法、相关装置以及控制器
CN104980296B (zh) * 2014-04-11 2018-06-19 华为技术有限公司 OpenFlow多控制器系统及其管理方法
WO2015154620A1 (zh) * 2014-04-11 2015-10-15 华为技术有限公司 OpenFlow多控制器系统及其管理方法
CN104980296A (zh) * 2014-04-11 2015-10-14 华为技术有限公司 OpenFlow多控制器系统及其管理方法
US10425293B2 (en) 2014-07-30 2019-09-24 Hewlett Packard Enterprise Development Lp Network resource allocation proposals
CN104410528A (zh) * 2014-12-09 2015-03-11 中国人民解放军国防科学技术大学 软件定义数据中心网络控制器的最小容错覆盖部署方法
CN104410528B (zh) * 2014-12-09 2017-12-05 中国人民解放军国防科学技术大学 软件定义数据中心网络控制器的最小容错覆盖部署方法
CN107211013A (zh) * 2015-01-28 2017-09-26 诺基亚通信公司 软件定义联网控制器
CN106161548A (zh) * 2015-04-15 2016-11-23 先智云端数据股份有限公司 用于软件定义网络中数据库、应用程序与储存安全的系统
CN106161548B (zh) * 2015-04-15 2019-01-04 先智云端数据股份有限公司 用于软件定义网络中数据库、应用程序与储存安全的系统
US11385602B2 (en) 2015-07-27 2022-07-12 Huawei Technologies Co., Ltd. System control method and apparatus, controller, and control system
US9813286B2 (en) 2015-11-26 2017-11-07 Industrial Technology Research Institute Method for virtual local area network fail-over management, system therefor and apparatus therewith
TWI587661B (zh) * 2015-11-26 2017-06-11 財團法人工業技術研究院 混合式軟體定義網路的虛擬區域網路復原方法、系統及其裝置
CN106803803B (zh) * 2015-11-26 2019-11-15 财团法人工业技术研究院 虚拟局域网络复原方法、系统及其装置
CN106803803A (zh) * 2015-11-26 2017-06-06 财团法人工业技术研究院 虚拟局域网络复原方法、系统及其装置
CN105549040A (zh) * 2015-12-04 2016-05-04 航天恒星科技有限公司 定位解算方法及接收机
CN106972964A (zh) * 2017-03-27 2017-07-21 北京邮电大学 一种sdn网络系统及其控制器故障的恢复方法
CN106972964B (zh) * 2017-03-27 2019-11-22 北京邮电大学 一种sdn网络系统及其控制器故障的恢复方法
CN109617776A (zh) * 2018-12-20 2019-04-12 桂林电子科技大学 基于分布式散列表的软件定义网络控制器的方法及系统

Also Published As

Publication number Publication date
CN103346904B (zh) 2016-03-30

Similar Documents

Publication Publication Date Title
CN103346904A (zh) 一种容错的OpenFlow 多控制器系统及其控制方法
CN111681003B (zh) 资源跨链转移方法、装置、计算机设备以及存储介质
US7620680B1 (en) Fast byzantine paxos
US20180308091A1 (en) Fairness preserving byzantine agreements
CN102404390B (zh) 高速实时数据库的智能化动态负载均衡方法
TWI740575B (zh) 用於優先化共用區塊鏈資料儲存的方法、系統和裝置
CN110784331B (zh) 一种共识流程恢复方法及相关节点
TW202119428A (zh) 基於錯誤校正碼之共用區塊鏈資料儲存的共識
US7565433B1 (en) Byzantine paxos
KR20110044858A (ko) 데이터 센터들에 걸쳐 데이터 서버들내 데이터 무결정의 유지
CN101159539A (zh) 基于j2ee中间件规范的容忍入侵应用服务器及容忍入侵方法
CN102890716A (zh) 分布式文件系统和分布式文件系统的数据备份方法
CN103237059B (zh) 交通信息数据与命令交互方法
US20100268687A1 (en) Node system, server switching method, server apparatus, and data takeover method
CN113127270A (zh) 一种基于云计算的3取2安全计算机平台
CN105812161B (zh) 一种控制器故障备份方法和系统
CN102411607A (zh) 分布式数据存储系统中数据复制的方法以及相应设备
Roth et al. Do not overpay for fault tolerance!
CN1598778A (zh) 数据容灾备份控制系统
CN109165122B (zh) 一种提升基于区块链技术实现的应用系统同城多园区部署灾备能力的方法
CN110417833B (zh) 基于区块链的数据处理方法、装置及存储介质
CN102957565B (zh) 一种多主用设备冲突的处理方法和装置
Li et al. High availability for non-stop network controller
CN116567631A (zh) 一种基于分片区块链的移动终端安全认证方法
CN112953897B (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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160330