CN110247862A - Sdn集群故障时业务快速连续切换系统及方法 - Google Patents
Sdn集群故障时业务快速连续切换系统及方法 Download PDFInfo
- Publication number
- CN110247862A CN110247862A CN201910517601.2A CN201910517601A CN110247862A CN 110247862 A CN110247862 A CN 110247862A CN 201910517601 A CN201910517601 A CN 201910517601A CN 110247862 A CN110247862 A CN 110247862A
- Authority
- CN
- China
- Prior art keywords
- sdn
- module
- sdn controller
- backup
- controller
- 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
Links
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/55—Prevention, detection or correction of errors
- H04L49/552—Prevention, detection or correction of errors by ensuring the integrity of packets received through redundant connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/55—Prevention, detection or correction of errors
- H04L49/557—Error correction, e.g. fault recovery or fault tolerance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
Abstract
本发明提出了一种SDN集群故障时业务快速连续切换系统及方法,解决了现有异构SDN集群中因SDN控制器异常导致业务中断和恢复正常状态耗时长的问题。本发明的切换系统在原有SDN集群架构中添加决策模块、全局备份模块、预连接模块和指令代理模块,使用可信决策、可信备份、异步启动、预先连接与指令代理的方法,通过在执行全局备份、异常判断、异常确认、恢复备份、准备切换、正式切换及中断处理和更新集群,实现了SDN控制器故障时的快速切换到可用控制器与快速业务恢复的功能。本发明具有冗余控制器无需提前启动,保证备份正确,切换耗时短及业务连续的优点。可用于SDN集群构建及维护领域。
Description
技术领域
本发明属于网络控制技术领域,更进一步涉及网络控制领域中的软件定义网络,具体是一种SDN集群故障时业务连续快速切换系统及方法。可以用于SDN集群构建及维护领域。
背景技术
软件定义网络(Software Defined Network,SDN)是由美国斯坦福大学CleanState课题研究组提出的一种新型网络创新架构,是网络虚拟化的一种实现方式。其核心技术OpenFlow通过将网络设备的控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能,为核心网络及应用的创新提供了良好的平台。
在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控制单元,所有SDN控制单元都通过预连接模块连接到决策模块,决策模块连接到全局备份模块,全局备份模块与冗余SDN控制器存在TCP连接渠道,在冗余SDN控制器需要连接替代时进行连接并获取备份信息,全局备份模块对可信SDN控制器进行备份,对决策模块、全局备份模块、预连接模块和指令代理模块分述如下:
所述决策模块,作为SDN集群的控制组件,用于总体控制SDN集群及判断集群中SDN控制器的可信状态;
所述全局备份模块,作为SDN集群旁路组件,用于对SDN集群中所有正在运行的SDN控制器的进行可信快照备份;
所述预连接模块,作为SDN集群旁路组件,用于控制切换流程;
所述指令代理模块,作为SDN控制器与SDN交换机的中间代理设备,用于实现故障SDN控制器切换时的快速切换与业务连续。
本发明还是一种SDN集群故障时业务快速连续切换方法,其特征在于,在权利要求书1-5所述的任一SDN集群故障时业务快速连续切换系统上实现,包括如下步骤:
(1)全局备份:全局备份模块向决策模块确认可信状态,对SDN集群内SDN控制器进行定期快照备份;
(2)异常判断:决策模块向全局备份模块提供集群中SDN控制器的可信状态信息,向预连接模块发送异常决策信息;
(3)异常确认:预连接模块获取决策模块发出的异常确认决策信息;
(4)恢复备份:预连接模块启动冗余SDN控制器,等待其完成启动后,向其发送备份获取指令,使其向全局备份模块获取并恢复异常SDN控制器的可信快照备份;
(5)准备切换:预连接模块确认冗余SDN控制器启动及复制备份完毕,向指令代理模块发出切换指令;
(6)正式切换及中断处理:指令代理模块将上游SDN控制器切换为冗余SDN控制器,重发中断的指令,并更新SDN控制器和SDN交换机的状态,恢复被中断的业务;
(7)更新集群:决策模块请求全局备份模块删除对异常SDN控制器的备份并开始对新加入集群的冗余SDN控制器进行备份。
本发明与现有技术相比,具有如下优点:
1.本发明在整个系统中添加了决策模块和预连接模块,决策模块与预连接模块连接,预连接模块与指令代理模块相连,当决策模块发现异常的SDN控制器并通知预连接模块后,预连接模块才会通过集群管理API启动冗余SDN控制器,而无需冗余SDN控制器在预连接模块得到异常通知前提前启动待命;
2.本发明在整个系统中添加了全局备份模块,全局备份模块与决策模块相连,向决策模块确认SDN控制器可信后进行快照备份,在SDN控制器发生故障时提供可信快照备份以便恢复,与现有技术相比,避免了SDN控制器出现错误后恢复无用的错误信息,且其为异步恢复,不影响正在运行的SDN控制单元,解决了同步恢复耗时长的问题;
3.本发明在整个系统中添加了指令代理模块,指令代理模块东向连接预连接模块,接收其控制指令,南北向连接在SDN控制器与SDN交换机之间,代理SDN控制器与SDN交换机之间的信息,指令代理模块在更换上游SDN控制器前可保持与现有SDN控制器连接,与冗余SDN控制器建立预先连接后再进行完全切换。同时,指令代理模块也作为透明代理缓存与转发SDN控制器与SDN交换机之间的信息,并模拟SDN控制器和SDN交换机的指令对SDN控制器和SDN交换机进行直接操作。与现有技术相比,解决了SDN交换机无法连接多个SDN控制器的问题,解决了切换过程中的耗时、切换完成后SDN控制器与SDN交换机之间等待自行同步信息的耗时与切换过程中指令丢失导致的业务中断的问题。
附图说明
图1是本发明SDN集群故障快速连续切换系统的整体结构示意图;
图2是本发明SDN集群故障快速连续切换方法的实现流程图。
具体实施方式
下面结合附图和具体实施例,对本发明作详细描述:
实施例1
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控制器存在TCP连接渠道,在冗余SDN控制器需要连接替代时进行连接并获取备份信息,全局备份模块对可信SDN控制器进行备份,对决策模块、全局备份模块、预连接模块和指令代理模块分述如下:
所述决策模块,作为SDN集群的控制组件,用于总体控制SDN集群及判断集群中SDN控制器的可信状态;
所述全局备份模块,作为SDN集群旁路组件,用于对SDN集群中所有正在运行的SDN控制器的进行可信快照备份;
所述预连接模块,作为SDN集群旁路组件,用于控制切换流程;
所述指令代理模块,作为SDN控制器与SDN交换机的中间代理设备,用于实现故障SDN控制器切换时的快速切换与业务连续。
本发明给出了一个实现SDN集群故障时业务快速连续切换系统的整体技术方案,基于垂直架构的SDN控制器集群,避免了使用单一的控制器节点导致的可靠性弱,扩展性差和性能低的问题,同时该架构可在SDN控制器异常出现后将其替代为异构SDN控制器,避免了使用同构SDN控制器导致在替代完成后容易再次出现类似异常的问题,增强了系统的稳定性,此外,本发明还添加了决策模块,全局备份模块,预连接模块和指令代理模块,使用可信决策、可信备份、异步启动、预先连接与指令代理方法解决了冗余SDN控制器启动及切换过程耗时长,SDN控制器切换过程指定丢失和进行错误备份恢复导致业务中断的问题。
实施例2
SDN集群故障时业务快速连续切换系统的总体构成和各模块的设置同实施例1,决策模块:
决策模块作为独立应用程序,使用Python编写,在单独的虚拟机或物理机上运行,使用RESTful API对外提供交互,使用HTTP请求对外进行交互。
A.决策模块内部自定义决策算法每一定间隔判断一次SDN控制器的可信状态,可信状态分为可信与不可信,当全局备份模块需要获取某ID的SDN控制器可信状态时,响应全局备份模块的GET请求:
GET/trust/id
其中id为SDN控制器ID,决策模块根据决策历史返回其最近的一次决策结果:
{code:statuscode,trust:status,error:errorcode,msg:message}
其中,statuscode表示请求的结果,200表示正常返回,即该条请求成功处理,errorcode表示错误码,0表示无错误,1表示出现错误,status表示请求ID的可信状态,true表示可信,false表示不可信,message为附加信息,描述错误内容。
B.通过DELETE和PUT请求向全局备份模块发送备份控制指令,控制全局备份模块删除或创建对某SDN控制器备份。
C.通过POST请求向预连接模块发送异常确认决策信息,开始预连接模块对故障SDN控制器的切换流程。
本发明决策模块使用决策算法,对整个SDN集群中的控制器进行综合评估,在SDN控制器发生异常之前即可提前预警,将异常程度高的SDN控制器通知给预连接模块开始替换过程,确保了系统不会在SDN控制器出现错误导致业务已经中断后才实行应对策略。同时,决策模块可调度异常SDN控制器为异构SDN控制器,降低了冗余SDN控制器替换完成后再次出现错误的风险。
实施例3
SDN集群故障时业务快速连续切换系统的总体构成和各模块的设置同实施例1-2,全局备份模块:
全局备份模块作为独立应用程序,使用Python编写,在单独的虚拟机或物理机上运行,使用RESTful API对外提供交互,使用HTTP请求对外进行交互,使用SQL数据库存储SDN控制器信息。
全局备份模块SQL数据库存储的内容为SDN控制器的ID和SDN控制器的最后可信备份时间。
I.全局备份模块每一定间隔对SQL数据库列表中的每一个SDN控制器确认可信状态,进行备份,且根据SDN控制器ID与最后备份时间进行字符串相连后的hash值作为备份快照的存储名称,存储快照到全局备份模块本地。
II.当冗余SDN控制器请求获取备份快照文件时,响应冗余SDN控制器的GET请求:
GET/backup/hash
其中hash为冗余SDN控制器请求的备份快照的hash路径,直接将本地保存的备份快照以二进制形式返回供冗余SDN控制器保存。
III.当冗余SDN控制器请求获取备份快照hash路径时,响应冗余控制器的GET请求:
GET/backuphash/id
其中ID为冗余SDN控制器希望获得的SDN控制器快照备份hash路径的ID,全局备份模块返回:
{code:statuscode,hash:hashvalue,error:errorcode,msg:message}
其中,statuscode表示请求的结果,200表示正常返回,即该条请求成功处理,hashvalue表示该SDN控制器快照备份的HASH值,用于构成II中的请求,errorcode表示错误码,0表示无错误,1表示出现错误,message为附加信息,描述错误内容。
Ⅳ.当决策模块请求进行备份管理操作时,响应决策模块的请求:
DELETE/id
当全局备份模块接收到上述DELETE请求后,全局备份模块从SQL数据库中删除此ID对应的表项,且删除其已存在的备份快照,若ID不存在,则忽略,
PUT/id
当全局备份模块接收到上述PUT请求后,全局备份模块在SQL数据库中新建对应ID的SDN控制器的表项,进行备份操作。
若接收完成上述DELETE与PUT请求,全局备份模块返回:
{code:200}
表明该条请求成功处理。
本发明中,全局备份模块通过决策模块获取SDN集群中各SDN控制器的可信状态,保证了备份的准确性,避免冗余SDN控制器恢复错误的备份,同时,全局备份模块统一管理维护SDN控制器列表及其备份,方便冗余SDN控制器获取。
实施例4
SDN集群故障时业务快速连续切换系统的总体构成和各模块的设置同实施例1-3,预连接模块:
预连接模块作为独立应用程序,使用Python编写,在单独的虚拟机或物理机上运行,使用RESTful API对外提供交互,使用HTTP请求对外进行交互。
1).当决策模块发送决策消息时,响应POST请求:
POST/change/id1/id2
其中,id1为异常控制器编号,id2为冗余控制器编号。
若接收完成上述决策信息,预连接模块返回:
{code:statuscode,error:errorcode,msg:message}
其中,statuscode表示请求的结果,200表示正常返回,即该条请求成功处理,errorcode表示错误码,0表示无错误,1表示出现错误,message为附加信息,描述错误内容。
2).通过集群管理API启动冗余SDN控制器id2的电源,向启动后的冗余SDN控制器id2使用POST请求发送对决策信息中异常SDN控制器id1可信拓扑的恢复备份指令;
3).使用GET请求轮询冗余SDN控制器id2的备份恢复进度,当恢复完成后,向异常SDN控制器id1所属的指令代理模块使用POST请求发送预连接指令。
预连接模块在接收到决策模块的切换指令后才会启动对应的冗余SDN控制器,无需冗余SDN控制器在异常发生前即启动,减少了资源浪费,同时,在冗余SDN控制器启动及恢复备份完成之前不会进行正式切换,通过此异步操作避免了切换过程耗时长的问题。
实施例5
SDN集群故障时业务快速连续切换系统的总体构成和各模块的设置同实施例1-4,指令代理模块:
指令代理模块作为独立应用程序,使用Python编写,在单独的虚拟机或物理机上运行,分为控制指令部分与透明代理部分,其中控制指令部分使用RESTful API对外提供交互,透明代理部分使用socket进行指令的缓存、转发与创建。
当预连接模块请求建立预连接时,响应POST请求:
POST/change/id1/id2
其中,id1为异常控制器编号,id2为冗余SDN控制器编号,
预连接模块开始建立预连接,返回:
{code:statuscode,success:status,error:errorcode,msg:message}
其中,statuscode表示请求的结果,200表示正常返回,即请求成功,status表示连接结果,true表示预连接成功,false表示预连接失败,errorcode表示错误码,0表示无错误,1表示出现错误,message为附加信息,描述错误内容。
本发明的指令代理模块控制指令部分连接预连接模块,透明代理部分连接SDN控制器与SDN交换机,在指令代理模块接收到预连接模块的指令后需先完成对冗余控制器的预连接,才会切断与异常控制器的连接并正式更新上游为冗余SDN控制器,大大缩短了切换时长,同时指令代理模块通过缓存与转发SDN控制器与SDN交换机之间通信,使切换中丢失的指令重发,并模拟控制指令主动同步SDN控制器与SDN交换机的状态,保证了业务快速恢复正常。
实施例6
本发明还是一种SDN集群故障时业务快速连续切换方法,是在上述的任一SDN集群故障时业务快速连续切换系统上实现,SDN集群故障时业务快速连续切换系统的总体构成和各模块的设置同实施例1-5,本发明的SDN集群故障时业务快速连续切换方法,参见图2,包括如下步骤:
(1)全局备份:全局备份模块向决策模块确认可信状态,对SDN集群内SDN控制器进行定期快照备份;
(2)异常判断:决策模块向全局备份模块提供集群中SDN控制器的可信状态信息,向预连接模块发送异常决策信息;
(3)异常确认:预连接模块获取决策模块发出的异常确认决策信息;
(4)恢复备份:预连接模块启动冗余SDN控制器,等待其完成启动后,向其发送备份获取指令,使其向全局备份模块获取并恢复异常SDN控制器的可信拓扑信息;
(5)准备切换:预连接模块确认冗余SDN控制器启动及复制备份完毕,向指令代理模块发出切换指令;
(6)正式切换及中断处理:指令代理模块将上游SDN控制器切换为冗余SDN控制器,重发中断的指令,并更新SDN控制器和SDN交换机的状态,恢复被中断的业务;
(7)更新集群:决策模块请求全局备份模块删除对异常SDN控制器的备份并开始对新加入集群的冗余SDN控制器进行备份。
本发明的方法在各步骤之间均采用RESTful API通信,各模块能在发送指令后均能获得其执行结果,以便进一步通知决策模块根据返回的错误信息重新决策,增强了系统内指令通信的稳定性。
实施例7
SDN集群故障时业务快速连续切换系统的总体构成和各模块的设置同实施例1-6,恢复备份过程为异步过程,不影响运行中的SDN控制单元,恢复的均为可信的拓扑信息,且冗余SDN控制器无需在异常发生前启动,只需在预连接模块接收到异常指令之后由预连接模块启动。
i.当预连接模块请求恢复备份时,响应POST请求:
POST/recoverbackup/id
其中id为需要恢复可信备份快照的异常SDN控制器ID,返回:
{code:200}
表明该条请求成功处理。
ii.当预连接模块请求查询恢复进度时,响应GET请求
GET/status
返回:
{code:statuscode,success:status,error:errorcode,msg:message}
其中,statuscode表示请求的结果,200表示正常返回,即请求成功,status表示还原备份结果,true表示还原成功,false表示等待中,errorcode表示错误码,0表示无错误,-1表示正在还原备份,1表示还原备份出错,message为附加信息,描述错误内容。
冗余SDN控制器可异步向预连接模块提供目前的命令处理进度,使预连接模块能及时确定冗余SDN控制器准备完成以便进行后续步骤。
实施例8
SDN集群故障时业务快速连续切换系统的总体构成和各模块的设置同实施例1-7,指令代理模块接收到预连接模块发送的预连接指令,建立对冗余SDN控制器id2的socket连接,连接完成后,指令代理模块断开socket对异常SDN控制器id1的连接,更换冗余SDN控制器id2为主控制器,切换过程中未转发成功的指令使用socket重新发送,最后使用socket构建SDN控制器和SDN交换机指令,清除SDN交换机流表,向冗余SDN控制器发送流表已删除指令,SDN控制器与SDN交换机重新构建可信的拓扑,恢复中断的业务。
使用Socket可简易高效地缓存与转发SDN控制器和SDN交换机之间的消息,并通过模拟SDN控制器与SDN交换机的请求主动完成了指令丢失重发与两者的信息同步,相比于通过SDN控制器进行自动处理,缩短了时间。
本发明用解决了现有技术中存在的SDN集群故障时切换导致业务中断及耗时长的技术问题,实现步骤为:决策模块,作为SDN集群的控制组件,用于总体控制SDN集群及判断集群中SDN控制器的可信状态;全局备份模块,作为SDN集群旁路组件,用于对SDN集群中所有正在运行的SDN控制器的进行可信快照备份;预连接模块,作为SDN集群旁路组件,用于控制切换流程;指令代理模块,作为SDN控制器与SDN交换机的中间代理设备,用于实现故障SDN控制器切换时的快速切换与业务连续。
下面再给出一个将方法和系统融为一体的更加详细的例子,对本发明进一步说明
实施例9
参照图2,本发明的一种SDN集群故障时业务快速连续切换方法,包括如下步骤:
(1)全局备份:全局备份模块SQL数据库中存在的SDN控制器编号为
{S1,S2,……,Sn},向决策模块分别确认其可信状态,
GET/trust/Sn
如trust为true,即可信,则记录当前时间,更改SQL数据库中此ID对应的时间,创建SDN控制器Sn的备份快照,以hash(Sn+时间)进行命名。若不可信,则跳过本次备份。若error为1,msg提示不存在此ID,则从SQL数据库中删除此ID的记录,且删除其备份快照文件。
(2)异常判断:决策模块检测到SDN集群中编号为S1的SDN控制器出现异常,需要更换为编号为R1的冗余SDN控制器,决策模块向预连接模块发送异常决策信息:
POST/change/S1/R1
(3)异常确认:预连接模块获取决策模块发出的异常确认决策信息,确认SDN控制器S1异常,期望更换为冗余SDN控制器R1。
(4)恢复备份:预连接模块通过集群管理API打开冗余SDN控制器R1的电源,启动冗余SDN控制器R1,等待其完成启动后,向其发送备份获取指令:
POST/recoverbackup/S1
预连接模块轮询冗余SDN控制器获取其备份进度:
GET/status
冗余SDN控制器R1向全局备份模块请求,error更改为-1:
GET/backuphash/S1
获得异常控制器S1的可信备份快照路径hash,向全局备份模块继续请求:
GET/backup/hash
将返回的二进制保存为快照文件,恢复此快照,error更改为0,success更改为true。
若恢复出错,则更改error为1,在msg中添加错误信息,返回给预连接模块,预连接模块获得此错误,更改error为1,添加msg返回给决策模块,决策模块根据错误信息重新决策。
(5)准备切换:预连接模块轮询确认冗余SDN控制器R1启动及复制备份完毕,向指令代理模块发出切换指令;
POST/change/S1/R1
(6)正式切换及中断处理:指令代理模块接收到预连接模块发送的切换指令,通过标准OpenFlow协议建立对冗余SDN控制器R1的预先连接,若连接出错,更改status为false,error为1,添加错误描述msg返回给预连接模块,预连接模块返回给决策模块进行重新决策;当连接完成后,指令代理模块断开与异常SDN控制器S1的连接,正式将上游SDN控制器变更为冗余SDN控制器R1;指令代理模块将切换过程中为发送成果的SDN控制器和SDN交换机指令重新发送,并通过标准OpenFlow协议向SDN交换机发送controller-to-switch流表删除请求,清空下属SDN交换机流表,然后向冗余SDN控制器R1发送synchronous(异步)消息,提醒冗余SDN控制器R1交换机流表已被删除,令其重新下发流表更新下层SDN交换机拓扑,实现同步SDN控制器与交换机的状态,恢复可信的流表,恢复被中断的业务。
(7)更新集群:决策模块请求全局备份模块删除对异常SDN控制器S1的备份:
DETELE/S1
开始对新加入集群的冗余SDN控制器R1进行备份:
PUT/R1
完成了异常SDN控制器发现后的业务快速连续切换流程。
简而言之,本发明提出的一种SDN集群故障时业务快速连续切换系统及方法,解决了现有异构SDN集群中因SDN控制器异常导致业务中断和恢复正常状态耗时长的问题。本发明的切换系统在原有SDN集群架构中添加决策模块、全局备份模块、预连接模块和指令代理模块,使用可信决策、可信备份、异步启动、预先连接与指令代理的方法,通过在执行全局备份、异常判断、异常确认、恢复备份、准备切换、正式切换及中断处理和更新集群,实现了SDN控制器故障时的快速切换到可用控制器与快速业务恢复的功能。本发明具有冗余控制器无需提前启动,保证备份正确,切换耗时短及业务连续的优点。可用于SDN集群构建及维护领域。
Claims (8)
1.一种SDN集群故障时业务快速连续切换系统,包括有多个SDN控制单元和作为替换的冗余SDN控制器组成的SDN集群,每个SDN控制单元由应用层控制的一个SDN控制器和多个SDN交换机构成,SDN控制器可为异构控制器,形成垂直架构的SDN集群,应用层向SDN控制器发送控制信息,使SDN控制器更改其下层SDN交换机拓扑结构,当某一SDN控制器出现故障时,此故障SDN控制器由冗余的SDN控制器连接替代。其特征在于,还包括有决策模块、全局备份模块、预连接模块和指令代理模块,所述SDN控制单元是在SDN控制器与每个SDN交换机之间添加了指令代理模块形成的新的SDN控制单元,所有SDN控制单元都通过预连接模块连接到决策模块,决策模块连接到全局备份模块,全局备份模块与冗余SDN控制器存在TCP连接渠道,在冗余SDN控制器需要连接替代时进行连接并获取备份信息,全局备份模块对可信SDN控制器进行备份,对决策模块、全局备份模块、预连接模块和指令代理模块分述如下:
所述决策模块,作为SDN集群的控制组件,用于总体控制SDN集群及判断集群中SDN控制器的可信状态;
所述全局备份模块,作为SDN集群旁路组件,用于对SDN集群中所有正在运行的SDN控制器的进行可信快照备份;
所述预连接模块,作为SDN集群旁路组件,用于控制切换流程;
所述指令代理模块,作为SDN控制器与SDN交换机的中间代理设备,用于实现故障SDN控制器切换时的快速切换与业务连续。
2.根据权利要求1所述的SDN集群故障时业务快速连续切换系统,其特征在于,所述决策模块:
A.判断SDN集群中正在运行的SDN控制器的可信状态,向预连接模块发送异常确认决策信息,开始预连接模块对故障SDN控制器的切换流程;
B.向全局备份模块提供集群中SDN控制器的当前可信状态信息;
C.向全局备份模块发送备份控制指令,控制全局备份模块删除或创建对某SDN控制器备份。
3.根据权利要求1所述的SDN集群故障时业务快速连续切换系统,其特征在于,所述全局备份模块:
I.向决策模块获取SDN控制器的可信状态信息,若可信,则对SDN控制器进行快照备份,若不可信则不备份;
II.在SQL数据库中管理可信SDN控制器列表,保存SDN控制器可信快照备份到本地;
III.向冗余SDN控制器提供其需要的备份信息。
4.根据权利要求1所述的SDN集群故障时业务快速连续切换系统,其特征在于,所述预连接模块:
1).接收决策模块发出的SDN控制器异常确认决策信息;
2).启动决策信息中指定的冗余SDN控制器,向启动后的冗余SDN控制器发送对决策信息中异常SDN控制器可信快照备份的恢复备份指令;
3).向异常SDN控制器所属的指令代理模块发送预连接指令。
5.根据权利要求1所述的SDN集群故障时业务快速连续切换系统,其特征在于,所述指令代理模块:
a.作为SDN控制器与其下属SDN交换机之间的透明代理;
b.缓存与转发SDN控制器与SDN交换机之间的通信会话;
c.模拟SDN控制器和SDN交换机指令,对SDN控制器和SDN交换机进行直接控制;
d.可建立对多台SDN控制器的连接,并且能够切换需要使用的上游主SDN控制器。
6.一种SDN集群故障时业务快速连续切换方法,其特征在于,在权利要求书1-5所述的任一SDN集群故障时业务快速连续切换系统上实现,包括如下步骤:
(1)全局备份:全局备份模块向决策模块确认可信状态,对SDN集群内SDN控制器进行定期快照备份;
(2)异常判断:决策模块向全局备份模块提供集群中SDN控制器的可信状态信息,向预连接模块发送异常决策信息;
(3)异常确认:预连接模块获取决策模块发出的异常确认决策信息;
(4)恢复备份:预连接模块启动冗余SDN控制器,等待其完成启动后,向其发送备份获取指令,使其向全局备份模块获取并恢复异常SDN控制器的可信快照备份;
(5)准备切换:预连接模块确认冗余SDN控制器启动及复制备份完毕,向指令代理模块发出切换指令;
(6)正式切换及中断处理:指令代理模块将上游SDN控制器切换为冗余SDN控制器,重发中断的指令,并更新SDN控制器和SDN交换机的状态,恢复被中断的业务;
(7)更新集群:决策模块请求全局备份模块删除对异常SDN控制器的备份并开始对新加入集群的冗余SDN控制器进行备份。
7.根据权利要求6所述的SDN集群故障时业务快速连续切换方法,其特征在于,步骤4所述的恢复备份过程,过程为异步过程,不影响运行中的SDN控制单元,恢复的均为可信的拓扑信息,且冗余SDN控制器无需在异常发生前启动,只需在接收到异常指令之后由预连接模块启动。
8.根据权利要求6所述的SDN集群故障时业务快速连续切换方法,其特征在于,步骤6所述的正式切换及中断处理过程:
6.1 指令代理模块接收到预连接模块发送的切换指令,建立对冗余SDN控制器的预先连接;
6.2 当连接完成后,指令代理模块正式将上游SDN控制器变更为冗余SDN控制器;
6.3 指令代理模块重发切换过程中转发失败的指令,向SDN控制器发送控制指令,令其删除流表,向冗余SDN控制器发送控制指令,令其更新下层SDN控制器拓扑,同步SDN控制器与交换机的状态,恢复被中断的业务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910517601.2A CN110247862B (zh) | 2019-06-14 | 2019-06-14 | Sdn集群故障时业务快速连续切换系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910517601.2A CN110247862B (zh) | 2019-06-14 | 2019-06-14 | Sdn集群故障时业务快速连续切换系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110247862A true CN110247862A (zh) | 2019-09-17 |
CN110247862B CN110247862B (zh) | 2021-03-23 |
Family
ID=67887278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910517601.2A Active CN110247862B (zh) | 2019-06-14 | 2019-06-14 | Sdn集群故障时业务快速连续切换系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110247862B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113472891A (zh) * | 2021-07-15 | 2021-10-01 | 浪潮思科网络科技有限公司 | 一种sdn控制器集群数据处理方法、设备及介质 |
CN115344327A (zh) * | 2022-08-19 | 2022-11-15 | 中电金信软件有限公司 | 应用模块的切换方法、装置、电子设备及可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103973481A (zh) * | 2014-04-21 | 2014-08-06 | 蓝盾信息安全技术股份有限公司 | 一种基于sdn的云计算数据中心的审计系统及方法 |
CN104734878A (zh) * | 2013-12-18 | 2015-06-24 | 国际商业机器公司 | 软件定义联网灾难恢复的方法和系统 |
CN107682410A (zh) * | 2017-09-14 | 2018-02-09 | 广州西麦科技股份有限公司 | 一种分布式sdn控制器集群的控制方法及装置 |
KR20190001402A (ko) * | 2017-06-27 | 2019-01-04 | 주식회사 케이티 | 소프트웨어 정의 네트워크에서의 소프트웨어 정의 네트워크 제어기, 이를 이용한 장애 복구 그룹 생성 방법 및 장애 복구 방법 |
CN109309577A (zh) * | 2017-07-27 | 2019-02-05 | 杭州达乎科技有限公司 | 用于sdn网络的告警处理方法、装置及系统 |
CN109768924A (zh) * | 2019-02-14 | 2019-05-17 | 山东省计算中心(国家超级计算济南中心) | 一种面向多流共存的sdn网络多链路故障恢复方法及系统 |
-
2019
- 2019-06-14 CN CN201910517601.2A patent/CN110247862B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104734878A (zh) * | 2013-12-18 | 2015-06-24 | 国际商业机器公司 | 软件定义联网灾难恢复的方法和系统 |
CN103973481A (zh) * | 2014-04-21 | 2014-08-06 | 蓝盾信息安全技术股份有限公司 | 一种基于sdn的云计算数据中心的审计系统及方法 |
KR20190001402A (ko) * | 2017-06-27 | 2019-01-04 | 주식회사 케이티 | 소프트웨어 정의 네트워크에서의 소프트웨어 정의 네트워크 제어기, 이를 이용한 장애 복구 그룹 생성 방법 및 장애 복구 방법 |
CN109309577A (zh) * | 2017-07-27 | 2019-02-05 | 杭州达乎科技有限公司 | 用于sdn网络的告警处理方法、装置及系统 |
CN107682410A (zh) * | 2017-09-14 | 2018-02-09 | 广州西麦科技股份有限公司 | 一种分布式sdn控制器集群的控制方法及装置 |
CN109768924A (zh) * | 2019-02-14 | 2019-05-17 | 山东省计算中心(国家超级计算济南中心) | 一种面向多流共存的sdn网络多链路故障恢复方法及系统 |
Non-Patent Citations (3)
Title |
---|
V.PASHKOV等: "Controller failover for SDN enterprise networks", 《2014 MONETEC》 * |
乐宗港: "基于AMQP的SDN控制器故障恢复机制", 《通信技术》 * |
朱兴浩等: "SDN中控制器的故障切换需求分析", 《无线互联科技》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113472891A (zh) * | 2021-07-15 | 2021-10-01 | 浪潮思科网络科技有限公司 | 一种sdn控制器集群数据处理方法、设备及介质 |
CN113472891B (zh) * | 2021-07-15 | 2024-04-26 | 浪潮思科网络科技有限公司 | 一种sdn控制器集群数据处理方法、设备及介质 |
CN115344327A (zh) * | 2022-08-19 | 2022-11-15 | 中电金信软件有限公司 | 应用模块的切换方法、装置、电子设备及可读存储介质 |
CN115344327B (zh) * | 2022-08-19 | 2023-07-28 | 中电金信软件有限公司 | 应用模块的切换方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110247862B (zh) | 2021-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN201075870Y (zh) | 多机架路由器 | |
US8149691B1 (en) | Push-based hierarchical state propagation within a multi-chassis network device | |
CN109981769B (zh) | 面向工业智能制造的网络协同模型、方法及装置 | |
CN103583063B (zh) | 用于地理冗余网关处的故障恢复的系统和方法 | |
CN101136900B (zh) | 一种面向服务的快速透明故障转移装置及实现方法 | |
CN103155497B (zh) | 通信系统、控制设备、节点、处理规则设置方法以及程序 | |
WO2012122945A1 (zh) | 用于虚拟网络单元的工作方法及装置 | |
JP6095583B2 (ja) | データ転送装置システム及びネットワークシステム | |
US20140185429A1 (en) | Communication system, path switching method and communication device | |
WO2016177231A1 (zh) | 基于双主控的主备倒换方法及装置 | |
CN110247862A (zh) | Sdn集群故障时业务快速连续切换系统及方法 | |
CN109446178A (zh) | 一种Hadoop对象存储高可用方法、系统、装置及可读存储介质 | |
WO2017113929A1 (zh) | 一种软件定义网络中控制转发设备集群的方法及控制器 | |
WO2007048319A1 (fr) | Systeme et procede de recuperation sur sinistre de dispositif de commande de service dans un reseau intelligent | |
CN110673981A (zh) | 故障恢复方法、装置和系统 | |
CN101461196A (zh) | 在本地节点运行中断期间不间断的网络控制消息生成 | |
WO2013037314A1 (zh) | 用于数据处理中心容灾备份的系统及方法 | |
CN101340377B (zh) | 一种用于二层网络数据传输的方法、装置及其系统 | |
CN109412943B (zh) | 一种sdn控制器集群流量处理方法、装置、设备及存储介质 | |
CN111083074A (zh) | 主备双ospf状态机的高可用性方法和系统 | |
JP6953713B2 (ja) | 通信ノード、通信システム、通信方法及びプログラム | |
CN106161243A (zh) | 一种状态上报控制方法和装置 | |
WO2008022573A1 (fr) | Système et procédé de découpage et de connexion d'un circuit | |
CN109246007A (zh) | 聚合接口的主备端口切换方法、存储装置和网络设备 | |
CN113472891A (zh) | 一种sdn控制器集群数据处理方法、设备及介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |