一种sdn控制器资源池的实现方法

文档序号:7803228阅读:481来源:国知局
一种sdn控制器资源池的实现方法
【专利摘要】本发明公开一种SDN控制器资源池(SDN?Controller?Pool)的实现方法,将多个SDN控制器组成一个资源池,池中的每个控制器都处于负荷分担的工作状态,其中任何一个控制器故障,池中的其他控制器均可无损接管,通过选举出来的主节点向其他节点同步状态和动态数据,在有节点故障时进行无损接管,主要包括资源池构建,数据同步,建立SDN交换机连接,故障检测,故障接管。
【专利说明】一种SDN控制器资源池的实现方法
【技术领域】
[0001]本发明涉及网络通信领域,特别涉及到一种SDN控制器资源池(SDN ControllerPool)的实现方法。
【背景技术】
[0002]软件定义网络(Software Defined Network, SDN ),是一种新型网络创新架构,其通过OpenFlow实现网络设备控制面与数据面的分离,为核心网络及应用创新提供开放平台,它主要是由控制器和SDN交换机组成,大型组网中存在多个控制器,为了提高系统的可靠性,往往是通过控制器的主备方式实现1+1的备份,但这种方式的可靠性和资源的使用率不高,本发明专利关注到了这方面的问题,发明了一种SDN控制器资源池的实现方法,将多个SDN控制器组成一个资源池,池中的每个控制器都处于负荷分担的工作状态,其中任何一个控制器故障,池中的其他控制器均可无损接管,达到1+N的备份效果。

【发明内容】

[0003]本发明的主要目的是提供SDN控制器资源池的实现方法,通过将多个SDN控制器组成一个Controller Pool,池中的所有控制器互为备份,SDN交换机可以选择其中的一个控制器也可以根据业务的不同使用多个控制器同时控制,其中一个控制器故障,另外的控制器实时感知故障并无损接管,由于各个控制器正常时均承担了业务,在提高可靠性的同时,也提高了控制器的使用效率。
[0004]本发明解决其技术问题所采用的技术方案包括:构建资源池,系统将多个控制器划为分为多个Domain,每个Domain为一个资源池;主节点选举,从池中选举一个控制器作为主节点,该节点负责向其他节点同步状态和动态数据;故障检测,由主节点与池中的控制器实时握手检测,发现故障后通知其他节点;故障接管,当检测出故障后,主节点根据负载均衡选择合适的控制器,由选中的控制器启动接管。
[0005]本发明的有益效果是,通过SDN控制器资源池实现1+N的备份,也可以实现1+N的负荷分担,在提高可靠性的同时,也提高了控制器的使用效率。
【专利附图】

【附图说明】
[0006]下面结合附图与实施例对本发明进一步说明
图1为本发明一种SDN控制器资源池的实现方法流程示意图。
【具体实施方式】
[0007]本发明实施主要是通过选举出来的主节点向其他节点同步状态和动态数据,在有节点故障时进行无损接管,主要包括资源池构建,数据同步,建立SDN交换机连接,故障检测,故障接管。
[0008]参照图1,本发明一种SDN控制器资源池的实现方法实施步骤包括: 步骤SlOl,资源池构建,系统将SDN控制器分为多个Domain,每个Domain的SDN控制器构成一个资源池,资源池的ID与Domain ID 一致,每个控制器配置一个资源池ID,同时每个控制器表示一个节点,每个节点有唯一的ID,构建Controller Pool表,其字段包括PoolID,节点ID序列,主节点ID。系统选举主节点,根据各个SDN控制器的MAC地址来选择,MAC地址小的优先选为主节点,同时主节点建立和资源池其他节点的状态监测通道和数据同步通道。
[0009]步骤S102,数据同步,主节点和池中其他节点建立数据同步通道,其他任何节点收到SDN交换机的请求或者是自己的状态发生改变时,通过数据通道将数据同步到主节点,主节点收到信息及时同步到资源池的其他控制器,同步采用TCP连接,并使用消息确认机制。
[0010]步骤S103,建立SDN交换机连接,SDN交换机通过Openflow协议建立和资源池中所有节点的通道,但只有其中一个SDN控制器为Master,其他均为Slave,只有连接Master的通道状态为激活,其他均未去激活。Master的选择由主节点根据业务和各个节点的负荷来决定,并通过扩展Openflow协议在建立Openflow连接通道时告知SDN交换机,SDN交换机也可以主动选择Master,以同样方式告知主节点。
[0011]步骤S104,故障检测,主节点和资源池的其他节点启动毫秒定时器,当200毫秒内没有收到对端的握手的Hello报文,则认为对端疑似故障,同时启动相邻节点向对端节点的检测,在100毫秒内没有收到回应,则确认对端状态故障,否则状态一直为对端疑似故障,故障检测采用私有协议,也可以使用类似BFD的机制,当主节点检测出资源池中的某个节点故障时,该故障信息将通过主节点同步到其他正常的节点。
[0012]步骤S105,故障接管,通过步骤S104的故障检测,在存在节点故障的情况,如果是主节点故障,则资源池中的其他节点按照主节点选举原则确定新的主节点,启动新主节点的数据同步和故障检测机制,同时新的主节点根据当前各个节点的负荷选择能够接管故障主节点的备份节点,如果是非主节点故障,同样由主节点根据当前各个节点的负荷选择能够接管故障节点的备份节点;备份节点通过扩展的Openflow协议,向SDN交换机请求切换,SDN交换机收到切换请求后,激活与新SDN控制器的连接通道,完成故障接管过程。
[0013]通过以上步骤的资源池构建,数据同步,建立SDN交换机连接,故障检测,故障接管,就实现了 SDN控制器资源池的系统功能,其中任何一个故障,池中的其他控制器均可无损接管,达到1+N的备份效果。
[0014]与现有的实现技术相比,本发明方法能够快速同步数据,快速和可靠的检测故障,能够快速接管故障,而且实现无损接管,比传统的1+1备份模式可靠性更高,池中的每个控制器都处于负荷分担的工作状态,资源的使用率更高。
[0015]以上对本发明实施例所提供的技术方案进行了详细介绍,本文中应用了具体个例对本发明实施例的原理以及实施方式进行了阐述,以上实施例的说明只适用于帮助理解本发明实施例的原理;同时,对于本领域的一般技术人员,依据本发明实施例,在【具体实施方式】以及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种SDN控制器资源池的实现方法,其特征是:将多个SDN控制器组成一个资源池,池中的每个控制器都处于负荷分担的工作状态,通过选举出来的主节点向其他节点同步状态和动态数据,在有节点故障时进行无损接管,主要包括资源池构建,数据同步,建立SDN交换机连接,故障检测,故障接管。
2.根据权利要求1所述的资源池构建,其特征是:系统将SDN控制器分为多个Domain,每个Domain的SDN控制器构成一个资源池,资源池的ID与Domain ID 一致,每个控制器配置一个资源池ID,同时每个控制器表示一个节点,每个节点有唯一的ID,构建ControllerPool表,其字段包括Pool ID,节点ID序列,主节点ID。
3.根据权利要求1所述的数据同步,其特征是:主节点和池中其他节点建立数据同步通道,其他任何节点收到SDN交换机的请求或者是自己的状态发生改变时,通过数据通道将数据同步到主节点,主节点收到信息及时同步到资源池的其他控制器,同步采用TCP连接,并使用消息确认机制。
4.根据权利要求3所述的数据通道,其特征是:数据通道基于TCP的协议,该消息的格式包括不限于发送节点ID,接收节点ID,消息体长度,消息体;其消息体使用XML的文本发送,包括不限于状态数据,ACL策略数据,Openflow流表数据,节点能力数据,QoS数据,SDN交换机的配置文件数据。
5.根据权利要求1所述的建立SDN交换机连接,其特征是:SDN交换机通过Openflow协议建立和资源池中所有节点的通道,但只有其中一个SDN控制器为Master,其他均为Slave,只有连接Master的通道状态为激活,其他均未去激活;Master的选择由主节点根据业务和各个节点的负荷来决定,并通过Openflow协议在建立Openflow连接通道时告知SDN交换机,SDN交换机也可以主动选择Master,以同样方式告知主节点。
6.根据权利要求1所述的故障检测,其特征是:主节点和资源池的其他节点启动毫秒定时器,当定时器如200毫秒超时没有收到对端的握手的Hello报文,则认为对端疑似故障,同时启动相邻节点向对端节点的检测,启动另外一个较小定时器如100毫秒内没有收到回应,则确认对端状态故障,否则状态一直为对端疑似故障,当主节点检测出资源池中的某个节点故障时,该故障信息将通过主节点同步到其他正常的节点。
7.根据权利要求1所述的故障接管,其特征是:如果是主节点故障,则资源池中的其他节点按照主节点选举原则确定新的主节点,启动新主节点的数据同步和故障检测机制,同时新的主节点根据当前各个节点的负荷选择能够接管故障主节点的备份节点,如果是非主节点故障,同样由主节点根据当前各个节点的负荷选择能够接管故障节点的备份节点;备份节点通过Openflow协议,向SDN交换机请求切换,SDN交换机收到切换请求后,激活与新SDN控制器的连接通道,完成故障接管过程。
【文档编号】H04L12/24GK103929333SQ201410192339
【公开日】2014年7月16日 申请日期:2014年5月8日 优先权日:2014年5月8日
【发明者】不公告发明人 申请人:陈桂芳
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1