CN104717137B - 管理覆盖网络中的数据流的方法和系统 - Google Patents
管理覆盖网络中的数据流的方法和系统 Download PDFInfo
- Publication number
- CN104717137B CN104717137B CN201410687501.1A CN201410687501A CN104717137B CN 104717137 B CN104717137 B CN 104717137B CN 201410687501 A CN201410687501 A CN 201410687501A CN 104717137 B CN104717137 B CN 104717137B
- Authority
- CN
- China
- Prior art keywords
- nic
- main frame
- virtual
- data flow
- network
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000013507 mapping Methods 0.000 claims abstract description 36
- 230000005540 biological transmission Effects 0.000 claims abstract description 11
- 238000012546 transfer Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 description 29
- 230000006870 function Effects 0.000 description 24
- 239000000872 buffer Substances 0.000 description 15
- 238000004590 computer program Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 230000005012 migration Effects 0.000 description 6
- 238000013508 migration Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/72—Routing based on the source address
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0895—Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/0816—Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
- H04L41/0897—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/354—Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种用于在运行在具有网络接口卡(NIC)的主机中的虚拟转发部件处管理数据流的计算机实现的方法和系统以及用于管理数据流的系统。实施例涉及在虚拟转发部件处管理数据流。用于在运行在具有网络接口卡(NIC)的主机中的虚拟转发部件处管理数据流的方法从运行在所述主机中的虚拟机接收属于来源于所述虚拟机地数据流的分组。所述方法基于运行在所述主机中的多个虚拟机与多个网络标识符之间的映射识别用于所述数据流的网络标识符。所述映射由配置所述虚拟转发部件的网络控制器提供。所述方法利用所述网络标识符以及包括所述主机的网络地址的通道报头封装所述分组。所述方法将所封装的分组发送到所述NIC。所述NIC将所封装的分组发送到所述主机之外并发送向所述分组的目的地。
Description
技术领域
本发明涉及计算机网络,更具体地涉及管理覆盖网络中的数据流。
背景技术
在数据中心的环境中,典型的主机机器运行许多虚拟机(VM),这些虚拟机向其它虚拟或非虚拟机提供服务或从其接收服务。在提供或接收服务时,主机中的VM可以彼此通信或者可以与在其它主机上运行的其它VM通信。这些机器之间的通信是数据流的形式,数据流包括具有共同属性(例如共同报头)的数据分组。在某些情况下,主机中的VM共享附接到该主机中的一个或多个网络接口卡,以发送或接收数据流。
发明内容
实施例包括用于管理数据流的方法、系统和计算机程序产品。根据本发明的一个实施例,提供了本发明提供一种用于在运行在具有网络接口卡(NIC)的主机中的虚拟转发部件处管理数据流的计算机实现的方法。所述方法从运行在所述主机中的虚拟机接收属于来源于所述虚拟机的数据流的分组。所述方法在所述虚拟转发部件处通过所述主机,基于运行在所述主机中的多个虚拟机与多个网络标识符之间的映射,识别用于所述数据流的网络标识符。所述映射由配置所述虚拟转发部件的网络控制器提供。所述方法利用所述网络标识符以及包括所述主机的网络地址的通道报头封装所述分组。所述方法将所封装的分组发送到所述NIC。所述NIC将所封装的分组发送到所述主机之外并发送向所述分组的目的地。
根据本发明的另一实施例,提供了用于在运行在具有NIC的主机中的虚拟转发部件处管理数据流的计算机程序产品。所述计算机程序产品包括有形存储介质,其可由处理电路读取并存储由处理电路执行来执行方法的指令。所述方法从运行在所述主机中的虚拟机接收属于来源于所述虚拟机地数据流的分组。所述方法在所述虚拟转发部件处通过所述处理电路,基于运行在所述主机中的多个虚拟机与多个网络标识符之间的映射,识别用于所述数据流的网络标识符。所述映射由配置所述虚拟转发部件的网络控制器提供。所述方法利用所述网络标识符以及包括所述主机的网络地址的通道报头封装所述分组。所述方法将所封装的分组发送到所述NIC,其中所述NIC将所封装的分组发送到所述主机之外并发送向所述分组的目的地。
根据本发明的再一实施例,提供了一种用于管理数据流的系统。所述系统包括附接到或集成于主机的NIC。所述系统被配置为执行方法。所述方法从运行在所述主机中的虚拟转发部件接收多个数据流。所述多个数据流来源于运行在所述主机中的多个虚拟机。所述多个数据流中的每个携带不同的网络标识符以及不同的通道报头。所述方法由所述NIC使用所述多个网络标识符将由所述多个通道报头限定的多个通道映射到所述多个数据流。所述方法通过所述多个通道将所述多个数据流发送到所述主机之外。
通过本发明的技术实现附加特征和优点。本发明的其它实施例和方面在本文中进行了详细描述,并被认为是所要求权利的发明的一部分。为了更好地理解具有优点和特征的本发明,参考说明书和附图。
附图说明
在说明书完结时的权利要求中特别地指出并清楚地主张了被认作本发明的主题。结合附图,从下面的详细描述中,本发明的上述和其他特征和优点是显然的,其中:
图1描绘根据一实施例的云计算节点;
图2描绘根据一实施例的云计算环境;
图3描绘根据一实施例的抽象模型层;
图4描绘根据一实施例的用于管理数据流的系统的框图;
图5描绘根据一实施例的用于在网络中的虚拟转发部件处转发分组的流程图;
图6描绘根据一实施例的用于在NIC处管理数据流的流程图;
图7描绘根据一实施例的用于使用数据流与通道之间的映射处理拥塞消息的流程图;
图8描绘根据一实施例的用于配置虚拟转发部件的流程图。
具体实施方式
示例实施例涉及通过运行在主机中的虚拟转发部件(例如虚拟交换机、虚拟路由器等)以及通过附接到或集成于主机的NIC管理主机处的数据流。在一个实施例中,虚拟转发部件识别用于将数据流传送出主机的覆盖网络和通道。这样的识别基于运行在主机中的虚拟机、数据流要发送到的虚拟机、识别覆盖网络的网络标识符以及虚拟机的位置之间的映射。在一个实施例中,配置虚拟转发部件的网络控制器向虚拟转发部件提供映射。虚拟转发部件经由NIC并通过通道将数据流发送到它们各自的目的地。
在一个实施例中,虚拟转发部件将不同的网络标识符附接到不同数据流的分组。虚拟转发部件还可以取决于分组的目的地的位置利用通道报头封装数据流的分组。例如,对于运行在主机中的第一虚拟机向运行在同一主机中的第二虚拟机发送的第一数据流,运行在主机中的虚拟转发部件在不封装第一数据流中的分组的情况下转发第一数据流。对于第一虚拟机向运行在另一主机中的第三虚拟机发送的第二数据流,虚拟转发部件通过利用限定通道的通道报头封装第二数据流中的分组而转发第二数据流。
在操作时,运行在主机中的虚拟转发部件可以使得建立若干通道。这些通道终止于运行在其它主机中的其它虚拟转发部件处。当通过通道将数据流从该主机传送到其它主机时,附接到主机的网络接口卡(NIC)使用网络标识符将数据流映射到通道。在一个实施例中,当NIC从在NIC和虚拟转发部件下游的转发部件接收到拥塞消息时,NIC使用此映射以识别一个或多个特定数据流。当接收到这样的消息时,NIC向虚拟转发部件通知与特定流相关的拥塞,使得虚拟转发部件可以控制针对该特定流的数据率。
在一个实施例中,虚拟转发部件使用在虚拟转发部件处实现的若干虚拟队列来以每个流为基础控制针对数据流的数据率。这些队列在数据的分组被发送到分组的相应目的地之前存储数据流的分组。
首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在参考图1,其中显示了云计算节点的框图。图1显示的云计算节点10仅仅是适合的云计算节点的一个示例,不应对这里描述的实施例的功能和使用范围带来任何限制。总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。
云计算节点10具有计算机系统/服务器/主机12,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器12一起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。
计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备(也称为处理设备)的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12可以包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行这里所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如NIC,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器12一起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
现在参考图2,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C、数字摄像机54D、数字音频记录设备54E和/或数字照相机54N。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图2显示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
现在参考图3,其中显示了云计算环境50(图2)提供的一组功能抽象层。首先应当理解,图3所示的组件、层以及功能都仅仅是示意性的,实施例不限于此。如图3所示,提供下列层和对应功能:
硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主机,例如系统;基于RISC(精简指令集计算机)体系结构的服务器,例如IBM系统;IBM系统;IBM系统;存储设备;网络和网络组件,诸如NIC、集线器、交换机、路由器、网桥以及网关。软件组件的例子包括:网络应用服务器软件,例如IBM应用服务器软件;数据库软件,例如IBM数据库软件;软件定义网络软件,例如用于虚拟环境的IBM SDN(SDN VE)。(IBM,zSeries,pSeries,xSeries,BladeCenter,WebSphere,DB2以及SDN VE是国际商业机器公司在全世界各地的注册商标)。
虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟覆盖网络、虚拟私有网络以及诸如虚拟交换机和路由器的虚拟网络部件)、虚拟应用和操作系统,以及虚拟客户端。
在一个示例中,管理层64可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
工作负载层66提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;交易处理;以及移动桌面。
现在转向图4,将更详细地说明系统400的示例。在图4所描绘的示例中,系统400是包括配置为通过网络401通信的若干主机402、404和406的数据中心环境。系统400还包括网络控制器408,其管理在承载(underlying)网络上运行的若干覆盖网络(未示出),承载网络在该示例中是网络401。
在一个实施例中,系统400中的主机托管若干虚拟机(VM)以及虚拟转发部件(例如虚拟交换机)。取决于其处理和存储资源,主机可以运行几百个VM以及一个或多个为VM转发数据的虚拟转发部件。系统400中的主机还包括附接到主机或集成于主机的一个或多个NIC。
如图所示,在此示例中,系统400的主机402包括若干虚拟机410和412、虚拟转发部件414以及NIC 416。VM 410和412由主机402的系统管理程序(hypervisor,未示出)运行。在一个实施例中,VM 410和412是运行客户端和/或服务器应用的终端系统。VM 410和412可以通过虚拟转发部件414彼此通信或与在系统400的其它主机中运行的其它终端系统进行通信。VM410和412可以属于数据中心环境中的同一租户或不同租户。在一个实施例中,虚拟转发部件414隔离不同租户的VM,使得进出一个租户的VM的数据流不能被另一租户的VM看到。
图4的左下侧描述了虚拟转发部件414的示例的更详细的图。如图所示,虚拟转发部件414包括交换逻辑418、配置数据库420、转发表422、若干缓冲器428、以及若干端口430、432和434。交换逻辑418是控制平面,其确定对针对虚拟转发部件414的进入数据分组执行的动作。在一个实施例中,网络控制器408通过例如使用针对安全信道436的协议(例如,开放流(OpenFlow)协议)向交换逻辑418提供流条目,而配置交换逻辑418。交换逻辑418填充或更新转发表422,转发表422是指明进入数据分组要被转发到的虚拟转发部件的端口的数据平面。为了填充或更新转发表422,交换逻辑418使用存储在配置数据库420中的信息的一些。存储在配置数据库420中的信息被用于配置虚拟转发部件414——多个端口、数据流映射、通道、覆盖网络的视图以及网络策略(例如,端口隔离、端口安全、服务质量(QoS)等),仅举几个例子。在一个实施例中,网络控制器408使用针对配置通道438的协议(例如,开放vSwitch数据库(OVS DB)协议)提供信息以存储在配置数据库420中。
端口430、432和434是虚拟转发部件414的虚拟端口或虚拟接口(VIF)。虚拟转发部件414通过这些端口接收或发送分组。在此示例中,端口430被配置为从VM 410接收分组以及向VM 410发送分组。端口432被配置为从VM 412接收分组以及向VM 412发送分组。端口434被配置为从NIC 416接收分组以及向NIC 416发送分组。特别地,通过端口434进出虚拟转发部件414的分组包括向运行在系统400的其它主机中的终端系统发送或从其接收的分组。
虚拟转发部件414的缓冲器428被配置为存储分组。在一个实施例中,一些缓冲器428是配置为存储进入的分组的入口缓冲器。一些缓冲器428是出口缓冲器,其配置为在对分组作出转发决定之后但在将分组发送到虚拟转发部件414之外之前存储分组。在一个实施例中,虚拟转发部件414使用缓冲器428控制数据率或实现QoS。
网络控制器408是软件定义网络控制器,其配置为在网络401内作出路由决定。网络控制器408建立一个或多个诸如信道436和438的安全信道来配置运行在主机中的虚拟转发部件以及建立虚拟转发部件之间的链路(例如通道)的通信属性。虽然网络控制器408被描绘为分离组件,但网络配置功能可以替代地以独立或分布的形式实施在系统400中的一个或多个主机中。网络控制器408可以提供高可用性。
如上所述,网络控制器408还管理运行在网络401上的覆盖网络。在一个实施例中,覆盖网络连接运行在系统400的主机中的VM。具体地,网络控制器408将覆盖网络分配给租户,使得运行在主机中的租户的VM可以经由所分配的覆盖网络彼此通信。
在一个实施例中,网络控制器408使用终止在系统400中的主机的虚拟转发部件处的通道实现覆盖网络。网络控制器408监视主机以检测VM的提供和迁移。当用于特定租户的VM被提供在或迁移到特定主机中时,网络控制器408指令该特定主机的虚拟转发部件与该特定租户的其它VM所运行在的其它主机中的虚拟转发部件建立通道。替代地,网络控制器408可以指令该其它主机中的虚拟转发部件启动与该特定主机中的虚拟转发部件的通道的建立。虚拟转发部件如所指令地建立通道,除非虚拟转发部件已经建立了这样的通道。
在一个实施例中,网络控制器408创建和更新VM、VM位置、覆盖网络和通道之间的映射(未示出)。网络控制器408可以向VM分配网络地址(例如,因特网协议(IP)和媒介访问控制(MAC)地址),并使用所述网络地址来识别VM。网络控制器408可以使用VM运行在其中的主机的网络地址作为VM的位置。网络控制器408可以向覆盖网络分配网络标识符以唯一地识别覆盖网络。在一个实施例中,网络标识符是24比特的值,其可以唯一地识别超过1600万个覆盖网络。网络控制器408可以使用主机的网络地址(例如,NIC的端口的IP和MAC地址)以识别通道的端点。在一个实施例中,网络控制器408通过填充或更新主机的配置数据库而向主机中的虚拟转发部件提供映射。
运行在系统400中的虚拟转发部件使用所提供的映射以转发进入的分组。如图所示,虚拟转发部件414的配置数据库420包括网络控制器408提供的映射,在此示例中,其被描绘为一个或多个表439。在一个实施例中,表439包括运行在主机402中的VM。每个VM经由网络标识符与覆盖网络关联。在该表中,运行在主机402中的特定VM与该特定VM可以与其通信的一个或多个VM(例如,与该特定VM共享同一网络标识符的VM)相关联。这样的VM可以位于主机402中或其它主机中。表中每一对特定VM与所关联的VM识别数据流,因为该特定VM是该数据流的分组的源点,该对中的另一VM是该数据流中的分组的目的地。换言之,该特定VM的网络地址和该关联的VM的网络地址识别数据流。除了该对VM的网络地址之外,网络标识符对于唯一地识别数据流可能也是必要的,因为不同覆盖网络的地址空间可能重叠。
当特定VM和所关联的VM运行在系统400的不同主机中时,这两个VM以及它们的网络标识符所识别的数据流与通道关联。如上所述,通道由两个主机的网络地址标识。因此,数据流与两个主机的网络地址相关联。当特定VM和所关联的VM运行在同一主机402中时,这两个VM所标识的数据流可以不必与通道关联,因为该数据流的分组不需要离开主机402。
当虚拟转发部件414将数据流的分组从运行在主机402中的VM转发到运行在另一主机(例如,主机404)中的VM时,虚拟转发部件414使用映射识别与该数据流相关联的通道,并通过所识别的通道发送分组。换言之,虚拟转发部件414利用通道报头封装分组,通道报头包括主机402的网络地址作为源地址以及主机404的网络地址作为目的地地址。通道报头还包括与此数据流关联的网络标识符,以唯一地识别通道端点。此通道的一端是虚拟转发部件414,因为虚拟转发部件414用通道报头封装该数据流的分组。此通道的另一端是运行在主机404中的虚拟转发部件(未示出),其解封装该数据流的分组。换言之,运行在主机404中的虚拟转发部件在将分组传递到运行在主机404中的目的地VM之前,从分组剥除通道报头和网络标识符。需要注意的是,虚拟转发部件414不需要依赖于广播或多播来找到目的地VM的位置,因为网络控制器408提供了该位置。
当虚拟转发部件414将数据流从运行在主机402中的VM转发到运行在系统400的其它主机中的其它VM时,虚拟转发部件414通过端口434将数据流发送到NIC 416。图4的右下侧描述了NIC 416的示例的更具体的图。如图所示,在此示例中,NIC 416包括NIC控制器440和表442。在一个实施例中,NIC控制器440被配置为不仅查看从虚拟转发部件414接收的封装分组的通道报头,还查看网络标识符和封装分组的内部报头,以便将数据流映射到通道。这样的映射被描绘为表442。在表442中,数据流(由封装的分组的源和目的地地址以及它们的网络标识符标识)与通过其发送数据流的通道关联。一个或多个网络标识符可以与单个通道关联,因为单个通道的端点可以托管一个或多个覆盖网络的VM。
当虚拟转发部件414转发数据流时,虚拟转发部件414将每个数据流与缓冲器428之一关联。用于数据流的缓冲器允许虚拟转发部件414以每个流为基础控制数据率或实现QoS。当数据流的源和目的地是主机402中的VM时,虚拟转发部件414使用与此数据流关联的缓冲器来为此数据流控制数据率或实现QoS。当存在超过其两个目的地是运行在系统400的其它主机中的VM的数据流时,虚拟转发部件414使用与数据流关联的缓冲器来为这些数据流控制数据率或实现QoS。
在一个实施例中,虚拟转发部件414对缓冲器428分配不同的优先等级,并因此将这些优先等级分配到不同的数据流。通过这些具有不同优先等级的缓冲器,一个实施例的虚拟转发部件414实现增强的传输选择(ETS)以及基于优先级的流控制(PFC)。换言之,虚拟转发部件414可以通过相对于具有较低优先等级的数据流照顾具有较高优先等级的数据流来转发数据流,或者可以阻止或抑制与特定优先等级关联的特定数据流来促进特定数据流的分组的无损传输。
在一个实施例中,NIC 416使用数据流与通道之间的映射来帮助虚拟转发部件414实现ETS和PFC。例如,NIC 416可以接收通道的拥塞消息。通过该映射,NIC 416可以识别与通道关联的数据流并向虚拟转发部件414通知拥塞消息。虚拟转发部件414可以接着使用与数据流关联的缓冲器抑制数据流,或者向作为该数据流的源的VM发送消息以抑制该VM处的数据流。
在一个实施例中,NIC与一个或多个中间设备(middlebox)部件(未示出)共享数据流与通道之间的映射,所述中间设备部件诸如负载平衡器、WAN优化器、网络地址转换部件、指令检测部件、防火墙等。在一个实施例中,这些中间设备部件作为软件应用(例如虚拟机)运行在主机420中并与虚拟转发部件414和NIC 416通信以向运行在主机402中的VM提供中间设备服务。替代地或结合地,中间设备部件可被实现为连接到主机402的分离硬件设备以与虚拟转发部件414通信。这些中间设备部件可以使用NIC 416所提供映射来以每个流为基础提供中间设备服务。
在替代实施例中,NIC 416代替虚拟转发部件414作为主机之间建立的通道的端点而工作。在这样的实施例中,NIC 416被配置为与网络控制器408进行通信以接收网络控制器408创建和更新的映射。NIC控制器440在将分组发送出主机402之前利用通道报头封装来自运行在主机402中的虚拟机的分组。
图5描绘根据一个实施例的用于在网络中的虚拟转发部件处转发分组的处理流。在一个实施例中,图5中示出的处理流由图4的虚拟转发部件414执行。在块502,接收来自网络控制器的映射。在一个实施例中,该映射是VM、VM的位置、覆盖网络以及通道之间的映射,用于将分组从所述VM传送到图4的系统400的其它主机中的其它VM。在一个实施例中,网络控制器408创建此映射并且只要网络控制器408检测到网络拓扑的变化时就更新此映射。例如,只要VM被提供在主机中或者被从一个主机迁移到另一主机时,网络控制器408就更新映射。在一个实施例中,仅当更新是相关的,例如仅当VM被提供在或迁移到主机402并且另一主机中的另一VM要连接到主机402中托管的VM之一时,网络控制器408才向虚拟转发部件404发送对映射的更新。
在块504,从运行在主机中的VM接收分组。在一个实施例中,此分组是来源于VM并前往同一目的地的数据流的初始分组。对于此数据流的后续分组,虚拟转发部件414可能不需要执行针对块506-516所描述的处理的一些或全部,并且可以依赖于高速缓存(cache)。
在块506,判定分组的目的地是否位于源VM的主机内。在一个实施例中,通过查找映射识别源VM的网络标识符以及识别目的地VM的位置(具有相同的网络标识符)来进行此判定。当目的地的位置匹配源VM的位置,则判定该目的地在源VM的主机内。如果在块506中判定分组的目的地位于源VM的主机中,则执行块514以将分组转发到源VM的主机内的目的地。接着,处理在块516处继续,在下文将对其进行进一步的描述。
如果在块506中判定分组的目的地不位于源VM的主机中,则执行块508以识别通道。在一个实施例中,虚拟转发部件414通过查找映射找到具有源和目的地VM的位置作为通道端点的通道来识别该通道。
在块510,利用源VM的网络标识符和在块508中识别的通道的通道报头封装分组。通道报头包括源和目的地VM的位置,在一个实施例中,所述位置是该源和目的地VM的主机的网络地址。在块512,将分组发送到附接到或集成于源VM的主机的NIC。
在块512,优先等级被分配到分组所属的数据流。在一个实施例中,虚拟转发部件414通过将数据流与优先等级所分配到的缓冲器相关联而将优先等级分配到数据流。在一个实施例中,虚拟转发部件414向不同的数据流分配不同的优先等级,并使用优先等级来以每个流为基础实现ETS和PFC。
图6描绘用于在附接到或集成于数据流的源VM的主机的NIC处管理数据流的处理流。在一个实施例中,图6中所示的处理流由图4的NIC 416执行。在块602,接收来自运行在主机中的虚拟转发部件的分组。此分组来源于运行在主机中的VM之一。通过服务源VM的虚拟转发部件利用网络标识符和通道报头封装该分组。通道报头的源和目的地地址包括该主机和该分组的目的地VM所运行在的另一主机的网络地址。
在块604,分组所属的数据流被识别。在一个实施例中,NIC 416被配置为检查网络标识符以及分组的内部报头以识别分组的数据流。具体的,NIC检查内部报头中的源和目的地VM的网络地址。NIC可以基于这些网络地址和网络标识符唯一地识别数据流。
在块606,将在块604中识别的数据流映射到通道。在一个实施例中,NIC 416使用分组的通道报头识别通道。NIC 416将数据流(例如,VM的源和目的地地址以及网络标识符)映射到通道(例如,源和目的地VM所运行于的主机的网络地址)。
在块608,将分组发送出主机。接着,通过承载网络的网络组件基于存储在通道报头中的信息转发分组。即,不在意封装分组的内部报头和网络标识符的网络组件将分组转发到目的地VM的主机。
图7描绘使用数据流与通道之间的映射处理拥塞消息的处理流。在一个实施例中,图7中所示的处理流由图4的NIC 416执行。在块702,接收拥塞消息。该拥塞消息来源于图4的网络401中在NIC下游的网络组件。拥塞消息指示通道化流量(例如,通道化IP流量)贡献拥塞并因此应当调节或阻止用于该流量的数据率。
在块704,为通道识别一个或多个数据流。NIC 416识别为接收拥塞消息所针对的通道。NIC 416使用在图6的块606中创建的映射来识别与该通道关联的一个或多个数据流。
在块706,向NIC发送数据流的物理转发部件被通知拥塞。在一个实施例中,NIC416将拥塞消息中继到虚拟转发部件。替代地或结合地,NIC 416可以指定NIC从虚拟转发部件接收的数据流中的哪个贡献该拥塞。虚拟转发部件可以针对贡献数据流调节数据率。
图8描绘用于配置虚拟转发部件的处理流。在一个实施例中,图8中所示的处理流由图4的网络控制器408执行。在块802,检测VM提供和迁移。网络控制器408检测在网络控制器408管理的虚拟转发部件之一中提供VM或VM迁移到其中。在一个实施例中,网络控制器408通过轮询虚拟转发部件监视用于VM的提供或迁移的虚拟转发部件。替代地或结合地,网络控制器408配置对网络控制器408的提供或迁移中所涉及的虚拟转发部件或系统管理程序。
在块804,更新配置参数之间的映射。例如,如果新提供VM,则网络控制器408分配网络标识符和网络地址。如果提供VM,则网络控制器408将VM映射到VM的位置,并且如果VM迁移到新位置(例如,从一个主机到另一个主机),则更新VM与其位置之间的映射。网络控制器408还将VM映射到共享同一网络标识符的其它VM。
在块806,配置服务所提供的或迁移的VM的虚拟转发部件。在一个实施例中,网络控制器408使用OVS DB协议将相关的配置参数更新发送到虚拟转发部件。网络控制器408还可以将更新发送到虚拟转发部件的控制平面,使得虚拟转发部件根据网络控制器处的更新而改变其转发行为。
在块808,指令虚拟转发部件建立用于所提供或迁移的VM的通道。在一个实施例中,网络控制器408指令服务VM的虚拟转发部件建立与服务其它VM的虚拟转发部件建立通道,所述其他VM在其它主机中运行并与所提供或迁移的VM共享相同网络标识符。替代地,网络控制器408可以指令其它主机中的虚拟转发部件启动与服务所提供或迁移的VM的虚拟转发部件的通道的建立。
技术效果和益处包括能够在虚拟转发部件处以每个流为基础控制数据流的数据率而不论数据流是否在同一主机中的两个虚拟机之间还是在不同主机中的两个虚拟机之间交换。
本领域的普通技术人员将理解,实施例的方面可以被实施为系统、方法或计算机程序产品。因此,实施例的方面可以采用完全硬件实施例的形式、完全软件实施例的形式(包括固件、常驻软件、微代码等)、或者软件和硬件方面组合的实施例形式,这里,它们全部可被一般地称为例如“电路”、“模块”或“系统”。此外,实施例的方面可以采用实现在一个或多个计算机可读存储设备中的计算机程序产品的形式,该计算机可读存储设备上实现由计算机可读程序代码。
实施例的一个或多个能力可以被实现为软件、固件、硬件或它们的某些组合。此外,一个或多个所述能力可被仿真。
一个实施例可以是用于使处理器电路能够执行本发明的要素的计算机程序产品,该计算机程序产品包括处理电路可读取的计算机可读存储介质,其存储由处理电路执行来执行方法的指令。
计算机可读存储介质是有形的非暂时性存储介质,其上记录有指令用于使得处理器电路执行方法。“计算机可读存储介质”是非暂时性的至少因为一旦指令记录在介质上所记录的指令可以以后被处理器电路在独立于记录时间的时间读取一次或多次。非暂时性的“计算机可读存储介质”包括仅在上电时保持记录的信息的设备(易失性设备)以及无论是否上电都保持记录的信息的设备(非易失性设备)。例如,“非暂时性存储介质”的示例非穷举性列表包括但不限于:半导体存储设备,例如包括其上记录指令的诸如RAM的存储阵列或诸如锁存的存储电路;机械编码设备,诸如其上记录指令的打孔卡或凹槽中的突起结构;光学可读设备,诸如其上记录指令的CD或DVD;以及磁编码设备,诸如其上记录指令的磁带或磁盘。
计算机可读存储介质的示例的非穷举列表包括以下:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式压缩盘只读存储器(CD-ROM)。程序代码可以通过网络、例如因特网、局域网、广域网和/或无线网从外部计算机或外部存储设备分布到相应计算/处理设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口卡从网络接收程序,并转发该程序,以供存储在各个计算/处理设备中的计算机可读存储设备中。
用于执行实施例的方面的操作的计算机程序指令可以是例如汇编代码、机器代码、微代码、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Java、Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了实施例的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。
这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机程序指令存储在计算机可读存储介质中,这些指令使得计算机、其它可编程数据处理装置或其他设备以特定方式工作。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供用于实现流程图和/或框图中的一个或多个方框中规定的功能/动作的处理。
附图中的流程图和框图显示了根据多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (13)
1.一种用于在虚拟转发部件处管理数据流的计算机实现的方法,所述虚拟转发部件运行在具有网络接口卡NIC的主机中,所述方法包括:
从运行在所述主机中的虚拟机接收属于来源于所述虚拟机的数据流的分组;
在所述虚拟转发部件处通过所述主机,基于运行在所述主机中的多个虚拟机与多个网络标识符之间的映射识别用于所述数据流的网络标识符,其中所述映射由配置所述虚拟转发部件的网络控制器提供;
利用所述网络标识符以及包括所述主机的网络地址的通道报头封装所述分组;以及
将所封装的分组发送到所述NIC,其中所述NIC将所封装的分组发送到所述主机之外并发送向所述分组的目的地;
创建多个队列,用于存储来源于所述多个虚拟机的多个数据流;
从所述NIC接收消息,所述消息指示特定数据流需要数据率调节;以及
通过使用特定队列调节针对所述特定数据流的数据率。
2.如权利要求1所述的方法,还包括判定所述分组是否要被发送到所述主机之外。
3.如权利要求2所述的方法,其中基于所述判定将所封装的分组发送到所述NIC。
4.如权利要求2所述的方法,还包括基于所述判定在不封装所述分组的情况下将所述分组转发到运行在所述主机中的另一虚拟机。
5.如权利要求2所述的方法,其中由所述通道报头限定的通道终止在另一主机中运行的另一虚拟转发部件处,其中所述另一虚拟转发部件将所述分组转发到运行在所述另一主机中的另一虚拟机。
6.如权利要求1所述的方法,其中所述NIC使用来源于所述多个虚拟机的多个数据流携带的多个网络标识符,将多个通道映射到所述多个数据流。
7.如权利要求1所述的方法,其中,所述NIC在从所述NIC和所述虚拟转发部件下游的网络设备接收到拥塞消息时,将所述消息发送到所述虚拟转发部件,其中所述NIC使用所述拥塞消息以及所述数据流与所述虚拟机之间的映射识别所述特定数据流。
8.一种用于在虚拟转发部件处管理数据流的系统,所述虚拟转发部件运行在具有网络接口卡NIC的主机中,所述系统包括配置为执行权利要求1-7中的任一项的方法步骤的装置。
9.一种用于管理数据流的计算机系统,所述系统包括:
附接到或集成于主机的网络接口卡NIC,所述系统被配置为执行方法,所述方法包括:
从运行在所述主机中的虚拟转发部件接收多个数据流,所述多个数据流来源于运行在所述主机中的多个虚拟机,所述多个数据流中的每个携带不同的网络标识符以及不同的通道报头;
由所述NIC使用所述多个网络标识符将由所述多个通道报头限定的多个通道映射到所述多个数据流;
通过所述多个通道将所述多个数据流发送到所述主机之外;
创建多个队列,用于存储来源于所述多个虚拟机的多个数据流;
从所述NIC接收消息,所述消息指示特定数据流需要数据率调节;以及
通过使用特定队列调节针对所述特定数据流的数据率。
10.如权利要求9所述的系统,所述方法还包括:
从在所述NIC和所述虚拟转发部件下游的转发部件接收针对特定通道的拥塞消息;
基于所述多个通道与所述多个数据流之间的映射识别特定数据流;以及向所述虚拟转发部件通知所述拥塞消息和所述特定数据流。
11.如权利要求10所述的系统,其中所述虚拟转发部件使用所述转发部件的多个队列之一调节用于所述特定数据流的数据率。
12.如权利要求11所述的系统,其中所述转发部件创建所述多个队列,用于在将所述数据流发送到所述NIC之前存储所述多个数据流。
13.如权利要求9所述的系统,其中所述转发部件利用所述多个不同的通道报头封装不同的数据流的分组。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/104,455 | 2013-12-12 | ||
US14/104,455 US9124536B2 (en) | 2013-12-12 | 2013-12-12 | Managing data flows in overlay networks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104717137A CN104717137A (zh) | 2015-06-17 |
CN104717137B true CN104717137B (zh) | 2018-02-02 |
Family
ID=53369806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410687501.1A Active CN104717137B (zh) | 2013-12-12 | 2014-11-25 | 管理覆盖网络中的数据流的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (2) | US9124536B2 (zh) |
CN (1) | CN104717137B (zh) |
Families Citing this family (74)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5618886B2 (ja) * | 2011-03-31 | 2014-11-05 | 株式会社日立製作所 | ネットワークシステムおよび計算機振り分け装置、計算機振り分け方法 |
US10193771B2 (en) | 2013-12-09 | 2019-01-29 | Nicira, Inc. | Detecting and handling elephant flows |
US9967199B2 (en) | 2013-12-09 | 2018-05-08 | Nicira, Inc. | Inspecting operations of a machine to detect elephant flows |
US20150263885A1 (en) * | 2014-03-14 | 2015-09-17 | Avni Networks Inc. | Method and apparatus for automatic enablement of network services for enterprises |
US9680708B2 (en) | 2014-03-14 | 2017-06-13 | Veritas Technologies | Method and apparatus for cloud resource delivery |
JP6277853B2 (ja) * | 2014-05-12 | 2018-02-14 | 富士通株式会社 | 制御装置、通信装置、および、通信方法 |
WO2015184586A1 (zh) * | 2014-06-03 | 2015-12-10 | 华为技术有限公司 | 开放流通信方法、系统、控制器和业务网关 |
US9338092B1 (en) | 2014-06-20 | 2016-05-10 | Amazon Technologies, Inc. | Overlay networks for application groups |
US10581737B1 (en) * | 2014-06-20 | 2020-03-03 | Amazon Technologies, Inc. | Acceleration of data routing in an application group |
US9692698B2 (en) * | 2014-06-30 | 2017-06-27 | Nicira, Inc. | Methods and systems to offload overlay network packet encapsulation to hardware |
US9763135B1 (en) * | 2014-08-06 | 2017-09-12 | Cisco Technology, Inc. | Load balancing with mobile resources |
US10038629B2 (en) | 2014-09-11 | 2018-07-31 | Microsoft Technology Licensing, Llc | Virtual machine migration using label based underlay network forwarding |
US9923800B2 (en) | 2014-10-26 | 2018-03-20 | Microsoft Technology Licensing, Llc | Method for reachability management in computer networks |
US9936014B2 (en) * | 2014-10-26 | 2018-04-03 | Microsoft Technology Licensing, Llc | Method for virtual machine migration in computer networks |
US20160182300A1 (en) * | 2014-12-17 | 2016-06-23 | Cisco Technology, Inc., A Corporation Of California | Selective Configuring of Throttling Engines for Flows of Packet Traffic |
US9693282B2 (en) * | 2014-12-23 | 2017-06-27 | Industrial Technology Research Institute | Control method, controller and packet processing method for software-defined network |
US10142287B2 (en) * | 2015-04-06 | 2018-11-27 | Nicira, Inc. | Distributed network security controller cluster for performing security operations |
US9965369B2 (en) | 2015-04-28 | 2018-05-08 | Viasat, Inc. | Self-organized storage nodes for distributed delivery network |
US9971624B2 (en) | 2015-05-17 | 2018-05-15 | Nicira, Inc. | Logical processing for containers |
US10021172B2 (en) * | 2015-09-23 | 2018-07-10 | Nec Corporation | Software driven long-term-evolution core network for mobile access |
CN105207856A (zh) * | 2015-10-28 | 2015-12-30 | 广州西麦科技股份有限公司 | 一种基于sdn虚拟交换机的负载均衡的系统及方法 |
US10871981B2 (en) | 2015-11-01 | 2020-12-22 | Nicira, Inc. | Performing logical network functionality within data compute nodes |
US9755979B2 (en) | 2015-11-19 | 2017-09-05 | Viasat, Inc. | Enhancing capacity of a direct communication link |
US10063469B2 (en) | 2015-12-16 | 2018-08-28 | Nicira, Inc. | Forwarding element implementation for containers |
US9985890B2 (en) | 2016-03-14 | 2018-05-29 | International Business Machines Corporation | Identifying a local congestion control algorithm of a virtual machine |
US20170272400A1 (en) * | 2016-03-17 | 2017-09-21 | Microsoft Technology Licensing, Llc | Network virtualization of containers in computing systems |
CN109076006B (zh) | 2016-04-13 | 2021-10-15 | 诺基亚技术有限公司 | 基于覆盖网络的多租户虚拟专用网络 |
US10045252B2 (en) * | 2016-06-02 | 2018-08-07 | International Business Machines Corporation | Virtual switch-based congestion control for multiple TCP flows |
US10404788B2 (en) * | 2016-06-30 | 2019-09-03 | Alibaba Group Holding Limited | Express route transmissions between virtual machines and cloud service computing devices |
CN107566150B (zh) * | 2016-07-01 | 2020-04-28 | 华为技术有限公司 | 处理云资源的方法和物理节点 |
US10419330B2 (en) | 2016-07-21 | 2019-09-17 | Alibaba Group Holding Limited | Express route transmissions between virtual machines and cloud service computing devices |
CA3034809C (en) * | 2016-08-27 | 2021-07-06 | Nicira, Inc. | Extension of network control system into public cloud |
US10397136B2 (en) * | 2016-08-27 | 2019-08-27 | Nicira, Inc. | Managed forwarding element executing in separate namespace of public cloud data compute node than workload application |
US10333959B2 (en) | 2016-08-31 | 2019-06-25 | Nicira, Inc. | Use of public cloud inventory tags to configure data compute node for logical network |
US10057170B2 (en) * | 2016-09-23 | 2018-08-21 | Gigamon Inc. | Intelligent dropping of packets in a network visibility fabric |
CN109391517B (zh) * | 2017-08-02 | 2023-06-27 | 联想企业解决方案(新加坡)有限公司 | 用于监控覆盖网络中的数据流量的方法 |
US10567482B2 (en) | 2017-08-24 | 2020-02-18 | Nicira, Inc. | Accessing endpoints in logical networks and public cloud service providers native networks using a single network interface and a single routing table |
US10491516B2 (en) | 2017-08-24 | 2019-11-26 | Nicira, Inc. | Packet communication between logical networks and public cloud service providers native networks using a single network interface and a single routing table |
WO2019046071A1 (en) | 2017-08-27 | 2019-03-07 | Nicira, Inc. | EXECUTING AN ONLINE SERVICE IN A PUBLIC CLOUD |
US20190089640A1 (en) * | 2017-09-21 | 2019-03-21 | Microsoft Technology Licensing, Llc | Virtualizing dcb settings for virtual network adapters |
US10860358B2 (en) | 2017-09-21 | 2020-12-08 | Microsoft Technology Licensing, Llc | Virtualizing datacenter bridging settings for virtual network adapters |
US10862753B2 (en) | 2017-12-04 | 2020-12-08 | Nicira, Inc. | High availability for stateful services in public cloud logical networks |
US10601705B2 (en) | 2017-12-04 | 2020-03-24 | Nicira, Inc. | Failover of centralized routers in public cloud logical networks |
US10693671B2 (en) * | 2017-12-18 | 2020-06-23 | Cisco Technology, Inc. | Distributing traffic to multiple destinations via an isolation network |
CN108491457A (zh) * | 2018-03-02 | 2018-09-04 | 上海云轴信息科技有限公司 | 一种用于同步公共云资源的方法及设备 |
US11343229B2 (en) | 2018-06-28 | 2022-05-24 | Vmware, Inc. | Managed forwarding element detecting invalid packet addresses |
US11012500B2 (en) * | 2018-07-27 | 2021-05-18 | Vmware, Inc. | Secure multi-directional data pipeline for data distribution systems |
US11196591B2 (en) | 2018-08-24 | 2021-12-07 | Vmware, Inc. | Centralized overlay gateway in public cloud |
US11374794B2 (en) | 2018-08-24 | 2022-06-28 | Vmware, Inc. | Transitive routing in public cloud |
US10491466B1 (en) | 2018-08-24 | 2019-11-26 | Vmware, Inc. | Intelligent use of peering in public cloud |
US10798005B2 (en) | 2018-09-13 | 2020-10-06 | International Business Machines Corporation | Optimizing application throughput |
US10826724B2 (en) * | 2018-09-25 | 2020-11-03 | Microsoft Technology Licensing, Llc | Flexible unnumbered destination tunnels for virtual networks |
US11403137B2 (en) * | 2018-10-10 | 2022-08-02 | Intel Corporation | Method and apparatus for secure data center bridging in a multi-tenant system |
US10833992B1 (en) | 2018-12-14 | 2020-11-10 | Amazon Technologies, Inc. | Associating route tables with ingress traffic to logically isolated networks |
US11438280B2 (en) | 2019-08-30 | 2022-09-06 | Nutanix, Inc. | Handling IP network addresses in a virtualization system |
US11550616B2 (en) | 2019-08-30 | 2023-01-10 | Nutanix, Inc. | Virtual IP support for bare metal cloud infrastructures |
US11429411B2 (en) | 2019-08-30 | 2022-08-30 | Nutanix, Inc. | Fast ARP cache rewrites in a cloud-based virtualization environment |
US11347572B2 (en) | 2019-09-26 | 2022-05-31 | Vmware, Inc. | Methods and apparatus for data pipelines between cloud computing platforms |
US11157338B2 (en) | 2019-10-30 | 2021-10-26 | International Business Machines Corporation | Throttling using message partitioning and buffering |
US11184433B2 (en) * | 2020-03-31 | 2021-11-23 | Microsoft Technology Licensing, Llc | Container mobility based on border gateway protocol prefixes |
US11962518B2 (en) | 2020-06-02 | 2024-04-16 | VMware LLC | Hardware acceleration techniques using flow selection |
US11636053B2 (en) | 2020-09-28 | 2023-04-25 | Vmware, Inc. | Emulating a local storage by accessing an external storage through a shared port of a NIC |
US11606310B2 (en) | 2020-09-28 | 2023-03-14 | Vmware, Inc. | Flow processing offload using virtual port identifiers |
US20220100432A1 (en) | 2020-09-28 | 2022-03-31 | Vmware, Inc. | Distributed storage services supported by a nic |
US11593278B2 (en) | 2020-09-28 | 2023-02-28 | Vmware, Inc. | Using machine executing on a NIC to access a third party storage not supported by a NIC or host |
US11875172B2 (en) | 2020-09-28 | 2024-01-16 | VMware LLC | Bare metal computer for booting copies of VM images on multiple computing devices using a smart NIC |
US11477270B1 (en) * | 2021-07-06 | 2022-10-18 | Vmware, Inc. | Seamless hand-off of data traffic in public cloud environments |
CN114143203B (zh) * | 2021-11-05 | 2023-11-10 | 华东师范大学 | 一种基于动态服务拓扑映射的Kubernetes容器网络数据包指标采集的方法及系统 |
CN114143209B (zh) * | 2021-11-08 | 2022-10-21 | 浙江大学 | 一种网络测量中控制通道弹性扩展系统和方法 |
US11995024B2 (en) | 2021-12-22 | 2024-05-28 | VMware LLC | State sharing between smart NICs |
US11863376B2 (en) | 2021-12-22 | 2024-01-02 | Vmware, Inc. | Smart NIC leader election |
US11899594B2 (en) | 2022-06-21 | 2024-02-13 | VMware LLC | Maintenance of data message classification cache on smart NIC |
US11928062B2 (en) | 2022-06-21 | 2024-03-12 | VMware LLC | Accelerating data message classification with smart NICs |
US11928367B2 (en) | 2022-06-21 | 2024-03-12 | VMware LLC | Logical memory addressing for network devices |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101867511A (zh) * | 2009-04-20 | 2010-10-20 | 华为技术有限公司 | 流控帧发送方法、相关设备及系统 |
CN102255903A (zh) * | 2011-07-07 | 2011-11-23 | 广州杰赛科技股份有限公司 | 一种云计算虚拟网络与物理网络隔离安全方法 |
CN102549977A (zh) * | 2009-09-24 | 2012-07-04 | 日本电气株式会社 | 虚拟服务器间通信识别系统和虚拟服务器间通信识别方法 |
CN103200085A (zh) * | 2013-04-16 | 2013-07-10 | 中航网信(北京)科技有限公司 | 一种实现vxlan报文线速收发的方法及系统 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8379623B2 (en) * | 2007-07-10 | 2013-02-19 | Motorola Solutions, Inc. | Combining mobile VPN and internet protocol |
US7962647B2 (en) * | 2008-11-24 | 2011-06-14 | Vmware, Inc. | Application delivery control module for virtual network switch |
US8369333B2 (en) * | 2009-10-21 | 2013-02-05 | Alcatel Lucent | Method and apparatus for transparent cloud computing with a virtualized network infrastructure |
WO2011068091A1 (ja) * | 2009-12-04 | 2011-06-09 | 日本電気株式会社 | サーバ及びフロー制御プログラム |
US8804747B2 (en) * | 2010-09-23 | 2014-08-12 | Cisco Technology, Inc. | Network interface controller for virtual and distributed services |
US20130034015A1 (en) * | 2011-08-05 | 2013-02-07 | International Business Machines Corporation | Automated network configuration in a dynamic virtual environment |
US8856518B2 (en) | 2011-09-07 | 2014-10-07 | Microsoft Corporation | Secure and efficient offloading of network policies to network interface cards |
US9369367B2 (en) * | 2012-04-25 | 2016-06-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Host-router virtual tunnelling and multiple tunnel management |
US9064216B2 (en) * | 2012-06-06 | 2015-06-23 | Juniper Networks, Inc. | Identifying likely faulty components in a distributed system |
CN104022960B (zh) * | 2013-02-28 | 2017-05-31 | 新华三技术有限公司 | 基于OpenFlow协议实现PVLAN的方法和装置 |
US9521028B2 (en) * | 2013-06-07 | 2016-12-13 | Alcatel Lucent | Method and apparatus for providing software defined network flow distribution |
US20150033222A1 (en) * | 2013-07-25 | 2015-01-29 | Cavium, Inc. | Network Interface Card with Virtual Switch and Traffic Flow Policy Enforcement |
US10063458B2 (en) * | 2013-10-13 | 2018-08-28 | Nicira, Inc. | Asymmetric connection with external networks |
-
2013
- 2013-12-12 US US14/104,455 patent/US9124536B2/en active Active
-
2014
- 2014-09-30 US US14/501,837 patent/US9692696B2/en active Active
- 2014-11-25 CN CN201410687501.1A patent/CN104717137B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101867511A (zh) * | 2009-04-20 | 2010-10-20 | 华为技术有限公司 | 流控帧发送方法、相关设备及系统 |
CN102549977A (zh) * | 2009-09-24 | 2012-07-04 | 日本电气株式会社 | 虚拟服务器间通信识别系统和虚拟服务器间通信识别方法 |
CN102255903A (zh) * | 2011-07-07 | 2011-11-23 | 广州杰赛科技股份有限公司 | 一种云计算虚拟网络与物理网络隔离安全方法 |
CN103200085A (zh) * | 2013-04-16 | 2013-07-10 | 中航网信(北京)科技有限公司 | 一种实现vxlan报文线速收发的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20150172183A1 (en) | 2015-06-18 |
US9124536B2 (en) | 2015-09-01 |
US20150172075A1 (en) | 2015-06-18 |
US9692696B2 (en) | 2017-06-27 |
CN104717137A (zh) | 2015-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104717137B (zh) | 管理覆盖网络中的数据流的方法和系统 | |
CN104717156B (zh) | 使用网络接口卡管理软件定义网络中的数据流的方法和系统 | |
CN104995880B (zh) | 虚拟联网系统中的量化拥塞通知的方法和系统 | |
CN104350467B (zh) | 用于使用sdn的云安全性的弹性实行层 | |
CN103930882B (zh) | 具有中间盒的网络架构 | |
CN104052789B (zh) | 用于虚拟联网系统的负载平衡的方法和系统 | |
CN103916453B (zh) | 使用外部部件的动态网络设备处理 | |
CN104718723B (zh) | 用于虚拟网络中的联网和安全服务的框架 | |
CN103718164B (zh) | 虚拟计算机和服务 | |
CN105450690B (zh) | 虚拟机管理程序执行的方法和虚拟机管理系统 | |
CN107005584A (zh) | 内联服务交换机 | |
CN107113298A (zh) | 为rdma提供多租赁支持的方法 | |
CN107615716A (zh) | 用于云联网的多租户感知动态主机配置协议(dhcp)机制 | |
CN104052644A (zh) | 用于在虚拟联网系统中进行分组分发的方法和系统 | |
US11496599B1 (en) | Efficient flow management utilizing control packets | |
US11671355B2 (en) | Packet flow control in a header of a packet | |
US20240154904A1 (en) | Dynamic ip routing in a cloud environment | |
US11929976B2 (en) | Virtual network routing gateway that supports address translation for dataplane as well as dynamic routing protocols (control plane) | |
US20240106760A1 (en) | Network device level optimizations for latency sensitive rdma traffic | |
US20230344777A1 (en) | Customized processing for different classes of rdma traffic | |
US20230032441A1 (en) | Efficient flow management utilizing unified logging | |
WO2022146585A1 (en) | Layer-2 networking using access control lists in a virtualized cloud environment | |
US20230344778A1 (en) | Network device level optimizations for bandwidth sensitive rdma traffic | |
US12010195B2 (en) | Efficient flow management utilizing control packets | |
WO2023205005A1 (en) | Network device level optimizations for bandwidth sensitive rdma traffic |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |