用于在软件定义网络中使应用程序集群的方法和控制器的制造方法

文档序号:9583635阅读:337来源:国知局
用于在软件定义网络中使应用程序集群的方法和控制器的制造方法
【技术领域】
[0001]本发明涉及用于在软件定义网络(software-defined network,SDN)中使应用程序集群的一种方法和一种控制器。所述控制器具体来说是SDN控制器。本发明进一步涉及一种用于集群的SDN应用程序。具体来说,本发明提供一种用于连接和协调SDN控制器和至少一个应用程序的集群机制的方法。
【背景技术】
[0002]在现有技术水平中,SDN是新兴的网络技术,所述技术能够通过将数据面从控制面解耦来简化通信网络。由此,通常通过SDN控制器提供控制面功能。SDN应用程序可以用SDN控制器进行注册,并且可以在SDN控制器上运行。SDN控制器可以进一步提供多个SDN应用程序的服务链,所述服务链接着依次在网络流量上,即,在至少一个数据流上运作。在基本SDN实施方案中,存在仅单个SDN控制器,所述SDN控制器具有注册到其上并且在其上运行的一个或多个SDN应用程序。SDN控制器使用北向接口(north bound interface,NBI)连接到一个或多个SDN应用程序。
[0003]然而,基本SDN实施方案在其需要扩展时造成问题。举例来说,SDN控制器可能需要被分布为多个控制器实例的集群。或者,计算上密集的SDN应用程序需要被分布为多个应用程序实例的集群。当前,现有技术水平提供SDN控制器和SDN应用程序的分布机制,所述机制从彼此断开连接,并且不以任何方式进行协调。
[0004]图la示出在现有技术水平中使用的第一典型方案,其中SDN控制器集群成多个控制器实例。然而,SDN应用程序不与所述SDN控制器集群。因此,多个SDN应用程序中的每一个最多可以在不同控制器实例上运行。此方案尤其使多个应用程序的服务链接极其复杂ο
[0005]图lb示出在现有技术水平中使用的第二典型方案,其中SDN应用程序集群成多个应用程序实例。然而,SDN应用程序必须仍使用专用的方法,并且必须仍连接到SDN控制器的单个控制器实例。
[0006]在现有技术水平中使用的上述方案的问题是控制器不针对应用程序高可用性提供基础设施。高可用性是系统设计方法和相关联的服务实施方案,所述高可用性意图确保特定水平的操作性能。具体来说,术语“可用性”是指用户通过通过网络获得服务或者接入网络的能力。如果网络是不可接入的或者不可获得服务,那么应用程序对于用户是不可用的。对于高可用性,网络,并且具体地说网络的应用程序,需要始终可用。

【发明内容】

[0007]鉴于以上缺点和问题,本发明旨在改进现有技术水平。具体来说,本发明的目的是为在SDN中的SDN控制器上运行的应用程序提供分布和高可用性基础设施。具体来说,本发明旨在提高SDN中的应用程序的可用性以及这些应用程序的操作性能。本发明还具有提高SDN控制器的性能的目标。同时,本发明意图将SDN的复杂度保持在最小。
[0008]本发明的上述目的通过所附独立权利要求中提供的方案得以实现。本发明的核心理念是提供一种方案以连接SDN控制器和至少一个SDN应用程序的分布(集群)机制并且将SDN控制器的分布(集群)机制协调成不同控制器实例且将至少一个SDN应用程序的的分布(集群)机制协调成不同应用程序实例。在相应从属权利要求中进一步定义本发明的有利的实施方案。根据所要求的方法、所要求的SDN控制器以及所要求的SDN应用程序,可以大幅度改进SDN的作为整体的性能和可用性以及在SDN上提供的服务。
[0009]本发明的第一方面提供一种用于在软件定义网络SDN中使应用程序集群的方法,所述方法包括在SDN控制器中创建集群基础设施,其中所述集群基础设施是用于在SDN控制器的不同控制器实例之间共享和同步信息的模块;在至少一个应用程序与SDN控制器之间创建至少一个集群应用编程接口,即集群API ;使用至少一个应用程序API用不同控制器实例来注册至少一个应用程序的不同应用程序实例;使用集群基础设施来同步所有应用程序实例。
[0010]通过本发明的方法,SDN控制器的和至少一个应用程序的分布机制得以连接并协调。具体来说使用SDN控制器的集群基础设施使得所述至少一个应用程序能够集群和分布。换句话说,应用程序和SDN控制器两者可以同时集群,并且集群后的应用程序实例不得全部连接到同一控制器实例,但是可以分布在不同控制器实例上以用于其到SDN控制器的注册。因此,明显降低服务链接的复杂度。
[0011]SDN控制器和至少一个应用程序两者可以举例来说用任何界定的M:N的比率彼此独立地向内扩展和/或向外扩展,其中Μ和N是1或更大的自然数。向内扩展或向外扩展对应地可以包括在不同控制器实例上运行的不同应用程序实例的自动负载均衡。借助于本发明的方法,提供用于应用程序高可用性的基础设施。
[0012]用本发明的方法进一步可能的是多个应用程序各自用不同控制器实例来注册其不同应用程序实例。在此情况下,每个应用程序可以用不同的方式跨不同控制器实例分布。SDN控制器可以自动地均衡在其不同控制器实例上的每个应用程序的负载和/或可以自动地均衡跨其不同控制器实例的多个应用程序的整体负载。
[0013]在根据第一方面的方法的第一实施形式中,所述方法进一步包括在SDN控制器中创建状态表,其中使用集群基础设施跨所有控制器实例共享所述状态表;通过至少一个应用程序将其应用程序状态存储于状态表中;使用存储于状态表中的应用程序状态来同步所有应用程序实例。
[0014]应用程序状态可以具有不同结构和型式,并且可以包含但不限于例如以下信息:状态机信息、流程表信息、缓冲区内容等。应用程序实例可以共享在共享状态表中的所有应用程序状态并且因此其自身是完全无状态的,或可以通过共享状态表共享状态的仅一部分并且因此是部分无状态的。
[0015]在本发明中,至少一个应用程序的状态因此从至少一个应用程序移动到SDN控制器,由此使得SDN控制器能够以简单且高效的方式在其控制器实例上分布多个应用程序实例,并且能够优化多个应用程序实例在其控制器实例上的分布,例如,关于负载均衡。状态表还使得SDN控制器能够执行个别应用程序实例的高效同步,因此保证相应的应用程序的最优性能。状态表还可以允许不同应用程序彼此共享举例来说关于它们的状态的信息,以便避免在不同应用程序之间的干扰和/或支持使用协同作用。当多个应用程序由SDN控制器以服务链形式链接在一起时,在不同应用程序之间的信息共享是特别有利的。在服务链中,应用程序可以在数据流上依次或并行运作。
[0016]在根据第一方面的第一实施形式的方法的第二实施形式中,状态表是高速数据存储区和/或非结构化数据存储区。
[0017]具体来说,数据存储区优选地是不仅是结构化查询语言(Not only StructuredQuery Language, NoSQL)数据存储区,例如,键值存储区。
[0018]在根据第一方面的第一实施形式的方法的第三实施形式中,状态表是通过至少一个应用程序构造的数据存储区。
[0019]在根据由此第一方面或根据第一方面的前述实施形式中的任一个的方法的第四实施形式中,状态表通过至少一个集群API显露给至少一个应用程序。
[0020]至少一个集群API为各种应用程序提供标准化接口。因此大幅度简化应用程序开发。至少一个集群API进一步使得至少一个应用程序和SDN控制器能够对应地发现彼此的分布的实例
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1