一种分布式架构软件定义网络控制器的调度方法与流程

文档序号:11517672阅读:270来源:国知局
一种分布式架构软件定义网络控制器的调度方法与流程
本发明涉及软件
技术领域
,尤其涉及一种分布式架构软件定义网络控制器的调度方法。
背景技术
:目前,软件定义网络(softwaredefinednetwork,sdn)控制器的调度方案比较通用的是双机热备份调度方案,参考图1,主sdn控制器负责统一管理所有的虚拟交换机业务,备sdn控制器通过vrrp协议监听主sdn控制器的工作状态,主sdn控制器出现异常,触发备sdn控制器接管主sdn控制器的虚拟交换机业务。这种方式的缺点是:单个sdn控制器会成为虚拟网络控制器平面的单点瓶颈,在超大规模的虚拟化网络中,主备切换效率低,在跨数据中心的云网络部署中,单个sdn控制器无法实现多数据中心跨云灾备。参考图2,在超大规模虚拟化网络中,采用sdn控制器集群模型。多个sdn控制器协同工作,通过选举以及负载均衡等算法均衡分摊虚拟交换机业务。各个sdn控制器之间通过心跳通讯监听其他sdn控制器的工作状况。其中一个sdn控制器出现故障,触发其他sdn控制器将该故障sdn控制器所接管的虚拟交换机重新进入选举,由其他sdn控制器接受虚拟交换机业务。但这种方式有以下几个缺点:逻辑复杂,容易出现多控制器之间的脑裂问题。在超大规模的虚拟化网络中,选举切换的效率低。在跨数据中心的云网络部署中,sdn控制器集群难以实现多数据中心灾备。多物理数据中心之间的线路故障,将导致sdn控制器集群出现大面积问题导致网络中断。技术实现要素:本发明的目的在于针对上述现有技术中的双机热备份调度方案和sdn控制器集群模型的缺点,提出了一种分布式架构软件定义网络控制器的调度方法,实现跨多数据中心高可用云网络。一种分布式架构软件定义网络控制器的调度方法,软件定义网络控制器的分布式架构包括n个计算节点,每个计算节点包括软件定义网络控制器、虚拟机以及虚拟交换机,所述软件定义网络控制器和虚拟机均与所述虚拟交换机连接,其中,n为大于或等于2的整数;所述调度方法包括:启动当前软件定义网络控制器获取本地虚拟交换机的端口信息,根据所述端口信息建立本地拓扑信息表,并根据同步信息标准将当前软件定义网络控制器的本地拓扑信息表同步至其他软件定义网络控制器;各计算节点中的软件定义网络控制器监听本地虚拟交换机是否接入或断开,如果本地虚拟交换机接入或断开,则该计算节点中的软件定义网络控制器根据接入或断开的虚拟交换机的端口信息更新本地拓扑信息表,并根据同步信息标准将更新后的拓扑信息表同步至其他软件定义网络控制器;各计算节点中的软件定义网络控制器检测是否接收到restapi配置信息,如果任一软件定义网络控制器接收到所述restapi配置信息,则对所述restapi配置信息进行验证,验证通过后更新本地config配置信息表,并根据同步信息标准将更新的config配置信息表同步至其他软件定义网络控制器。进一步地,所述端口信息包括虚拟机的mac地址、上行后端口号、虚拟网络内网口端口号、虚拟交换机的mac地址以及主机名。进一步地,所述同步信息标准包括源主机名、目标主机名、服务类型、同步信息格式以及是否需要回复信息。进一步地,根据同步信息标准将当前启动的软件定义网络控制器的本地拓扑信息表同步至其他软件定义网络控制器,包括:当前软件定义网络控制器设置源主机名为本计算节点主机名,设置是否需要回复信息为需要回复,设置目标主机名为广播,设置服务类型为拓扑同步,设置同步信息格式为本地虚拟交换机拓扑信息字符串,将本地拓扑信息表发送至消息队列;其他软件定义网络控制器接收到当前软件定义网络控制器的拓扑信息表之后,创建回复信息并更新本地拓扑信息表;其他软件定义网络控制器设置源主机名为本计算节点主机名,设置是否需要回复信息为不需要回复,设置目标主机名为当前软件定义网络控制器的主机名,设置服务类型为拓扑同步,设置同步信息格式为本地虚拟交换机拓扑信息,将所述回复信息和更新后的本地拓扑信息表发送至消息队列;所述当前软件定义网络控制器接收其他软件定义网络控制器的回复信息和拓扑信息表之后,更新本地拓扑信息表。进一步地,根据同步信息标准将更新后的本地拓扑信息表同步至其他软件定义网络控制器,包括:虚拟交换机接入或断开的计算节点中的软件定义网络控制器设置源主机名为本计算节点主机名,设置是否需要回复信息为不需要回复,设置目标主机名为广播,设置服务类型为拓扑同步,设置同步信息格式为本地虚拟交换机接入或断开的拓扑信息字符串,将更新后的本地拓扑信息表发送至消息队列;其他软件定义网络控制器接收到所述更新后的拓扑信息表,更新本地拓扑信息表。进一步地,根据同步信息标准将更新的config配置信息表同步至其他软件定义网络控制器,包括:接收到restapi配置信息的软件定义网络控制器设置源主机名为本计算节点主机名,设置是否需要回复信息为不需要回复,设置服务类型为配置同步,设置同步信息格式为restapi配置信息字符串,将所述config配置信息表发送至消息队列;其他软件定义网络控制器接收到所述config配置信息表,更新本地config配置信息表。本发明提供的分布式架构软件定义网络控制器的调度方法,软件定义网络控制器控制平面性能会随着计算机点规模的提升而提升,解决软件定义网络控制器单点瓶颈的问题。在超大规模的云网络中,分布式软件定义网络控制器处理性能高,在跨多数据中心云网络中,本发明的分布式软件定义网络控制器不受物理线路故障的影响,实现跨多数据中心高可用云网络。附图说明图1为现有技术中双机热备份调度一种实施例的结构示意图。图2为现有技术中sdn控制器集群模型一种实施例的结构示意图。图3为本发明提供的分布式架构软件定义网络控制器的调度方法一种实施例的流程图。图4为本发明提供的分布式架构软件定义网络控制器的调度方法中软件定义网络控制器的分布式架构一种实施例的结构示意图。具体实施方式为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。参考图3和图4,本实施例提供一种分布式架构软件定义网络控制器的调度方法,软件定义网络控制器的分布式架构包括n个计算节点,每个计算节点包括软件定义网络控制器101、虚拟机102以及虚拟交换机103,软件定义网络控制器101和虚拟机102均与虚拟交换机103连接,其中,n为大于或等于2的整数;所述调度方法包括:步骤s101,启动当前软件定义网络控制器获取本地虚拟交换机的端口信息,根据所述端口信息建立本地拓扑信息表,并根据同步信息标准将当前软件定义网络控制器的本地拓扑信息表同步至其他软件定义网络控制器;步骤s102,各计算节点中的软件定义网络控制器监听本地虚拟交换机是否接入或断开,如果本地虚拟交换机接入或断开,则该计算节点中的软件定义网络控制器根据接入或断开的虚拟交换机的端口信息更新本地拓扑信息表,并根据同步信息标准将更新后的拓扑信息表同步至其他软件定义网络控制器;步骤s103,各计算节点中的软件定义网络控制器检测是否接收到restapi配置信息,如果任一软件定义网络控制器接收到所述restapi配置信息,则对所述restapi配置信息进行验证,验证通过后更新本地config配置信息表,并根据同步信息标准将更新的config配置信息表同步至其他软件定义网络控制器。具体地,步骤s101为软件定义网络控制器启动时发起的同步步骤,各计算节点中的软件定义网络控制器逐一启动,每启动一个软件定义网络控制器,则该软件定义网络控制器获取与之连接的本地虚拟交换机的端口信息,作为一种优选的实施方式,所述端口信息包括虚拟机的mac地址、上行后端口号、虚拟网络内网口端口号、虚拟交换机的mac地址以及主机名,根据该端口信息生成本地拓扑信息表,该拓扑信息表如下所示:类型描述portnumberlong(primarykey)虚拟机的mac地址uplinkportnumberint上行后端口号internalportnumberint虚拟网络内网口端口号switchmaclong虚拟交换机的mac地址hostnamestring主机名表1作为一种优选的实施方式,所述同步信息标准包括源主机名、目标主机名、服务类型、同步信息格式以及是否需要回复信息,同步信息标准如表2所示:类型描述srchoststring源主机名dsthoststring目标主机名(值等于null表示广播)servernamestring服务类型(vpc配置同步、拓扑同步)messagestring同步信息json格式needreplyboolean是否需要回复信息表2进一步地,根据同步信息标准将当前启动的软件定义网络控制器的本地拓扑信息表同步至其他软件定义网络控制器,包括:当前软件定义网络控制器设置源主机名为本计算节点主机名,设置是否需要回复信息为需要回复,设置目标主机名为广播,设置服务类型为拓扑同步,设置同步信息格式为本地虚拟交换机拓扑信息字符串,将本地拓扑信息表发送至消息队列;其他软件定义网络控制器接收到当前软件定义网络控制器的拓扑信息表之后,创建回复信息并更新本地拓扑信息表;其他软件定义网络控制器设置源主机名为本计算节点主机名,设置是否需要回复信息为不需要回复,设置目标主机名为当前软件定义网络控制器的主机名,设置服务类型为拓扑同步,设置同步信息格式为本地虚拟交换机拓扑信息,将所述回复信息和更新后的本地拓扑信息表发送至消息队列;所述当前软件定义网络控制器接收其他软件定义网络控制器的回复信息和拓扑信息表之后,更新本地拓扑信息表,无需回复信息。进一步地,步骤s102为软件定义网络控制器更新拓扑的步骤,各计算节点中的软件定义网络控制器监听本地虚拟交换机是否接入或断开,具体地,各软件定义网络控制器监听本地虚拟交换机网卡是否接入或拔出。如果本地虚拟交换机接入或断开,则该计算节点中的软件定义网络控制器根据接入或断开的虚拟交换机的端口信息更新本地拓扑信息表。根据同步信息标准将更新后的本地拓扑信息表同步至其他软件定义网络控制器,包括:虚拟交换机接入或断开的计算节点中的软件定义网络控制器设置源主机名为本计算节点主机名,设置是否需要回复信息为不需要回复,设置目标主机名为广播,设置服务类型为拓扑同步,设置同步信息格式为本地虚拟交换机接入或断开的拓扑信息字符串,将更新后的本地拓扑信息表发送至消息队列;其他软件定义网络控制器接收到所述更新后的拓扑信息表,更新本地拓扑信息表,不需要回复。进一步地,步骤s103为软件定义网络控制器的restapi配置信息步骤,各计算节点中的软件定义网络控制器检测是否接收到restapi配置信息,该restapi配置信息由管理员发送,如果任一软件定义网络控制器接收到所述restapi配置信息,则对所述restapi配置信息进行验证,包括验证其安全性,如果验证通过,更新本地config配置信息表。根据同步信息标准将更新的config配置信息表同步至其他软件定义网络控制器,包括:接收到restapi配置信息的软件定义网络控制器设置源主机名为本计算节点主机名,设置是否需要回复信息为不需要回复,设置服务类型为配置同步,设置同步信息格式为restapi配置信息字符串,将所述config配置信息表发送至消息队列;其他软件定义网络控制器接收到config配置信息表,更新本地config配置信息表,无需回复。作为一种优选的实施方式,config配置信息表如表3所示:表3本发明提供的分布式架构软件定义网络控制器的调度方法,软件定义网络控制器控制平面性能会随着计算机点规模的提升而提升,解决软件定义网络控制器单点瓶颈的问题。在超大规模的云网络中,分布式软件定义网络控制器处理性能高,在跨多数据中心云网络中,本发明的分布式软件定义网络控制器不受物理线路故障的影响,实现跨多数据中心高可用云网络。应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1