CN108141469B - 负载均衡器中的数据平面操纵 - Google Patents

负载均衡器中的数据平面操纵 Download PDF

Info

Publication number
CN108141469B
CN108141469B CN201680055459.9A CN201680055459A CN108141469B CN 108141469 B CN108141469 B CN 108141469B CN 201680055459 A CN201680055459 A CN 201680055459A CN 108141469 B CN108141469 B CN 108141469B
Authority
CN
China
Prior art keywords
data
tenant
plane
data plane
load balancer
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.)
Active
Application number
CN201680055459.9A
Other languages
English (en)
Other versions
CN108141469A (zh
Inventor
D·班萨尔
G·H·乌斯雷德
N·A·文卡塔拉迈亚
S·亚加瓦尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN108141469A publication Critical patent/CN108141469A/zh
Application granted granted Critical
Publication of CN108141469B publication Critical patent/CN108141469B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/147Network analysis or design for predicting network behaviour
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种负载均衡器,其能够通过操纵数据平面来调整如何将网络数据分发至租户或者租户群组。负载均衡器直接放置在目的地是具有租户地址的租户或者租户群组的网络数据的流路径中。负载均衡器包括控制平面以及一个或多个数据平面。每个数据平面可以包含一个或多个网络业务多路复用器。另外,每个数据平面可以专用于租户或者租户群组。数据平面可以被添加或者从负载均衡器被删除;附加地,多路复用器可以被添加或者从数据平面删除。因此,指向一个租户的网络数据不太可能影响针对另一租户执行的负载均衡的性能。

Description

负载均衡器中的数据平面操纵
背景技术
许多传统网络是非常复杂的,并且经常需要无数小时来维护和支持。通常,网络的各个个体部分一起工作以便为用户提供更为无缝的最终结果。为了辅助产生这种效果,网络通常依赖于一个架构而尽力在多个机器之间传播工作(例如,网络数据的接收和处理)从而不使任何个体机器过载。这种网络架构适当地称为负载均衡器。为此,针对一些网络,将负载均衡器直接放置在传入网络数据的路径中,以用于以负载均衡方式将网络数据分发至各种工作组件的目的。
负载均衡器可以由大量租户共享。租户是能够执行相对应的实体(例如,顾客,诸如企业、用户、用户的相关集群等)的一个或多个任务的一个或多个计算实体(诸如模块、组件、对象、处理、过程、功能、线程、库等)的收集。
本文要求保护的方案不限于解决诸如上文描述的任何缺点或者仅在上文描述的那些环境中操作的实施方式。相反,本背景技术仅被提供用于说明本文描述的一些实施方式可以实践的一种示例性技术领域。
发明内容
本文描述的至少一个实施方式涉及一种包含负载均衡器的系统。负载均衡器直接放置在目的地是具有租户地址的租户或者租户群组的网络数据的流路径中。负载均衡器用于调整向租户或者租户群组提供的网络数据的分发。负载均衡器包括控制平面以及一个或多个数据平面。每个数据平面可以包含一个或多个网络业务多路复用器(“MUX”)。附加地,每个数据平面可以专用于租户或者租户群组。
另外,网络数据的分发的调整包括:1)实例化负载均衡器中的一个或多个数据平面,2)从负载均衡器中删除一个或多个数据平面,3)在数据平面内添加多个MUX,或者4)从数据平面中删除多个MUX。将一个或多个数据平面专用于租户或者租户群组有助于隔离在由负载均衡器服务的租户之间路由的网络数据。因此,指向一个租户的网络数据不太可能影响针对另一租户执行的负载均衡的性能。
本发明内容被提供用于介绍下文将进一步描述的简化形式的概念的选择。本发明内容不旨在标识所要求保护的方案的关键特征或者必要特征,也不旨在用于限制所要求保护的方案的范围。
附图说明
为了描述可以包含上述以及其他优点的方式,将参考附图来呈现各个实施方式的更加特定的描述。可以理解,这些附图仅描绘了样本实施方式,并且因此不被认为限制发明的范围,通过使用附图、利用附加特殊性和细节来描述和解释实施方式。
图1图示了本文描述的一些实施方式可以采用的基本计算系统;
图2图示了能够将网络数据的分组分发至作为租户的一部分操作的一个或多个计算设备的负载均衡器;
图3图示了负载均衡器定位在其中的分布式环境,并且该负载均衡器能够将网络数据的分组分发至作为租户的一部分操作的一个或多个计算设备;
图4图示了能够将目的地是一个租户的网络数据的分组与目的地是不同租户的网络数据的分组相隔离的负载均衡器的细节图;
图5图示了能够被划分为分离的(discreet)单元的控制平面的结构的细节图,其中每个划分的单元能够控制通过数据平面的网络业务的流动;
图6图示了能够执行的控制平面的每个划分单元的功能性;
图7图示了包含多路复用器(“MUX”)的收集(collection)的数据平面的细节图,其中数据平面内的MUX的数目由控制平面控制;
图8图示了数据平面在控制平面的指导下能够执行的功能;
图9图示了用于能够修改网络数据的分发的负载均衡器的示例方法的流程图。
具体实施方式
本文描述的至少一个实施方式涉及一种包含负载均衡器的系统。负载均衡器直接放置在目的地是具有租户地址的租户或者租户群组的网络数据的流路径中。负载均衡器用于调整向租户或者租户群组提供的网络数据的分发。负载均衡器包括控制平面和一个或多个数据平面。每个数据平面可以包含一个或多个网络业务多路复用器(“MUX”)。附加地,每个数据平面可以专用于租户或者租户群组。
另外,网络数据的分发的调整包括:1)实例化负载均衡器中的一个或多个数据平面,2)从负载均衡器中删除一个或多个数据平面,3)在数据平面内添加多个MUX,或者4)从数据平面删除多个MUX。将一个或多个数据平面专用于租户或者租户群组有助于隔离在由负载均衡器服务的租户之间路由的网络数据。因此,指向一个租户的网络数据不太可能影响针对另一租户执行的负载均衡的性能。
根据本文说明的实施方式,将描述能够提供通过负载均衡器的网络数据的分组之间的隔离的负载均衡器。首先,将介绍本文描述的一些实施方式所在的计算系统。接下来,将使用图2和图3介绍负载均衡器的功能性的高级描述。在该描述之后,将在图4至图8中示出负载均衡器(包括其组件)的结构和功能性的详细描述。最后,将在图9中呈现方法的示例,其中负载均衡器可以用于修改如何分发网络数据的分组。
计算系统现在越来越多地采取各种各样的形式。计算系统例如可以是手持设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统,或者甚至传统上不被认为是计算系统的设备。在该具体实施方式和权利要求中,术语“计算系统”被广义地定义为包括包含至少一个物理和有形处理器以及能够在其上具有可以由处理器执行的计算机可执行指令的物理和有形的存储器的任何设备或系统(或其组合)。存储器可以采用任何形式,并且可以取决于计算系统的性质和形式。计算系统可以分布在网络环境上,并且可以包括多个构成的计算系统。
如图1所图示,在其最基本的配置中,计算系统100通常包括至少一个处理单元102和存储器104。存储器104可以是物理系统存储器,其可以是易失性的、非易失性的或者两者的一些组合。术语“存储器”本文中还可以用于指非易失性海量存储,诸如物理存储介质。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。如本文使用的,术语“模块”或者“组件”可以指在计算系统上执行的软件对象或者例程。本文描述的不同的组件、模块、引擎和服务可以实现为在计算系统上执行的对象或者过程(例如,作为单独的线程)。
在以下描述中,参考由一个或多个计算系统执行的动作来描述实施方式。如果此类动作在软件中实现,则执行动作的相关联的计算系统的一个或多个处理器响应于已经执行了计算机可执行指令而指导计算系统的操作。例如,此类计算机可执行指令可以具体化在形成计算机程序产品的一个或多个计算机可读介质上。此类操作的示例包括数据的操纵。计算机可执行指令(以及操纵数据)可以存储在计算系统100的存储器104中。计算系统100还可以包含通信信道108,该通信信道108允许计算系统100例如通过网络110与其他消息处理器通信。
本文描述的实施方式可以包括或者使用包括计算机硬件的专用或者通用计算机,举例而言,计算机硬件诸如一个或多个处理器和系统存储器,如下文将更加详细地讨论。本文描述的实施方式还包括用于承载或者存储计算机可执行指令和/或数据结构的物理的以及其他计算机可读介质。此类计算机可读介质可以是可以由通用或者专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,通过示例而非限制的方式,本发明的实施方式可以包括至少两种明显不同的计算机可读介质:计算机存储介质和传输介质。
计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或者其他光学盘存储、磁盘存储或其他磁存储设备,或者可以用于存储计算机可执行指令或者数据结构形式的所需程序代码装置的任何其他介质,该程序代码装置可以由通用或者专用计算机访问。
“网络”被定义为支持计算机系统和/或模块和/或其他电子设备之间的电子数据的传送的一个或多个数据链路。当通过网络或者另一通信连接(硬接线、无线或者硬接线或无线的组合)向计算机传送或者提供信息时,计算机适当地将连接视作传输介质。传输介质可以包括可以用于承载计算机可执行指令或者数据结构形式的所需程序代码装置的网络和/或数据链路,所需程序代码装置可以由通用或者专用计算机访问。以上的组合也应当包括在计算机可读介质的范围内。
另外,在到达各种计算机系统组件时,计算机可执行指令或者数据结构形式的程序代码装置可以从传输介质自动地传送至计算机存储介质(反之亦然)。例如,通过网络或者数据链路接收的计算机可执行指令或者数据结构可以在网络接口模块(例如,“NIC”)内的RAM中缓冲,并且继而最终传送至计算机系统RAM和/或计算机系统处的弱易失性计算机存储介质。由此,应当理解,计算机存储介质可以包括在也(或者甚至主要)使用传输介质的计算机系统组件中。
计算机可执行指令例如包括指令和数据,其在处理器处执行时,导致通用计算机、专用计算机或者专用处理设备执行特定的功能或者功能群组。计算机可执行指令例如可以是二进制文档、诸如汇编语言的中间格式指令或者甚至源代码。虽然已经以特定于结构特征和/或方法动作的语言描述了方案,但是应当理解,所附权利要求中限定的方案不必局限于所描述的特征或者上文描述的动作。而是,公开了所描述的特征和动作作为实现权利要求的示例形式。
本领域技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、基于微处理器或者可编程的消费者电子设备、网络PC、小型计算机、大型机计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明还可以在分布式系统环境中实践,其中通过网络链接(通过硬接线数据链路、无线数据链路或者通过硬接线数据链路和无线数据链路的组合)的本地计算机系统和远程计算机系统两者均执行任务。在分布式系统环境中,程序模块可以定位在本地存储器存储设备和远程存储器存储设备二者中。
上文已经关于图1描述了物理计算系统(物理机的示例),现在将使用图2描述负载均衡器的概念。然而,在以下部分中描述的负载均衡器中的每一个负载均衡器能够使用图1中描述的物理机的类型。另一方面,负载均衡器还能够并入其他类型的计算设备,诸如虚拟设备。随后,负载均衡器能够使用物理机、虚拟机或者其组合。
现在将关于图2描述负载均衡器的一般功能性。具体地,图2图示了处于网络数据路径中的负载均衡器205。此处,负载均衡器205能够将传入的网络业务的分组路由至期望位置。在图2的情况中,网络数据的期望位置是租户206。租户是由单个实体控制并且能够执行用于该实体的任务的机器(或者机器的网络)的表示。
在一个实施方式中,租户206可以包括一个或多个物理机(诸如图1中所图示的),或者租户206可以包括跨多个主机分布的一个或多个虚拟机。然而,在其他实施方式中,租户206可以仅是的那个机器。例如,在图2中,租户206被示出为具有四个计算设备207A至207D,其统称为计算设备207。然而,图示了省略号207E以象征性地表示本文描述的原理在无关于针对租户206操作的物理机的数目的情况下而应用。
租户206还被示出为具有租户地址204。虽然图2将负载均衡器205图示为向单个租户206提供网络业务,但是本文描述的原理还预期负载均衡器205可以为多个租户执行类似功能。因此,租户地址204帮助源201将网络业务路由至负载均衡器205,并且帮助负载均衡器205标识租户206。由此,租户地址204用于将租户206与可以在相同网络内操作的任何其他租户(图2中未示出)明显标识出来。在一个实施方式中,租户地址204可以是(或者可以包括)虚拟IP地址(“VIP”)。然而,租户地址204可以是任何其他适合的寻址系统。
如前所述,租户206被示出为具有四个计算设备207A至207D。在图2中呈现的情形中,负载均衡器205能够接收(经由相对应的租户地址204)寻址到租户206的网络数据。在接收网络数据之后,负载均衡器205继而能够将该网络数据路由至作为租户206的一部分操作的一个或多个计算设备(例如,计算设备207B)。换言之,负载均衡器205能够在作为租户206的一部分操作的计算设备207之间分发网络数据。本领域技术人员将认识到,负载均衡器能够通过使用如图2所图示的计算设备的专用IP地址(“DIP”)(例如,DIP 208A至208D),来将网络数据路由至这些计算设备。
图2还示出了三个源,即:源201A、源201B和源201C;这些源统称为源201。另外,省略号201D象征负载均衡器205可以将源自任何数目(并且可能是大数目)的源的网络业务路由至租户。本领域技术人员将能够认识到,网络数据必须源自某些种类的源,并且该网络数据能够被寻址到特定位置。由此,本文将不呈现关于如何创建网络数据以及如何寻址网络数据的细节。仅作为示例,源201可以是边缘路由器。
返回负载均衡器205的描述,负载均衡器205所位于的网络数据路径包括从负载均衡器可能服务(如一般由输入路径209表示的)任何源到任何租户(如一般由输出路径210表示的)的所有数据流。例如,箭头209A和210B以粗体示出以表示一个特定网络数据路径。然而,箭头209B、209C、210A、210C和210D是虚线,以图示针对源201与租户206之间的特定数据流可以存在输入路径209和输出路径210的其他组合。
上文已经描述了图2中呈现的负载均衡器205的高级功能性,现在将使用图3描述负载均衡器340的功能性的更详细描述。图3图示了能够在分布式系统300中操作的负载均衡器340。在这种情况下,负载均衡器340可以按照图2中呈现的负载均衡器205类似地配置。作为示例,系统300可以实现在例如分布式云计算环境中。在本具体实施方式中,“云计算”被定义为用于支持对可配置计算资源(例如,网络、服务器、存储、应用和服务)的共享池的按需网络访问的模型。“云计算”的定义不限于可以在适当部署时从此类模型获得的其他许多优点中的任何优点。
目前在市场上采用云计算,以便提供对可配置计算资源的共享池的普遍存在和方便的按需访问。另外,可配置计算资源的共享池可以经由虚拟化而快速提供,并且以低的管理工作或者服务提供商交互而发布,并且继而相应地缩放。
云计算模型可以包括各种特性,诸如按需自助服务、广泛的网络接入、资源池化、快速弹性、定制服务等等。云计算模型还能够以各种服务模型的形式出现,举例而言,诸如软件即服务(“SaaS”)、平台即服务(“PaaS”)和基础架构即服务(“IaaS”)。云计算模型还可以使用不同的部署模型来部署,诸如私有云、社区云、公共云、混合云等等。在本具体实施方式中,“云计算环境”是其中采用云计算的环境。虽然被描述为驻留在云计算环境中,但是本文叙述的原理不仅限于该类型的环境。由此,贯穿全文描述的实施方式也可以在本地环境或者另一适合的环境中实现。
返回图3,图3图示了具有租户310和320的系统300。租户310和320每个可以类似地与图2中呈现的租户206的实例相对应。而且,租户310和320被示出为每个分别具有租户地址313和323。类似于图2和图3中的租户的比较,租户地址313和323可以比作图2中的租户地址204。
租户310和320每个具有计算设备的收集。例如,租户310具有三个计算设备,即:计算设备312A、计算设备312B和计算设备312C。然而,省略号312D展示了计算设备的数目不限于三个。在这种情形中,计算设备312A至312C统称为计算设备312。相同的原理适用于租户320,其具有计算设备322,并且由此计算设备322A至322C统称为计算设备322。虽然没有在图3中示出,但是每个计算设备具有类似于图2中呈现的DIP 208A至208D的DIP。
一般地,系统300示出了接收网络数据335的负载均衡器340。在这种情况下,网络数据335被示出为目的是租户。另外,网络数据335被显示为来自边缘路由器330。在一些实施方式中,边界网关协议(BGP)用于边缘路由器330与负载均衡器340之间的通信,但是可以使用任何适当的协议。负载均衡器340能够将网络数据335分发至作为租户的一部分操作的计算设备(例如,计算设备312)的集合。例如,如图3所描绘的,如果网络数据335的目的地是租户310,则负载均衡器340能够将网络数据335路由至计算设备312C(如关联353所图示)。备选地,如果网络数据335的目的地是租户320,则负载均衡器340能够将网络数据335路由至计算设备322A和/或322B(如分别由关联352和351所图示)。
上文已经关于图2和图3描述了负载均衡器的功能性,现在将关于图4描述负载均衡器420的内部工作。图4示出了负载均衡器420、边缘路由器440和租户的收集410。另外,图示了两个网络数据的分组435和436,以便示出网络数据的示例路由。图4中示出的对象可以对应于先前在图3中描述的负载均衡器340、边缘路由器330、租户310、320和网络数据335。租户410被图示为包括四个计算设备410A至410D,以及由省略号410E表示的可能更多的计算设备。另外,租户410A至410D被图示为分别具有相对应的租户地址415A至415D。
在图4的情况下,网络数据的分组435和436被示出为分别寻址到租户地址415B和415C。附加地,分组435和436被示出为在到达负载均衡器420之前首先被路由通过边缘路由器440。
在该描绘中,负载均衡器420具有控制平面421和四个数据平面,即:数据平面422A、数据平面422B、数据平面422C和数据平面422D。这四个数据平面统称为数据平面422。重要的是,虽然仅示出了四个数据平面,但是负载均衡器420不限于该数目;而是,负载均衡器420可以支持可调整数目的数据平面,后面将进行描述。沿着同样的思路,控制平面421被示出为具有四个分区,即:分区421A、分区421B、分区421C和分区421D。类似于数据平面的可调整性质,控制平面421不限于图4所图示的分区的数目;相反,控制平面421可以支持可调整数目的分区。
现在将使用图5和图6更加详细地描述控制平面421。通过介绍的方式,图5图示了能够被划分的控制平面的结构的细节图。图6图示了控制平面的每个划分单元能够执行的功能性。
如上所述,图5图示了控制平面500的基本结构。控制平面500能够以按照控制平面421(图4中示出)相似的方式进行配置。因此,关于控制平面500描述的原理可以同样地应用于控制平面421。如所示出的,控制平面500与控制平面421的相似之处在于,控制平面500具有多个分区。具体地,控制平面500被图示为具有分区502A至502F。省略号502G图示了控制平面500可以具有比所示的那些更多的分区。
现在已经介绍了控制平面500的结构,将使用图6来描述控制平面500能够执行的一些功能。图6示出了控制平面500可以配置用于执行多种不同的功能。然而,重要的是,本文描述的每个功能不仅涉及作为整体的控制平面500,还涉及分区中的每一个(例如,分区502A)。如图6所示,控制平面500可以实例化(动作601)负载均衡器内的一个或多个数据平面。作为该动作的结果,负载均衡器内的数据平面的数目是可调整的。备选地或附加地,控制平面500还能够删除(动作602)负载均衡器中的一个或多个数据平面。备选地或附加地,控制平面500能够确定(动作603)何时对数据平面做出某些改变。将在随后的部分中描述这些改变的示例。
返回至图4,负载均衡器420被示出为具有第一数据平面422A、第二数据平面422B等等。在该部分中,将描述数据平面中的一个,数据平面422A的示例结构和功能性。虽然数据平面422A将被用作示例对象,但是在接下来的部分中描述的原理同样可适用于其他数据平面中的每一个(例如,数据平面422B至422D)。因此,图7和图8将用于介绍那些原理。通过介绍的方式,图7图示了包括可调整数目的MUX的数据平面700的细节图。图8图示了数据平面700在控制平面的指导下可以执行的功能。
如所指示的,图7图示了数据平面700的细节图。数据平面700能够以与图4中呈现的数据平面422A相同的方式进行配置。由此,关于数据平面700描述的结构和功能性可以应用于数据平面422A。图7还展示了数据平面700可以具有可调整数目的MUX。例如,数据平面700具有MUX 702A、MUX 702B和MUX 702C。这些统称为MUX池702。省略号702D展示了MUX的数目不限于图7中所图示的MUX的数目。而且,MUX池702内的至少一些并且潜在地全部的MUX以相同的方式配置,并且以相同的方式操作。换言之,单个数据平面内的所有MUX以相同方式配置。继而进一步澄清,第一数据平面内的MUX的配置不同于第二数据平面内的MUX的配置。因此,负载均衡器内的每个数据平面具有唯一的配置。
现在,将使用图8图示数据平面700的功能性。再一次,本文描述的原理可以涉及在负载均衡器内操作的任何数据平面。
如图8所示,数据平面700可以执行多种不同的功能。然而,数据平面700可以在由控制平面(例如,图4中的控制平面421)指导这样做时执行这些功能。在这一方面,控制平面确定何时做出某些改变或者功能(例如,图6中的动作603),而不是数据平面。为了恢复,数据平面700能够实例化(动作801)其自身内的一个或多个新的MUX(例如,图7中的MUX702A)。以相似的方式,数据平面700能够删除(动作802)其自身内的一个或多个MUX(例如,图7中的MUX 702A)。数据平面700还能够将其服务专用(动作803)于特定租户或者租户群组(例如,图4中的租户410B)。换言之,数据平面700可以拒绝对被寻址到外部租户的网络数据的传递。为了进一步澄清,负载均衡器内的每个数据平面能够将其服务专用于特定租户或者租户群组;作为结果,第一数据平面可以专用于第一租户,并且第二数据平面可以专用于第二租户。
数据平面700进一步能够在通过数据平面700所位于的负载均衡器的网络数据(例如,图4中的网络数据435)的分组之间提供隔离(动作804)。例如,专用于特定租户的数据平面能够将寻址到该租户的任何网络数据与同样通过负载均衡器的所有其他网络数据隔离。换言之,数据平面700能够在各种数据平面之间提供网络数据隔离。附加地,数据平面700能够在数据平面已经被删除之后重新路由(动作805)网络数据。以相似的方式,数据平面700还能够在新的数据平面已经被添加之后重新路由网络数据。换言之,数据平面700在可以容易地重新指派已有的路由路径方面非常灵活。
之前的讨论关注于负载均衡器420的功能性和结构。概括来说,使用图5和图6详细地呈现了控制平面421,并且使用图7和图8详细地呈现了数据平面422A。在接下来的部分中,将描述控制平面421和数据平面422A的操作灵活性。
返回图4,该图示出了控制平面421和数据平面422。此处,控制平面421被呈现为具有第一分区421A、第二分区421B等等。同样地,数据平面422被呈现为具有第一数据平面422A、第二数据平面422B等等。
在这种情况下,第一分区421A充当针对第一数据平面422A的主要控制(参见关联423)。第二分区421B充当针对第二数据平面422B的主要控制(参见关联426)。除了充当主要控制之外,第一分区421A还充当针对第二数据平面422B的后备控制(参见关联424)。同样地,第二分区421B,除了充当主要控制之外,还充当针对第一数据平面422A的后备控制(参见关联425)。此处,控制平面的每个分区充当针对特定数据平面的主要控制,并且充当针对不同数据平面的后备控制。因此,如果控制平面中的一个失效,则负载均衡器的功能性具有较大弹性。
控制平面421(以及其中的每个分区)还能够执行其他功能。具体地,控制平面421能够对一个或多个数据平面422直接编程。为了说明编程的一个示例,控制平面421可以宣告新的网络路由。控制平面421还能够监测负载均衡器420内的数据平面422的健康。附加地,控制平面421能够监测数据平面集合内的MUX的健康。另外,控制平面421能够监测正在进行负载均衡的租户410的健康。
如前文所述,下一个部分将讨论数据平面422的操作灵活性。返回图4,图4也将负载均衡器420图示为具有第一数据平面422A、第二数据平面422B等等。该数据平面的收集称为数据平面422。下文描述的操作灵活性可应用于在负载均衡器420内操作的所有数据平面,而不仅限于单个数据平面。
使用数据平面422A作为示例,数据平面422A可以用于汇集(sink)针对正在遭受拒绝服务攻击的租户地址(例如,租户地址415A)的网络数据。另外,可以基于预期负载或者吞吐量来选择数据平面422A内的MUX(例如,图7中驻留在数据平面700中的MUX702A)的数目;由此,MUX的数目是可调整的。数据平面422A还可以用于过滤目的地是特定租户地址(例如,租户地址415B)的网络数据(例如,网络数据435)。附加地,数据平面422A可以用于加密网络数据。灵活性的另一示例是数据平面422A可以用于拆卸和/或重新组装网络数据(例如,网络数据435)的分组中的信息。如所述的,这些原理涉及负载均衡器内的所有数据平面而不仅仅是数据平面422A。
图9图示了描绘用于能够修改网络数据的分发的负载均衡器的示例方法900的流程图。图9中描述的方法900可以通过图4中描述的负载均衡器420来实现。而且,为了实现方法900,负载均衡器将需要按照图4中的负载均衡器420相似的方式进行配置。
方法900包括动作901,该动作901监测由负载均衡器施加的网络数据的分发的测量。换言之,针对任何给定租户的通过负载均衡器的网络数据的量能够被测量。通过示例的方式,该动作可以对应于测量通过图4中示出的数据平面422A的网络业务的量。
随后,执行动作902,在该动作902中继而将先前动作中获取的测量结果与选择的分发进行比较。换言之,针对任何给定租户的实际通过负载均衡器的数据的量将与期望的或者选择的量进行比较。通过示例的方式,该动作将对应于将通过数据平面422A的网络业务的实际量与通过数据平面422A的网络数据的设置量(例如,目标水平或者期望度量水平)进行比较。
下面的动作,即动作903至908,都在上文描述的动作之后执行。然而,动作903-908都可以彼此并行执行。动作903至908可以共同地或者独立地被一般地描述为一种动作(动作910),该动作修改负载均衡器如何向租户或者租户群组分发网络数据。执行该修改以便补偿在先前步骤中收集和比较的所测量的分发与所选择的分发之间存在的任何变化。
具体地,方法900包括动作903,其中一个或多个MUX能够被添加到数据平面。此处,动作903可以对应于图8中的动作801,其中控制平面能够实例化数据平面内的一个或多个MUX。类似地,方法900还包括动作904,其中一个或多个MUX能够从数据平面被移除。动作904对应于图8中的动作802,其中控制平面能够删除数据平面内的一个或多个MUX。
方法900还包括动作905,其中一个或多个数据平面能够被添加至负载均衡器。此处,新添加的数据平面中的每一个具有一个或多个MUX。动作905对应于图6中的动作601,其中控制平面能够实例化一个或多个数据平面。以类似的方式,方法900还包括动作906,其中一个或多个数据平面能够从负载均衡器被移除。动作906对应于图6中的动作602,其中控制平面能够删除一个或多个数据平面。
方法900还包括动作907,其中作为负载均衡器的一部分操作的数据平面能够专用于租户或者租户群组。动作907对应于图8中的动作803,其中数据平面专用于租户。类似地,方法900还包括动作908,其中寻址到租户或者租户群组的网络数据能够被路由或者重新路由通过数据平面集合。动作908对应于图8中的动作805,其中网络数据被路由通过数据平面。
总而言之,在云计算环境中,客户使用云提供商提供的共享服务。一种此类服务是负载均衡。然而,多个客户可以共享相同的负载均衡服务。因此,不同的客户可能具有不同的负载均衡需求。特别地,一些客户可能期望负载均衡器能够将他们的网络业务与其他客户的网络业务隔离。本文描述的实施方式提出了一种在云计算环境中提供唯一负载均衡服务的可扩展、可管理方式。
本发明可以在不脱离其精神或基本特性的情况下以其他特定形式具体化。所描述的实施方式在所有方面被视作仅是说明性的而非限制性的。因此,本发明的范围由所附权利要求而不是以上描述来指示。在权利要求的等同物的意义和范围内的所有改变都将被包括在其范围内。

Claims (19)

1.一种用于数据平面操纵的系统,所述系统包括:
一个或多个租户,每个租户或者租户群组具有租户地址;
源,所述源被配置用于接收目的地是被指派给租户或者租户群组的一个或多个租户地址的一个或多个网络数据;以及
负载均衡器,所述负载均衡器被配置用于从所述源接收所述一个或多个网络数据,并且将所述一个或多个网络数据分发至被指派给所述租户或者租户群组的所述租户地址,所述负载均衡器处于所述一个或多个网络数据的数据流路径中,所述负载均衡器包括:
控制平面,所述控制平面被配置用于执行以下动作中的一个或多个动作:
实例化一个或多个数据平面的动作;
删除一个或多个数据平面的动作;以及
确定何时对多个数据平面内的一个或多个数据平面做出改变的动作;以及
所述多个数据平面,所述多个数据平面包括第一数据平面和第二数据平面,所述第一数据平面和所述第二数据平面每个具有多个多路复用器(MUX),其中当所述控制平面确定要做出改变时,所述第一数据平面和所述第二数据平面中的一个或者两者执行以下动作中的两个或更多动作:
实例化所述第一数据平面或所述第二数据平面中的至少一个数据平面内的一个或多个MUX的动作;
从所述第一数据平面和所述第二数据平面中的至少一个数据平面内销毁一个或多个MUX的动作;
将所述第一数据平面专用于第一租户或者租户群组的动作;以及
将所述第二数据平面专用于第二租户或者租户群组的动作,其中所述第一数据平面和所述第二数据平面提供彼此之间的网络数据隔离。
2.根据权利要求1所述的系统,其中所述第一数据平面和所述第二数据平面中的至少一个数据平面内的所述多个MUX被相同地配置。
3.根据权利要求1所述的系统,其中所述控制平面包括第一分区和第二分区,所述第一分区充当针对所述第一数据平面的主要控制,并且所述第二分区充当针对所述第一数据平面的后备控制,所述第一分区还充当针对所述第二数据平面的后备控制,并且所述第二分区还充当针对所述第二数据平面的主要控制。
4.根据权利要求1所述的系统,其中所述源是边缘路由器。
5.根据权利要求1所述的系统,其中所述租户地址包括虚拟IP(VIP)地址。
6.根据权利要求1所述的系统,其中所述第一数据平面可以用于汇集针对遭受拒绝服务攻击的租户地址的网络数据。
7.根据权利要求1所述的系统,其中所述第一数据平面中的MUX的数目基于期望负载或者吞吐量来选择。
8.根据权利要求1所述的系统,其中所述系统处于云计算环境中。
9.根据权利要求1所述的系统,其中所述系统处于分布式环境中。
10.一种用于负载均衡器修改网络数据的分发的方法,所述负载均衡器包括数据平面,所述数据平面具有一个或多个多路复用器(MUX),所述数据平面与租户或者租户群组相对应,相对应的所述数据平面被放置在从一个或多个源向相对应的租户或者租户群组的一个或多个租户地址传输的网络数据的数据路径中,所述方法包括:
监测动作,所述监测动作监测在通过所述相对应的数据平面向所述租户或者租户群组递送所述网络数据中由所述负载均衡器施加的所述网络数据的所述分发的测量;
比较动作,所述比较动作将在经由所述相对应的数据平面向所述租户或者租户群组递送所述网络数据中由所述负载均衡器经由所述相对应的数据平面施加的所述网络数据的所述分发的所述测量与被选择的将要由所述负载均衡器施加的选择的分发进行比较;以及
修改动作,所述修改动作通过向所述相对应的数据平面添加一个或多个MUX或者移除一个或多个MUX、来修改在经由所述相对应的数据平面向所述租户或者租户群组递送网络数据中由所述负载均衡器施加的所述网络数据的所述分发,以补偿比较的所述网络数据的所述分发之间的至少一些变化。
11.根据权利要求10所述的方法,其中所述租户地址包括虚拟IP(VIP)地址。
12.根据权利要求10所述的方法,其中所述相对应的数据平面内的一个或多个MUX被相同地配置。
13.根据权利要求10所述的方法,其中所述源是边缘路由器。
14.根据权利要求10所述的方法,其中所述负载均衡器还包括控制平面,所述控制平面包括第一分区和第二分区,所述第一分区充当针对第一数据平面的主要控制,并且所述第二分区充当针对所述第一数据平面的后备控制,所述第一分区还充当针对第二数据平面的后备控制,并且所述第二分区还充当针对所述第二数据平面的主要控制。
15.一种用于负载均衡器修改网络数据的分发的方法,所述负载均衡器包括一个或多个数据平面,所述数据平面每个具有一个或多个多路复用器(MUX),所述一个或多个数据平面中的至少一个数据平面与租户或者租户群组相对应,相对应的所述数据平面被放置在从一个或多个源向相对应的租户或者租户群组的一个或多个租户地址传输的网络数据的数据路径中,所述方法包括:
向所述负载均衡器添加一个或多个数据平面的动作,所述一个或多个数据平面中的每个数据平面具有一个或多个MUX;
从所述负载均衡器移除一个或多个数据平面的动作,所述一个或多个数据平面每个具有一个或多个MUX;
将添加的所述一个或多个数据平面专用于租户或者租户群组的动作;以及
通过新添加的一个或多个数据平面来路由目的地是用于所述租户或者租户群组的网络数据的动作。
16.根据权利要求15所述的方法,其中所述负载均衡器还包括控制平面,所述控制平面编程所述一个或多个数据平面,所述控制平面具有第一分区和第二分区,所述第一分区充当针对第一数据平面的主要控制,并且所述第二分区充当针对所述第一数据平面的后备控制,所述第一分区还充当针对第二数据平面的后备控制,并且所述第二分区还充当针对所述第二数据平面的主要控制。
17.根据权利要求16所述的方法,其中所述控制平面执行以下动作中的一个或多个:
监测所述数据平面的健康的动作;
监测所述一个或多个数据平面内的所述MUX的健康的动作;以及
监测正在被负载均衡的所述租户或者租户群组的健康的动作。
18.根据权利要求16所述的方法,其中所述控制平面编程所述一个或多个数据平面以宣告网络路由。
19.根据权利要求16所述的方法,其中所述第一数据平面可以被用于针对租户地址而过滤网络数据。
CN201680055459.9A 2015-09-30 2016-09-23 负载均衡器中的数据平面操纵 Active CN108141469B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/871,645 US9871731B2 (en) 2015-09-30 2015-09-30 Data plane manipulation in a load balancer
US14/871,645 2015-09-30
PCT/US2016/053214 WO2017058641A1 (en) 2015-09-30 2016-09-23 Data plane manipulation in a load balancer

Publications (2)

Publication Number Publication Date
CN108141469A CN108141469A (zh) 2018-06-08
CN108141469B true CN108141469B (zh) 2021-02-12

Family

ID=57124126

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680055459.9A Active CN108141469B (zh) 2015-09-30 2016-09-23 负载均衡器中的数据平面操纵

Country Status (4)

Country Link
US (3) US9871731B2 (zh)
EP (1) EP3357216B1 (zh)
CN (1) CN108141469B (zh)
WO (1) WO2017058641A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11159980B2 (en) 2014-07-22 2021-10-26 Parallel Wireless, Inc. Signaling storm reduction from radio networks
WO2016014728A1 (en) 2014-07-22 2016-01-28 Parallel Wireless, Inc. Signaling storm reduction from radio networks
US9871731B2 (en) * 2015-09-30 2018-01-16 Microsoft Technology Licensing, Llc Data plane manipulation in a load balancer
US10033647B2 (en) * 2015-10-13 2018-07-24 Oracle International Corporation System and method for efficient network isolation and load balancing in a multi-tenant cluster environment
US10735996B2 (en) * 2017-01-23 2020-08-04 Parallel Wireless, Inc. Systems and methods for a scalable heterogeneous network orchestrator
US11650862B2 (en) 2018-07-31 2023-05-16 Parallel Wireless, Inc. Service bus for telecom infrastructure
US10812576B1 (en) * 2019-05-31 2020-10-20 Microsoft Technology Licensing, Llc Hardware load balancer gateway on commodity switch hardware
US11973822B2 (en) 2021-03-05 2024-04-30 Parallel Wireless, Inc. Method for handling of an inbound SCTP packet at an SCTP load balancer and tunneling methodology

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102119512A (zh) * 2008-08-11 2011-07-06 微软公司 分布式负载平衡器
CN104680377A (zh) * 2013-11-27 2015-06-03 上海墨芋电子科技有限公司 一种新型云计算技术解决通信行业网络系统性能瓶颈的方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6779016B1 (en) * 1999-08-23 2004-08-17 Terraspring, Inc. Extensible computing system
US20040071141A1 (en) * 2002-10-15 2004-04-15 Dhara Narendra Kumar Distributed service architecture based on a hierarchical load balancing approach
US7933983B2 (en) 2002-12-17 2011-04-26 Hewlett-Packard Development Company, L.P. Method and system for performing load balancing across control planes in a data center
US7742477B1 (en) 2006-02-03 2010-06-22 Cisco Technology, Inc. Interconnectivity between autonomous systems
US8266321B2 (en) 2006-06-12 2012-09-11 Cloudsoft Corporation Limited Self-managed distributed mediation networks
US20110314119A1 (en) 2010-06-18 2011-12-22 Deepak Kakadia Massively scalable multilayered load balancing based on integrated control and data plane
US8289968B1 (en) 2010-10-27 2012-10-16 Juniper Networks, Inc. Distributed network address translation in computer networks
US8676980B2 (en) 2011-03-22 2014-03-18 Cisco Technology, Inc. Distributed load balancer in a virtual machine environment
EP2512202B1 (en) * 2011-04-12 2013-11-20 Alcatel Lucent Load balancing in a radio access network
US9253252B2 (en) 2011-05-06 2016-02-02 Citrix Systems, Inc. Systems and methods for cloud bridging between intranet resources and cloud resources
US8671407B2 (en) * 2011-07-06 2014-03-11 Microsoft Corporation Offering network performance guarantees in multi-tenant datacenters
US8762501B2 (en) 2011-08-29 2014-06-24 Telefonaktiebolaget L M Ericsson (Publ) Implementing a 3G packet core in a cloud computer with openflow data and control planes
US9250941B2 (en) 2011-09-30 2016-02-02 Telefonaktiebolaget L M Ericsson (Publ) Apparatus and method for segregating tenant specific data when using MPLS in openflow-enabled cloud computing
US9210180B2 (en) * 2012-04-18 2015-12-08 Radware Ltd. Techniques for separating the processing of clients' traffic to different zones in software defined networks
US20140052877A1 (en) 2012-08-16 2014-02-20 Wenbo Mao Method and apparatus for tenant programmable logical network for multi-tenancy cloud datacenters
US9954781B2 (en) 2013-03-15 2018-04-24 International Business Machines Corporation Adaptive setting of the quantized congestion notification equilibrium setpoint in converged enhanced Ethernet networks
US9553809B2 (en) 2013-04-16 2017-01-24 Amazon Technologies, Inc. Asymmetric packet flow in a distributed load balancer
US20150039731A1 (en) 2013-05-26 2015-02-05 Connectloud, Inc. Method and Apparatus to Securely Process Streams of Data of Compute Devices of Private Enterprise Clouds in Batch from the Public Cloud
US9055095B2 (en) * 2013-06-14 2015-06-09 Microsoft Technology Licensing, Llc DOS detection and mitigation in a load balancer
US10635644B2 (en) * 2013-11-11 2020-04-28 Amazon Technologies, Inc. Partition-based data stream processing framework
US9912582B2 (en) * 2013-11-18 2018-03-06 Telefonaktiebolaget Lm Ericsson (Publ) Multi-tenant isolation in a cloud environment using software defined networking
US20160094668A1 (en) * 2014-09-29 2016-03-31 Alcatel-Lucent Usa Inc. Method and apparatus for distributed customized data plane processing in a data center
US10148575B2 (en) * 2014-12-22 2018-12-04 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive load balancing in packet processing
US9712386B1 (en) * 2015-02-18 2017-07-18 Amazon Technologies, Inc. Grouping routing resources for isolated virtual network traffic management
US10021196B1 (en) * 2015-06-22 2018-07-10 Amazon Technologies, Inc. Private service endpoints in isolated virtual networks
US9847938B2 (en) * 2015-07-31 2017-12-19 Nicira, Inc. Configuring logical routers on hardware switches
US9871731B2 (en) * 2015-09-30 2018-01-16 Microsoft Technology Licensing, Llc Data plane manipulation in a load balancer

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102119512A (zh) * 2008-08-11 2011-07-06 微软公司 分布式负载平衡器
CN104680377A (zh) * 2013-11-27 2015-06-03 上海墨芋电子科技有限公司 一种新型云计算技术解决通信行业网络系统性能瓶颈的方法

Also Published As

Publication number Publication date
US20170093724A1 (en) 2017-03-30
WO2017058641A1 (en) 2017-04-06
US9871731B2 (en) 2018-01-16
EP3357216B1 (en) 2022-02-23
US10447602B2 (en) 2019-10-15
US20200053008A1 (en) 2020-02-13
US20180183713A1 (en) 2018-06-28
EP3357216A1 (en) 2018-08-08
CN108141469A (zh) 2018-06-08
US10992582B2 (en) 2021-04-27

Similar Documents

Publication Publication Date Title
CN108141469B (zh) 负载均衡器中的数据平面操纵
US11438194B2 (en) Scalable tenant networks
CN110392999B (zh) 分布式计算系统中的虚拟过滤平台
EP2907028B1 (en) Virtual machine multicast/broadcast in virtual network
CN106464529B (zh) 隔离在线计算服务的一部分的方法及装置
CN108293004B (zh) 用于网络切片管理的系统和方法
US11088944B2 (en) Serverless packet processing service with isolated virtual network integration
US9749145B2 (en) Interoperability for distributed overlay virtual environment
US9756121B2 (en) Optimizing routing and load balancing in an SDN-enabled cloud during enterprise data center migration
US20200092252A1 (en) Domain name system operations implemented using scalable virtual traffic hub
US20200092193A1 (en) Scalable virtual traffic hub interconnecting isolated networks
US9584479B2 (en) Virtual firewall load balancer
US10484282B2 (en) Interconnecting multiple separate openflow domains
US10680936B2 (en) Determining shortcut rules for bypassing waypoint network device(s)
US11689447B2 (en) Enhanced dynamic encryption packet segmentation
US20160028834A1 (en) Traffic engineering of cloud services
CN118176697A (zh) 私有网络之间的安全双向网络连接性系统
JP2023520777A (ja) マルチ・ネットワーク・インターフェース対応の処理システムにおけるインバウンド・トラフィックの動的なバランシング

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