用于分布式计算部署的网络控制器子集群的制作方法

文档序号:32481713发布日期:2022-12-09 23:05阅读:65来源:国知局
用于分布式计算部署的网络控制器子集群的制作方法
用于分布式计算部署的网络控制器子集群
1.相关申请的交叉引用
2.本技术是申请号为201910561565.x、申请日为2019年06月26日、发明名称为“用于分布式计算部署的网络控制器子集群”的发明专利申请的分案申请。
技术领域
3.本公开涉及计算机联网。


背景技术:

4.在典型的云数据中心环境(dc)中,存在大量互连的服务器,这些互联的服务器提供计算和/或存储容量以运行各种应用。例如,数据中心可以包括为订户(即,数据中心的客户)托管应用和服务的设施。例如,数据中心可以托管所有基础设施设备,诸如联网和存储系统、冗余的供电,和环境的控制。在典型的数据中心中,存储系统和应用服务器的集群经由通过一层或多层物理网络交换机和路由器提供的高速交换结构实现互连。更复杂的数据中心提供遍布全球的基础设施,其中订户支持设备位于各种物理托管设施中。
5.多云环境是指将多个云被用于计算和存储服务。企业可以利用内部部署计算和/或存储服务(例如,内部部署云)以及一个或多个外部部署云(诸如那些由第三方提供商托管的云)。云的示例包括允许易于扩展的同时允许不同级别的控制和安全性私有云、公共云或混合公共/私有云。企业可以基于所执行的应用的类型和企业的其他需求来利用私有云、公共云或混合公共/私有云中的一个或多个。


技术实现要素:

6.通常,本公开描述了用于将位于远程位置的计算节点的集合的网络控制分发到作为软件定义网络(sdn)控制器节点集群的子集群的节点子集群的技术。网络控制器集群和子集群可以位于主数据中心,而由子集群控制的该计算节点集合可以位于远程数据中心。在某些情况下,子集群可能位于远程数据中心。可能是有利的是,使用无缝方法管理软件定义的网络控制器(诸如juniper的contrail控制器、tungsten fabric、sdn、的sdn控制器和开放sdn控制器)以有效且经济地促进跨越很多地理上分布的数据中心的计算节点(例如,计算设备)之间的网络通信,尤其是在分布式数据中心的每个站点处不需要这样的控制器的情况下。
7.在一些示例中,整个sdn控制器集群(例如,功能完备的的控制器)在主数据中心内的计算设备上执行。sdn控制器集群可以促进主数据中心内的一个或多个虚拟网络的操作,并且还可以提供共享的资源以促进其他数据中心内的一个或多个虚拟网络的操作(例如,小型分布式数据中心,也称为远程数据中心)。在主数据中心处,计算设备的集合执行一个或多个控制节点的第一集合,一个或多个控制节点的第一集合提供远程数据中心处的虚拟网络的路由信息。
8.以这种方式,远程数据中心不需要将会使用有限计算资源的共存sdn控制器,因为远程数据中心中可能没有很多计算设备。路由信息处理可以通过子集群的专用控制节点在主数据中心处执行。此外,主数据中心执行sdn控制器集群,sdn控制器集群为其他数据中心提供共享的资源以用于诸如分析和数据库管理等操作(例如,全局集群配置、轨迹分析服务、轨迹分析数据库服务等),以便远程数据中心不需要在有限的计算资源上执行分析和数据库管理操作。如本文中使用的,轨迹分析服务可以是指例如负责收集、整理和呈现用于故障排除问题和理解网络使用的分析信息的分析服务。如本文中使用的,轨迹分析数据库服务可以是指例如数据库服务(例如,cassandra),数据库服务是容错的并且水平可扩展以用于分析数据的持久存储。
9.一个或多个控制节点的第一集合可以形成sdn控制器集群的子集群,并且可以专用于远程数据中心之一。主数据中心可以执行控制节点的多个集合,其中控制节点每个集合专用于远程数据中心中的相应远程数据中心。在这样的配置中,控制节点的每个集合可以合并路由分发,并且单独且独立地促进与各组控制节点相关联的虚拟网络的操作。这些技术可以提供实际应用,即,通过对操作进行子聚类来提供对虚拟网络管理的技术改进以促进管理简易性并且减轻具有有限计算资源的远程数据中心的计算设备的负担。
10.在一个示例中,本公开描述了一种包括第一数据中心的系统。第一数据中心包括:第一网关路由器;被配置为执行sdn控制器集群以促进第一数据中心内的一个或多个虚拟网络的操作的计算设备的第一集合;以及计算设备的第二集合,计算设备的第二集合被配置为执行一个或多个控制节点以在第一网关路由器与不同于第一数据中心的第二数据中心的第二网关路由器之间交换用于第二数据中心内的计算设备之间的虚拟网络的路由信息,并且将用于第二数据中心的控制信息传送到计算设备的第二集合,其中一个或多个控制节点形成sdn控制器集群的子集群。
11.在另一示例中,本公开描述了一种方法,该方法包括:由计算设备的第一集合执行sdn控制器集群以促进第一数据中心内的一个或多个虚拟网络的操作;以及由计算设备的第二集合执行一个或多个控制节点以在第一数据中心的第一网关路由器与不同于第一数据中心的第二数据中心的第二网关路由器之间交换用于第二数据中心内的计算设备之间的虚拟网络路由信息,并且将用于第二数据中心的控制信息传送到计算设备的第二集合,其中一个或多个控制节点形成sdn控制器集群的子集群。
12.在一个示例中,本公开描述了一种计算机可读存储介质,其上存储有指令,这些指令在被执行时使得一个或多个处理器:执行sdn控制器集群以促进第一数据中心内的一个或多个虚拟网络的操作;以及执行一个或多个控制节点以在第一数据中心的第一网关路由器与不同于第一数据中心的第二数据中心的第二网关路由器之间交换用于第二数据中心内的计算设备之间的虚拟网络的路由信息,并且将用于第二数据中心的控制信息传送给计算设备的第二集合,其中一个或多个控制节点形成sdn控制器集群的子集群。
13.在附图和以下描述中阐述了一个或多个示例的细节。根据说明书和附图以及权利要求,其他特征、目的和优点将很清楚。
附图说明
14.图1是示出具有可以在其中实现本文中描述的技术的示例的数据中心的示例多数
据中心系统的框图;
15.图2是示出具有可以在其中实现本文中描述的技术的示例的数据中心的另一示例多数据中心系统的框图;
16.图3是示出用于控制子集群的示例过程的流程图;
17.图4是示出操作子集群以执行分布式sdn控制器的控制功能的示例过程的流程图。
具体实施方式
18.图1是示出具有可以在其中实现本文中描述的技术的示例的数据中心的示例多数据中心系统的框图。图1示出了数据中心32a-32x(统称为“数据中心32”),数据中心32a-32x容纳服务器(也称为计算设备、计算机或计算节点)。作为一个示例,数据中心32a容纳服务器34a-34n(统称为“服务器34”,也称为“计算设备34a-34n”),服务器34a-34n可以被配置为提供用于通信的虚拟网络的基础设施。如图所示,服务器34中的每个服务器可以包括虚拟路由器48a-48c(统称为“虚拟路由器48”或简称为“虚拟路由器48”)中的相应的虚拟路由器。虚拟路由器48可以表示耦合到交换结构以扩展交换结构的物理服务器的软件路由器。
19.其他数据中心32b-32x可以类似于数据中心32a,但是可能存在某些差异。例如,在其他数据中心32中的一个或多个具有有限的计算资源的意义上,其他数据中心32b-32x可以是较小尺寸的数据中心。
20.如图所示,数据中心32a-32x通过服务提供商网络33彼此互连并且与客户46相关联的客户网络互连。通常,每个数据中心32a为通过服务提供商网络33耦合到数据中心的客户46的应用和服务提供操作环境。操作数据中心32可以是例如主机基础设施设备(诸如,网络和存储系统、冗余的供电和环境控件)。服务提供商网络33可以耦合到由其他提供商管理的一个或多个网络,并且因此可以形成大规模公共网络基础设施(例如,因特网)的一部分。在其他示例中,服务提供商网络33可以仅耦合到由单个提供商管理的一个或多个网络,并且因此可以形成骨干网络基础设施的一部分。
21.在一些示例中,每个数据中心32可以表示很多地理上分布的网络数据中心之一。如图1的示例中所示,每个数据中心32可以表示为客户46提供网络服务的设施。客户46可以是集体类别,诸如企业和政府或个人。例如,网络数据中心可以托管为若干企业和最终用户提供web服务的虚拟计算环境(例如,云)。其他示例性服务可以包括数据存储、虚拟专用网络、流量工程、文件服务、数据挖掘、科学或超级计算等。在一些示例中,每个数据中心32可以是单独的网络服务器、网络配对体,或其他。
22.在所示示例中,每个数据中心32包括通过由一层或多层物理网络交换机和路由器提供的高速交换结构35互连的服务器的集合34a-34n(本文是“服务器34”)。交换结构35由耦合到机架交换机42a-42y(统称为“机架交换机42”)的分配层的互连的架顶式(tor)交换机的集合40a-40n(统称为“tor交换机40”)提供。尽管未示出,但是每个数据中心32还可以包括例如一个或多个非边缘交换机、路由器、集线器、网关、安全设备(诸如,防火墙、入侵检测和/或入侵防御设备)、服务器、计算机终端、笔记本电脑、打印机、数据库、无线移动设备(诸如,手机或个人数字助理)、无线接入点、网桥、电缆调制解调器、应用加速器或其他网络设备。
23.在该示例中,tor交换机40和机架交换机42向服务器34提供到ip结构44和服务提
供商网络33的冗余的(多宿主的)连接。机架交换机42聚合业务流并且提供tor交换机40之间的高速连接。dor交换机40可以是提供第二层(例如,mac)和/或第3层(例如,ip)路由和/或交换功能的网络设备。每个tor交换机40和机架交换机42可以包括一个或多个处理器和存储器,并且一个或多个处理器和存储器能够执行一个或多个软件过程。机架交换机42耦合到ip结构44,ip结构44执行第3层路由以通过服务提供商网络33在数据中心32与客户46之间路由网络业务。
24.虚拟网络控制器36(“vnc”)是在集群上实现的sdn控制器的示例。vnc 36(也称为sdn控制器集群36)提供在逻辑上并且在某些情况下在物理上集中的控制器以用于促进数据中心32a内的一个或多个虚拟网络的操作。在一些示例中,虚拟网络控制器36可以响应于从网络管理员38接收的配置输入而操作。管理员38可以表示使用公共接口来创建虚拟计算环境拓扑并且将其部署到虚拟网络控制器36以便在计算基础设施内进行供应的运营商、开发者或应用部署专家。关于与数据中心32a或其他软件定义网络的其他设备一起操作的虚拟网络控制器36的附加信息可以在于2013年6月5日提交的名称为“physical path determination for virtual network packet flows”的国际申请号为pct/us2013/044378的申请中找到;以及于2014年3月26日提交的名称为“tunneled packet aggregation for virtual networks”的美国专利申请no.14/226,509中找到,每个申请通过引用并入本文,如同本文中完全阐述的。
25.在一些示例中,任何两个网络设备之间(诸如ip结构44(未示出)内的网络设备之间、服务器34与客户46之间、或者服务器34之间)的业务可以使用很多不同的路径遍历物理网络。分组流(或“流”)可以由分组的报头中使用的用于路由分组通过物理网络的五个值或“五元组”定义,即协议、源ip地址、目的地ip地址、源端口和目的地端口。例如,协议指定通信协议,诸如tcp或udp,并且源端口和目的地端口指的是连接的源和目的地端口。
26.包括指定特定五元组的分组报头的一个或多个分组数据单元(pdu)或分组的集合表示流。流可以使用pdu的任何参数来广泛地分类,诸如源和目的地数据链路(例如,mac)和网络(例如,ip)地址、虚拟局域网(vlan)标签、传输层信息、多协议标签交换(mpls)或通用mpls(gmpls)标签、以及接收流的网络设备的入口端口。例如,流可以是在传输控制协议(tcp)连接中传输的所有pdu、由特定的mac地址或ip地址发出的所有pdu、具有相同vlan标记的所有pdu、或在同一交换机端口处接收的所有pdu。流可以由应用标识符(appid)附加地或备选地定义,该应用标识符由虚拟路由器代理或其他实体确定,例如使用端口和协议列表或深度分组检查(dpi)、与流相关联的一种类型的服务或应用,因为流转移用于该类型的服务或应用的应用数据。
27.数据中心32a与其他数据中心32之间的差异可以在于,数据中心32a提供比其他数据中心34更高级别的计算资源。由于计算资源的限制,通过使每个数据中心34执行其自身的相应的虚拟网络控制器(例如,功能完备的的sdn控制器集群)可能存在技术问题。然而,仍然需要在其他数据中心34内形成本地化的独立地控制的虚拟网络。本公开描述了在具有高级计算资源的数据中心(例如,数据中心32a)内形成控制节点的子集的示例技术,该数据中心可以单独且独立地管理其他数据中心32上的虚拟网络。对于管理虚拟网络所需要的其他操作(诸如收集分析数据和数据库管理),计算设备(例如,服务器34)可以提供可以共享的资源,这些共享的资源可以用于其他数据中心34的虚拟网络的分析和数据库管理以及其
他任务。
28.例如,一个或多个数据中心32b-32x可能无法执行功能完备的sdn控制器。然而,可能仍然需要在一个或多个数据中心32b-32x的计算设备之间建立通信隧道。建立这样的隧道的一种方式是使用数据中心32a上的单个虚拟网络控制器,该虚拟网络控制器为数据中心32a内的计算设备建立通信隧道并且为一个或多个远程数据中心(例如,数据中心32b-32x中的一个或多个)中的计算设备建立通信隧道。然而,在这种配置中可能存在技术问题。
29.配置具有单个控制节点的系统以控制本地集群(例如,数据中心32a的计算设备)和多个远程集群(例如,一个或多个数据中心32b-32x的计算设备)可能导致在远程集群之间形成不期望的路由。例如,高性能骨干网(例如,1000mb/s)可以将本地集群连接到每个远程集群。然而,另一网络(例如,互联网)可以将远程集群彼此连接,这比高性能骨干网慢(例如,10mb/s)。在该示例中,当单个控制节点从每个远程集群接收路由时,单个控制节点将所有路由传输到所有客户端,包括其他远程集群的虚拟路由器。这样,每个远程集群的虚拟路由器可能配置有不期望的理由,该路由将数据传输到其他远程集群,该数据然后在被传输到高性能骨干网。这些不期望的路由降低了网络的性能(例如,吞吐量、时延等),并且可能影响可靠性。此外,随着虚拟路由器和/或远程集群的数目的增加,不期望的路由的数目也可能增加,这可能导致太多的通信链路。因此,不期望的路由可能增加远程集群的路由系统的复杂性。
30.本公开描述了示例技术,配置将虚拟网络控制器36以包括多个控制节点的。控制节点的第一子集群可以与第一远程数据中心相关联,控制节点的第二子集群可以与第二移除数据中心相关联,等等。如更详细描述的,每个控制节点可以在与相应的控制节点相关联的远程数据中心的计算设备之间建立通信隧道。以这种方式,该技术防止子集群直接与其他子集群配对以限制远程中心可用的通信链路。例如,数据中心处的虚拟路由器之间的链路可以被限制为在数据中心内可用的路由,以及导致被传输到与另一控制节点子集群相关联的另一数据中心的数据路由被移除的路由作为可能的路由。在使用单个控制节点时,可能无法使用这样的隔离,从而对延迟、吞吐量和可靠性产生负面影响。
31.下面描述允许对虚拟网络的远程控制的这种子聚类的一些示例。本公开描述了具有子聚类的示例技术,其表示如下的各个远程站点:其中仅产生计算节点服务和控制节点,并且内部边界网关协议(ibgp)在它们之间进行网格化。这些控制节点被配置为与sdn网关进行bgp配对,与主控制节点的路由交换可以通过该sdn网关来进行。
32.当应用ibgp转发规则时,可以是路由反射器(rr)客户端的所有虚拟路由器可以仅向rr传输路由。在该示例中,rr可以从任何客户端接收路由,并且可以将所接收的路由传输到所有客户端(路由所在的虚拟路由器除外)以及所有非客户端ibgp邻居。在该示例中,sdn网关可以将路由传输到控制节点(例如,rr),并且这些路由随后将由rr传输到所有客户端。然而,用于多个远程数据中心的单个控制节点可以使得控制节点(例如,rr)从sdn网关创建路由,并且然后将路由向下传输到所有客户端(例如,远程数据中心中的所有虚拟路由器)。这样,数据中心32a可以被配置为使用子集群来分离每个远程数据中心的控制节点,以防止在数据中心32b-32x之间生成路由。
33.远程站点中的计算节点可以被配置为连接到这些控制节点以接收配置和交换路由(例如,附接到该虚拟网络的虚拟网络配置和虚拟机接口路由、路由实例、转发策略等)。
这些集群之间的工作负载之间的数据通信通过提供商骨干网通过其各自的sdn网关来进行。两个计算节点被配置为将分析数据推送到被托管在主集群上的分析节点,并且控制节点可以被配置为将分析数据推送到被托管在主集群上的分析节点。可以分离出控制节点以处理每个远程子集群,但是可以针对所有子集群来控制分析和数据库管理,其中分析和数据库管理节点在主中心中执行。因此,路由建立和通信隧道可以由不同的控制节点单独地处理,但是制定适当的操作虚拟网络所需要的其他操作(诸如分析和数据库管理)可以是共享的资源。
34.如上所述,分布式计算可以将sdn管理和控制(例如,创建和管理虚拟网络的机制)扩展到用于电信存在点(pop)或中央办公室(co)的高达数百甚至数千个的很多小型分布式数据中心。每个小型数据中心(例如,除了数据中心32a之外的数据中心32)可以仅具有少量计算机(例如,服务器或计算设备),通常在机架中为5-20个,这些计算机运行少数应用,诸如视频高速缓存、业务优化和虚拟宽带网络网关(vbng)。在专用服务器上的每个分布式pop中部署具有控制、配置、分析、数据库等的完整sdn控制器的节点集群(例如,具有控制、配置、分析、数据库功能的完全虚拟网络控制器36)可能不具有成本效益。附加的,手动管理数百或数千个集群在操作上可能是不可行的。
35.可以通过使用管理远程站点处的计算节点以接收配置和交换路由的子集群来实现分布式/远程计算。例如,远程计算(例如,在数据中心32a处执行)采用子集群来来管理远离主数据中心(例如,数据中心32a是主数据中心的示例)远程计算节点(例如,在除了数据中心32a之外的数据中心中)。
36.在一些示例中,sdn控制器控制集群(例如,虚拟网络控制器36)部署在大型集中式数据中心(例如,数据中心32a)中,其中sdn控制器集群可以远程管理小型分布式小型数据中心中的计算节点。在一些示例中,没有控制节点在远程数据中心上执行,但是在其他示例中,一个或多个控制节点可以在一个或多个远程数据中心上执行。在一些示例中,可以创建轻量版本的虚拟网络控制器36,被限制为控制节点、(在一个或多个数据中心32b-32x处)和配置节点、分析和分析数据库(由虚拟网络控制器36执行)可以跨多个控制节点共享。在少数服务器上可能存在很多轻量级控制器的共存,以优化效率和成本。很多轻量级控制器可以共存于少量服务器上,以优化效率和成本。控制节点(由虚拟网络控制器36执行)可以使用可扩展消息传递和存在协议(xmpp)与远程计算节点(由一个或多个数据中心32b-32x执行)配对,并且可以使用多协议扩展边界网关协议(mp-ebgp)与本地网关配对。
37.虚拟网络控制器36可以被配置为创建子集群对象。如本文中使用的,子集群可以是指为每个远程站点(数据中心32b-32x)创建的对象,其具有到被表示为虚拟路由器(虚拟路由器)对象的本地计算节点的链路列表以及到被表示为bgp路由器对象的本地控制节点的链路列表,其中以自治系统号码(asn)作为属性。
38.在一些示例中,子集群在配置脚本中被标识。虚拟路由器和bgp路由器配置脚本可以将每个子集群作为可选参数来与子集群对象链接或解除链接。远程集群的控制节点可以在主集群中产生,并且它们在该集群内彼此进行ibgp网格化。控制节点与它们各自的网关(例如,sdn网关)进行bgp配对,与主控制节点的路由交换通过该网关来进行。
39.远程站点中的计算节点可以被配置为连接到它们相应的控制节点以接收配置和交换路由。这些集群之间的工作负载之间的数据通信通过提供商骨干网(例如,ip结构44)
和它们相应的sdn网关来进行。计算节点和控制节点可以将分析数据推送到被托管在主集群上的分析节点。例如,虚拟网络控制器36可以处理由一个或多个数据中心32b-32x执行的控制节点的分析数据。
40.下面描述子集群属性。sdn控制器ui(例如,虚拟网络控制器36)示出了子集群对象的列表,每个子集群对象具有在该远程站点中本地的相关联的虚拟路由器和bgp路由器的列表以及asn属性。子集群的一般属性可以包括但不限于以下中的一个或多个:(1)子集群控制节点从不直接与另一子集群控制节点或主控制节点配对;(2)必须在虚拟路由器和bgp路由器对象中创建并且引用子集群控制节点;(3)子集群对象及其下的控制节点应当具有相同的asn;和/或(4)不能在子集群对象中修改asn。
41.图2是示出具有可以在其中实现本文中描述的技术的示例的数据中心132a的另一示例多数据中心系统的框图。在该示例中,有一个主数据中心132a(本文中也称为“pop0 132a”)以及两个远程数据中心——数据中心132b(本文中也称为“pop1 132b”)和数据中心132c(本文中也称为“pop2 132c”)。pop0 132a包括子集群默认133a和两个远程子集群,用于pop1 132b的子集群133b和用于pop2 132c的子集群133c(统称为“子集群133”)。如本文中使用的,子集群可以是指为每个远程站点(例如,数据中心132b、132c)创建的对象,其具有到被表示为虚拟路由器(虚拟路由器)对象的本地计算节点的链路列表和到被表示为bgp路由器对象的本地控制节点的链路列表,其以asn作为属性。
42.数据中心132a是图1的数据中心32a的示例。数据中心132b和数据中心132c是图1的数据中心32b-32x的示例。骨干网160是图1的服务提供商网络33的示例。如图所示,骨干网160包括网关162a、162b、162c(统称为“网关162”)。在一些示例中,网关162中的一个或多个可以是sdn网关。例如,网关162a可以包括通信地耦合到数据中心132a的计算设备的sdn网关路由器。
43.在图2的示例中,子集群133a包括控制节点150a,子集群133b包括控制节点150b,并且子集群133c包括控制节点150c(统称为“控制节点150”)。在该示例中,子集群133a包括控制节点152a,子集群133b包括控制节点152b,并且子集群133c包括控制节点152c(统称为“控制节点152”)。控制节点150、152可以使用ibgp(例如,mp-bgp)进行通信。例如,控制节点150b、152b可以通过ibgp彼此通信。在一些示例中,形成子集群pop1 133b的控制节点150b、152b被配置为与网关162b(例如,sdn网关路由器)进行边界网关协议(bgp)配对,与控制节点150b、152b的路由交换通过该网关162b来进行。
44.如图所示,控制节点150a、152a可以控制虚拟路由器170a(本文中也简称为“虚拟路由器170a”),虚拟路由器170a由计算机或计算设备(例如,图1的服务器34中的一个或多个)实现。如图所示,控制节点150b、152b可以控制虚拟路由器170b、172b。在该示例中,控制节点150b、152b可以控制虚拟路由器170c。控制节点150、152可以被配置为利用xmpp与计算设备的第二集合传送路由信息。
45.子集群内的控制节点与远程数据中心之间的通信可以通过sdn网关来进行;在控制节点150、152中的每个之间可能没有直接连接(例如,用于合并路由)。例如,控制节点150b、152b之间的通信通过网关162b与虚拟路由器170b、172b通信。类似地,控制节点150c、152c之间的通信通过网关162c与虚拟路由器170c通信。如图所示,控制节点150、152可以使用xmpp(可扩展消息传递和存在协议)与虚拟路由器170b、172b、170c配对,并且可以使用
mp-ebgp(多协议扩展边界网关协议)与网关162配对。mp-ebgp可以在ietf rfc 4760中定义。
46.根据本文中描述的技术,数据中心132a包括被配置为执行sdn控制器集群以促进数据中心132内的一个或多个虚拟网络的操作的计算设备的第一集合。例如,数据中心132a包括被配置为执行子集群默认133a以促进在被表示为虚拟路由器170a的数据中心132a内的一个或多个计算设备之间的虚拟网络的操作的一个或多个服务器。
47.在该示例中,数据中心132a包括计算设备的第二集合,计算设备的第二集合被配置为执行一个或多个控制节点以在第一网关路由器与不同于第一数据中心的第二数据中心的第二网关路由器之间交换用于第二数据中心内的计算设备之间的虚拟网络的路由信息,并且将用于第二数据中心的控制信息传送到计算设备的第二集合,其中一个或多个控制节点形成sdn控制器集群的子集群。如本文中使用的,路由信息可以包括ip地址和指示数据中心处的不同计算设备之间的通信隧道的信息。控制信息可以指示虚拟路由器如何与虚拟机通信以及如何使用xmpp将路由信息发送到虚拟路由器。控制信息还可以包括关于如何在数据中心处的计算设备之间形成通信隧道的信息,并且该信息使用bgp来传送。
48.例如,数据中心132a包括被配置为执行控制节点150b、152b以在网关路由器162a与网关路由器162b之间交换被表示为虚拟路由器170b、172b的虚拟网络的路由信息(例如,ip地址、通信隧道等)并且将数据中心132b的控制信息(使用路由信息的一个或多个(最佳的)特定路径的指令)传送到计算设备的第二集合的一个或多个服务器,其中控制节点150b、152b形成数据中心132a的sdn控制器集群的子集群。在一些示例中,计算设备的第一集合中的一个或多个是计算设备的第一集合的一部分。例如,计算设备(例如,服务器)可以执行控制节点150a、152a并且可以执行控制节点150b、152b。
49.在图2的示例中,计算设备的第三集合被配置为执行一个或多个控制节点的第二集合以在第一网关路由器与不同于第一数据中心和第二数据中心的第三数据中心的第三网关路由器之间交换用于第三数据中心内的计算设备之间的虚拟网络的路由信息,并且将第三数据中心的控制信息传送到计算设备的第三集合,其中一个或多个控制节点的第二集合形成sdn控制器集群的第二子集群。例如,计算设备的第三集合被配置为执行控制节点150c、152c以在网关路由器162a与网关路由器162c之间交换被表示为虚拟路由器170c的虚拟网络的路由信息(例如,ip地址、通信隧道等),并且将数据中心132c的控制信息(使用路由信息的一个或多个特定路径的指令)传送到计算设备的第二集合,其中控制节点150c、152c形成数据中心132a的sdn控制器集群的子集群。
50.数据中心132a可以包括多个计算设备(例如,服务器)。例如,数据中心132a可以包括计算设备的多个集合,计算设备的每个集合被配置为执行相应的一个或多个控制节点以在不同于第一数据中心的相应的数据中心内的计算设备之间交换相应的虚拟网络的路由信息。例如,数据中心132a可以包括被配置为执行控制节点150a、152a的计算设备的第一集合、被配置为执行控制节点150b、152b的计算设备的第二集合、以及被配置为执行控制节点150c、152c的计算设备的第三集合。
51.在一些示例中,数据中心132a的计算设备的第一集合被配置为执行sdn控制器集群以提供共享的资源以促进数据中心132b和/或数据中心132c内的一个或多个虚拟网络的操作。例如,为了提供共享的资源以促进多个其他数据中心内的一个或多个虚拟网络的操
作,计算设备的第一集合中的一个或多个可以被配置为对数据中心132b和/或数据中心132c内的一个或多个虚拟网络执行分析操作。
52.图3是示出用于控制子集群的示例过程的流程图。在图3的示例中,数据中心132a的计算设备的第一集合被配置为执行sdn控制器集群以促进第一数据中心内的一个或多个虚拟网络的操作(202)。例如,数据中心132a的服务器34被配置为执行控制节点150a、152a以促进虚拟路由器170a的操作。
53.计算设备的第二集合被配置为执行控制节点的第一集合以在第一网关路由器与不同于第一数据中心的第二数据中心的第二网关路由器之间交换用于第二数据中心内的计算设备之间的虚拟网络的路由信息,并且将用于第二数据中心的控制信息传送到计算设备的第二集合,其中控制节点的第一集合形成sdn控制器集群的子集群(204)。例如,数据中心132a的服务器34被配置为执行控制节点150b、152b以在网关路由器162a与网关路由器162b之间交换虚拟路由器170b、172b的路由信息,并且将数据中心132b的控制信息传送到虚拟路由器170b、172b。
54.计算设备的第三集合被配置为执行控制节点的第二集合以在第一网关路由器与不同于第一数据中心的第三数据中心的第三网关路由器之间交换第三数据中心内的计算设备之间的虚拟网络的路由信息,并且将第三数据中心的控制信息传送到计算设备的第三集合,其中控制节点的第二集合形成sdn控制器集群的子集群(206)。例如,数据中心132a的服务器34被配置为执行控制节点150c、152c以在网关路由器162a与网关路由器162c之间交换虚拟路由器170c的路由信息,并且将数据中心132c的控制信息传送到虚拟路由器170c。
55.计算设备的第二集合执行控制节点的第一集合以与集群外部的控制节点配对(208)。例如,当应用ibgp转发规则时,控制节点150b、152b可以仅将来自虚拟路由器170b、172b的路由传输到控制节点150、152之外(例如,在sdn控制器集群外部)的控制节点。计算设备的第三集合执行控制节点的第三集合以与集群外部的控制节点配对(210)。例如,当应用ibgp转发规则时,控制节点150c、152c可以仅将来自虚拟路由器170c的路由传输到控制节点150、152之外(例如,在sdn控制器集群外部)的控制节点。以这种方式,控制节点150b、152b和/或控制节点150c、152c从不直接与另一子集群控制节点或主控制节点配对。
56.图4是示出操作子集群以执行分布式sdn控制器的控制功能的示例过程的流程图。数据中心132a的计算设备的第一集合被配置为作为集群操作以执行分布式sdn控制器的非控制功能(302)。例如,如图2所示,数据中心132a的服务器34可以被配置为作为分布式sdn控制器操作。
57.数据中心132a的计算设备的第二集合被配置为作为集群的第一子集群操作并且执行分布式sdn控制器的控制功能以促进包括一个或多个服务器的第一虚拟网络的操作(304)。例如,数据中心132a的服务器34可以被配置为作为控制节点150b、152b操作以生成指令以使用路由信息的一个或多个最佳路径来促进虚拟路由器170b、172b的操作。
58.数据中心132a的计算设备的第二集合被配置为作为集群的第二子集群操作并且执行分布式sdn控制器的控制功能以促进包括一个或多个服务器的第二虚拟网络的操作(306)。例如,数据中心132a的服务器34可以被配置为作为控制节点150c、152c操作以生成指令以使用路由信息的一个或多个最佳路径来促进虚拟路由器170c的操作。
59.数据中心132a的计算设备的第一集合被配置为从第一子集群收集第一报告信息
(308)。例如,数据中心132a的服务器34可以被配置为从控制节点150b、152b收集第一报告信息。报告信息的示例可以包括但不限于例如系统中的每个重要事件的(详细的)事件记录。如本文中使用的,事件可以是指例如用户可见的实体(uve)更新、新对象创建或另一事件。服务器34可以将事件记录输出到分析节点的多个实例之一(例如,用于横向扩展),该分析节点将信息整理并且存储在水平可伸缩数据库中。数据中心132a的计算设备的第一集合被配置为从第二子集群收集第二报告信息(310)。例如,数据中心132a的服务器34可以被配置为从控制节点150c、152c收集第二报告信息。数据中心132a的计算设备的第一集合被配置为使用第一报告信息和第二报告信息生成分析和数据库管理(312)。例如,数据中心132a的服务器34可以被配置为使用第一报告信息和第二报告信息生成全局集群配置、轨迹分析服务、轨迹分析数据库服务等。例如,服务器34可以使用第一报告信息和第二报告信息来收集、整理和呈现用于故障排除问题和理解网络使用的分析信息。在一些实例中,服务器34可以例如使用容错和水平可伸缩来持久地存储分析数据。
60.计算设备的第一集合和计算设备的第二集合可以共同位于第一数据中心(例如,数据中心132a)中,并且一个或多个服务器位于不同于第一数据中心的第二数据中心中。例如,计算设备的第一集合和计算设备的第二集合共同位于数据中心132a中,并且一个或多个服务器位于数据中心132b。然而,在一些示例中,计算设备的第一集合可以位于第一数据中心中,并且计算设备的第一集合和一个或多个服务器共同位于不同于第一数据中心的第二数据中心中。例如,计算设备的第一集合可以位于数据中心132a中,并且计算设备的第一集合和一个或多个服务器共同位于数据中心132b中。在一些示例中,非控制功能可以包括配置功能和分析功能。
61.下面描述配置具有子集群的分布式计算集群。可以使用instances.yaml文件来配置远程计算。使用sdn-controller-command和instances.yml来部署sdn控制器集群呈现最低配置。本节中描述的yaml文件建立在该最小配置的基础上并且使用图2作为示例数据中心网络拓扑(例如,示例多集群拓扑)。
62.为了在yaml文件中配置远程计算:
63.首先,创建远程定位件(location)或子集群。在该示例中,所创建的是数据中心2和3(名称分别为pop1和pop2),并且为每个数据中心定义唯一的asn号码。子集群名称也可以是唯一的。
64.65.[0066][0067]
整个yaml文件包含在下面。
[0068]
示例具有子集群配置的instance.yaml
[0069]
[0070]
[0071]
[0072]
[0073]
[0074]
[0075][0076]
下面描述一些附加的示例实现条件。对于一些用例细节,图2中的架构描绘了由部署有控制集群的1个主pop和部署有远程计算的2个辅助pop(pop1和pop2)组成的网络的路由集群id配置。对于分析、报告和故障排除信息,需要将routing cluster-id属性添加到与控制节点、虚拟路由器和bgp路由器相关联的所有相关用户可见的实体(uve),可能有新的集群监控仪表板,可能创建聚合来自给定集群的所有数据的新的仪表板。这可以消除转到用户界面(ui)中的三个不同部分的需要。
[0077]
对于配置和协调,可以经由应用程序接口(api)获取cluster-id配置—orange可以使用虚拟网络控制器(vnc)api进行配置,并且可以经由heat获取cluster-id provisioning。对于高可用性(ha)和升级,ha应当是控制器ha范围的一部分。支持ha可能不需要特定的工作。示例技术可以在服务软件升级(issu)升级期间透明地工作。
[0078]
为了安全性和合规性,可能不需要额外的安全性、加密或合规性。对于规模和性能指标,该功能不应当引入任何明显的吞吐量性能下降,当远程部署计算节点时,远程计算可以在控制节点与虚拟路由器、2个dc gw/远程pop、最多20个远程pop/配置/分析/db集群、以及最多50个计算/控制节点对(通常为10-20个)之间的20毫秒(msec)的延迟下工作。
[0079]
如上所述,备选的解决方案可能是麻烦的,其中每个集群是独立的单独的集群并且被联合但是构成管理挑战。
[0080]
对于api架构改变,创建新的对象子集群,其获取被表示为虚拟路由器对象的本地计算节点的链路列表和被表示为bgp路由器对象的本地控制节点的链路列表,其以asn作为属性。这些子集群对象中的每个子集群对象可以表示远程站点。
[0081]
对于ui改变,可以存在ui改变的各种示例。作为一个示例,ui需要示出子集群对象的列表。在选择子集群时,ui应当示出该远程站点中本地相关联的虚拟路由器和bgp路由器的列表以及asn属性。作为一个示例,ui可以示出子集群对象的列表。在列出虚拟路由器和bgp路由器时,ur可以提供子集群保管箱列表,该列表可以基于所选定的子集群对象来过滤这些对象。在一些示例中,ui可以针对虚拟路由器和bgp路由器的列表实现新列。
[0082]
以下是用于示例实现的代码。
[0083]
新的方案
[0084][0085][0086]
阶段1:
[0087]
作为第1阶段的一部分,
[0088]
1.将完成上述架构实现。
[0089]
2.配置脚本以配置子集群。
[0090]
3.虚拟路由器和bgp路由器配置脚本可以被修改,以将子集群作为可选的参数以将它们与子集群对象链接和/或解除链接。
[0091]
4.新的api可以在到crud子集群的api-lib中实现,并且它们将由新的配置脚本使用。
[0092]
5.api服务器变更以处理上述请求和具有上面定义的属性和链接的crud子集群对象。
[0093]
远程站点交叉连接验证
[0094]
#计算节点与控制节点之间的跨子集群站点验证。
[0095]
为了捕获计算节点与控制节点之间的任何跨站点连接,控制节点可以针对xmpp打开消息中的xmlns属性进行验证以接受或拒绝连接。
[0096][0097]
在该示例中,控制节点和计算节点都将在其相应的配置文件中配置有子集群字符串参数。
[0098]
由于bgp配对体是静态地配置的,因此在处理配置时可以进行验证。可以将子集群控制节点创建为外部控制节点。
[0099]
只要远程站点经由局域网(lan)连接,如时延等,则转发平面性能可能不会受到影响。此外,升级以及主集群和子集群可能无法使用当前的issu语义独立完成。解决该问题的一个示例方法是:
[0100]
1.与两个集群中的现有服务并行地生成新版本控制器软件和各自的服务。
[0101]
2.将所有计算节点分析连接指向主集群中的新版本软件。
[0102]
3.在集群中的旧版本控制节点与较新版本控制节点之间创建ibgp网格。
[0103]
4.以当今进行的方式升级主集群和子集群中的计算节点,并且将它们指向该集群中的相应的本地控制节点。
[0104]
5.一旦所有计算节点升级之后,则遵循主集群上的现有issu过程。
[0105]
6.按照类似的步骤进行回滚。但是,如果放宽旧版本应用与新版本应用之间的直接通信,则两个集群可以被独立地升级。
[0106]
对于本文中描述的过程、装置和其他示例或图示,包括在任何流程图表或流程图中,本文中描述的任何技术中包括的某些操作、动作、步骤或事件可以以不同的顺序执行、添加、合并或完全忽略(例如,并非所有描述的行为或事件都是实现技术所必需的)。此外,在某些示例中,操作、动作、步骤或事件可以同时执行,例如,通过多线程处理、中断处理或多个处理器,而不是顺序执行。此外,即使没有具体地标识为自动执行,某些操作、动作、步骤或事件也可以自动执行。此外,被描述为自动执行的某些操作、动作、步骤或事件可以备选地不是自动执行的,而是在一些示例中,这些操作、动作、步骤或事件可以响应于输入或另一事件而执行。
[0107]
在一个或多个示例中,所描述的功能可以用硬件、软件、固件或其任何组合来实
现。如果用软件实现,则可以将功能作为一个或多个指令或代码存储在计算机可读介质上和/或通过计算机可读介质传输并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质(其对应于诸如数据存储介质等有形介质)或者通信介质(其包括便于将计算机程序从一个地方传输到另一地方的任何介质(例如,根据通信协议))。以这种方式,计算机可读介质通常可以对应于(1)有形计算机可读存储介质,其是非瞬态的,或者(2)通信介质,诸如信号或载波。数据存储介质可以是可以由一个或多个计算机或一个或多个处理器访问以检索用于实现本公开中描述的技术的指令、代码和/或数据结构的任何可用的介质。计算机程序产品可以包括计算机可读介质。
[0108]
作为示例而非限制,这种计算机可读存储介质可以包括ram、rom、eeprom、cd-rom或其他光盘存储器、磁盘存储器或其他磁存储设备、闪存或者可以用于以指令或数据结构的形式存储期望的程序代码并且可以由计算机访问的任何其他介质。而且,任何连接都适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(dsl)或无线技术(诸如红外线、无线电和微波)从网站、服务器或其他远程源传输指令,则同轴电缆、光纤电缆、双绞线、dsl或无线技术(诸如红外线、无线电和微波)都被包括在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他瞬态介质,而是针对非瞬态有形存储介质。所使用的磁盘和盘包括紧凑盘(cd)、激光盘、光盘、数字通用盘(dvd)、软盘和蓝光盘,其中磁盘通常以磁性方式再现数据,而盘通过激光在光学上再现数据。以上的组合也应包括在计算机可读介质的范围内。
[0109]
指令可以由一个或多个处理器执行,诸如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga)或其他等效的集成或离散逻辑电路。因此,本文中使用的术语“处理器”或“处理电路”每个可以是指适于实现所描述的技术的任何前述结构或任何其他结构。此外,在一些示例中,所描述的功能性可以在专用硬件和/或软件模块内提供。而且,这些技术可以完全在一个或多个电路或逻辑元件中实现。
[0110]
本发明的技术可以在各种装置或设备中实现,包括无线手持机、移动或非移动计算设备、可穿戴或非可穿戴计算设备、集成电路(ic)或一组ic(例如,芯片组)。在本公开中描述了各种组件、模块或单元以强调被配置为执行所公开的技术的设备的功能方面,但不一定需要由不同的硬件单元实现。而是,如上所述,各种单元可以在硬件单元中组合,或者由互操作硬件单元的集合(包括如上所述的一个或多个处理器)结合合适的软件和/或固件来提供。
[0111]
除上述之外或作为其备选,描述了以下示例。以下任何示例中描述的特征可以与本文中描述的任何其他示例一起使用。
[0112]
示例1.一种包括第一数据中心的系统,第一数据中心包括:第一网关路由器;计算设备的第一集合,被配置为执行软件定义网络(sdn)控制器集群以促进第一数据中心内的一个或多个虚拟网络的操作;以及计算设备的第二集合,被配置为执行一个或多个控制节点以在第一网关路由器与不同于第一数据中心的第二数据中心的第二网关路由器之间交换用于第二数据中心内的计算设备之间的虚拟网络的路由信息,并且将用于第二数据中心的控制信息传送到计算设备的第二集合,其中一个或多个控制节点形成sdn控制器集群的子集群。
[0113]
示例2.根据示例1的系统,其中计算设备的第二集合中的一个或多个计算设备是
计算设备的第一集合的一部分。
[0114]
示例3.根据示例1-2的任何组合的系统,其中一个或多个控制节点形成一个或多个控制节点的第一集合,其中一个或多个控制节点的第一集合形成第一子集群,第一子集群是sdn控制器集群的子集群,并且其中第一数据中心包括:计算设备的第三集合,被配置为执行一个或多个控制节点的第二集合以在第一网关路由器与不同于第一数据中心和第二数据中心的第三数据中心的第三网关路由器之间交换第三数据中心内的计算设备之间的虚拟网络的路由信息,并且将第三数据中心的控制信息传送到计算设备的第三集合,其中一个或多个控制节点的第二集合形成sdn控制器集群的第二子集群。
[0115]
示例4.根据示例3的系统,其中一个或多个控制节点的第一集合中没有一个控制节点被配置为与一个或多个控制节点的第二集合中的任何一个控制节点配对。
[0116]
示例5.根据示例1-4的任何组合的系统,其中第一数据中心包括:计算设备的多个集合,计算设备的每个集合被配置为执行相应的一个或多个控制节点以在不同于第一数据中心的相应的数据中心内的计算设备之间交换相应的虚拟网络的路由信息。
[0117]
示例6.根据示例1-5的任何组合的系统,其中形成子集群的一个或多个控制节点被表示为边界网关协议(bgp)路由器对象,其中以自治系统号码(asn)作为属性。
[0118]
示例7.根据示例1-6的任何组合的系统,其中第二数据中心内的计算设备被表示为虚拟路由器对象。
[0119]
示例8.根据示例1-7的任何组合的系统,其中计算设备的第一集合被配置为执行sdn控制器集群以提供共享的资源以促进多个其他数据中心内的一个或多个虚拟网络的操作,多个其他数据中心包括第二数据中心。
[0120]
示例9.根据示例8的系统,其中为了提供共享的资源以促进多个其他数据中心内的一个或多个虚拟网络的操作,计算设备的第一集合中的一个或多个计算设备被配置为对多个其他数据中心内的一个或多个虚拟网络执行分析操作。
[0121]
示例10.根据示例1-9的任何组合的系统,其中形成子集群的一个或多个控制节点被配置为与第二数据中心的发生与sdn控制器集群的控制节点的路由交换的网关路由器进行边界网关协议(bgp)配对。
[0122]
示例11.根据示例1-10的任何组合的系统,其中形成子集群的一个或多个控制节点被配置为利用可扩展消息传递和存在协议(xmpp)来与计算设备的第二集合交换路由信息。
[0123]
示例12.根据示例1-11的任何组合的系统,其中形成子集群的控制节点中的第一控制节点和形成子集群的控制节点中的第二控制节点被配置为使用内部边界网关协议(ibgp)进行传送。
[0124]
示例13.一种方法,包括:由计算设备的第一集合执行软件定义网络(sdn)控制器集群以促进第一数据中心内的一个或多个虚拟网络的操作;以及由计算设备的第二集合执行一个或多个控制节点以在第一数据中心的第一网关路由器与不同于第一数据中心的第二数据中心的第二网关路由器之间交换用于第二数据中心内的计算设备之间的虚拟网络的路由信息,并且将用于第二数据中心的控制信息传送到计算设备的第二集合,其中一个或多个控制节点形成sdn控制器集群的子集群。
[0125]
示例14.根据示例13的方法,其中计算设备的第二集合中的一个或多个计算设备
是计算设备的第一集合的一部分。
[0126]
示例15.根据示例13-14的任何组合的方法,其中一个或多个控制节点形成一个或多个控制节点的第一集合,其中一个或多个控制节点的第一集合形成第一子集群,第一子集群是sdn控制器集群的子集群,其中方法包括:由计算设备的第三集合执行一个或多个控制节点的第二集合以在第一网关路由器与不同于第一数据中心和第二数据中心的第三数据中心的第三网关路由器之间交换第三数据中心内的计算设备之间的虚拟网络的路由信息,并且将第三数据中心的控制信息传送到计算设备的第三集合,其中一个或多个控制节点的第二集合形成sdn控制器集群的第二子集群。
[0127]
示例16.根据示例15的方法,其中一个或多个控制节点的第一集合中没有一个控制节点被配置为与一个或多个控制节点的第二集合中的任何一个控制节点配对。
[0128]
示例17.根据示例13-16的任何组合的方法,其中第一数据中心包括:计算设备的多个集合,计算设备的每个集合被配置为执行相应的一个或多个控制节点以在不同于第一数据中心的相应的数据中心内的计算设备之间交换相应的虚拟网络的路由信息。
[0129]
示例18.根据示例13-17的任何组合的方法,其中形成子集群的一个或多个控制节点被表示为边界网关协议(bgp)路由器对象,其中以自治系统号(asn)作为属性。
[0130]
示例19.根据示例13-18的任何组合的方法,其中第二数据中心内的计算设备被表示为虚拟路由器对象。
[0131]
示例20.一种计算机可读存储介质,其上存储有指令,指令在被执行时使得一个或多个处理器执行以下操作:执行sdn控制器集群以促进第一数据中心内的一个或多个虚拟网络的操作;以及执行一个或多个控制节点以在第一数据中心的第一网关路由器与不同于第一数据中心的第二数据中心的第二网关路由器之间交换用于第二数据中心内的计算设备之间的虚拟网络的路由信息,并且将用于第二数据中心的控制信息传送给计算设备的第二集合,其中一个或多个控制节点形成sdn控制器集群的子集群。
[0132]
此外,可以将上述任何示例中阐述的任何具体特征组合成所描述技术的有益示例。也就是说,任何特定的特征通常适用于本发明的所有示例。已经描述了各种示例。这些和其他示例在以下权利要求的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1