CN111400237B - 为rdma提供多租赁支持的方法 - Google Patents

为rdma提供多租赁支持的方法 Download PDF

Info

Publication number
CN111400237B
CN111400237B CN202010412762.8A CN202010412762A CN111400237B CN 111400237 B CN111400237 B CN 111400237B CN 202010412762 A CN202010412762 A CN 202010412762A CN 111400237 B CN111400237 B CN 111400237B
Authority
CN
China
Prior art keywords
rdma
overlay network
dcn
header
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
Application number
CN202010412762.8A
Other languages
English (en)
Other versions
CN111400237A (zh
Inventor
S·切里恩
T·因加莱
R·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.)
Nicira Inc
Original Assignee
Nicira Inc
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 Nicira Inc filed Critical Nicira Inc
Priority to CN202010412762.8A priority Critical patent/CN111400237B/zh
Publication of CN111400237A publication Critical patent/CN111400237A/zh
Application granted granted Critical
Publication of CN111400237B publication Critical patent/CN111400237B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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
    • H04L41/122Discovery or management of network topologies of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • 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/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开涉及为RDMA提供多租赁支持的方法。公开了一种用于在包括多个物理主机的***中为RDMA提供多租赁支持的方法。每个物理主机托管一组数据计算节点(DCN)。该方法在第一主机的RDMA协议栈处接收包括来自在第一主机上托管的第一DCN的、对从在第二主机上托管的第二DCN进行RDMA数据传输的请求的分组。该方法将与第一DCN相关联的覆盖网络的一组参数发送到第一主机的RDMA物理网络接口控制器。该组参数由RDMA物理NIC使用来利用RDMA数据传输报头和使用覆盖网络的这组参数的覆盖网络报头封装分组,以使用覆盖网络将封装后的分组传输到第二物理主机。

Description

为RDMA提供多租赁支持的方法
本申请是申请日为2015年12月28日、申请号为201580068388.1、发明名称为“为RDMA提供多租赁支持的方法”的发明专利申请的分案申请。
技术领域
本发明公开涉及为RDMA提供多租赁支持。
背景技术
远程直接存储器存取(RDMA)直接在两个应用之间提供读和写服务,并使得数据直接传输到应用缓冲区而无需中间数据拷贝。RDMA使得存储器数据传输能够绕过操作***和内核。
目前存在若干种通过网络传输RDMA分组的协议。RDMA传输协议的示例是融合以太网上的RDMA(RDMA over Converged Ethernet,RoCE)和互联网广域RDMA协议(InternetWide Area RDMA Protocol,iWARP)。RoCE是开放***互连(OSI)模型第二层网络技术,其通过绕过CPU或内核实现同一以太网上两个主机之间的直接数据传输。
目前,RoCE版本1不支持互联网协议(IP)层路由,并且在多租户域中不可用。RoCE版本2确实支持IP层路由,但是在多租户域中不可用。
目前没有机制利用在软件定义数据中心中支持多租赁的覆盖网络来使用RDMA数据传输协议(诸如RoCE或iWARP)。
当今,源自VM的覆盖网络L2帧的封装用软件处理。这涉及在覆盖网络软件部分上的重要工作,以维护和查找覆盖网络地址映射表,并且在分组被发出到线路上之前用包含相关覆盖网络、UDP、IP和以太网信息的外部报头封装传送分组。
类似地,对于接收到的分组,外部报头解封装的相反处理也是软件负责。用软件进行的每次映射表查找和分组的封装/解封装都会导致显著的CPU成本并影响性能。
发明内容
一些实施例提供用于在虚拟L3网络上的多租户云计算环境中经由作为L2技术的RDMA数据传输协议(诸如RoCE)使得能够进行RDMA传输的方法。这使得能够使用软件定义网络(Software Defined Network,SDN)方法来利用RDMA技术的能力并实现多个物理和虚拟网络之间的无缝连接的目标。
覆盖网络是在云计算环境中实现多租赁的网络虚拟化技术。一些实施例利用覆盖网络来提供L3可路由性并使得能够在多租户环境中进行RDMA传输。这些实施例通过用覆盖网络路由报头封装RDMA数据传输协议(诸如RoCE或iWARP)分组使得能够在覆盖网络上进行RDMA数据传输。
覆盖网络软件负责维护覆盖网络映射表,以包括到隧道端点IP的VM媒体访问控制(MAC)地址和其它地址映射。这些实施例中的一些实施例还用特定于每个RDMA连接的覆盖网络地址映射信息对覆盖网络接口控制器(NIC)进行编程,以便将利用覆盖网络报头对RDMA分组的封装卸载到硬件。
前面的发明内容旨在用作对本发明的一些实施例的简要介绍。它并不意味着是对本文档中公开的所有发明性主题的介绍或概述。以下的具体实施方式和在具体实施方式中提及的附图将进一步描述在本发明内容中描述的实施例以及其它实施例。相应地,为了理解本文档描述的所有实施例,需要对发明内容、具体实施方式和附图进行全面地审查。此外,所要求保护的主题不受发明内容、具体实施方式和附图中的说明性细节的限制。
附图说明
本发明的新颖特征在所附权利要求中阐述。但是,为了解释的目的,在以下图中阐述了本发明的若干实施例。
图1概念性地图示本发明的一些实施例的虚拟基础设施的一部分,该虚拟基础设施在位于两个不同主机上的相同租户的两个虚拟机之间启用RDMA。
图2是示出RoCE版本1协议的选定数量的字段的简化图。
图3是示出RoCE版本2协议的选定数量的字段的简化图。
图4概念性地图示在本发明的一些实施例中由请求VM发起的执行RDMA地址解析的过程。
图5概念性地图示在本发明的一些实施例中由RDMA栈从覆盖网络地址映射表获得的覆盖网络信息元组。
图6概念性地图示在本发明的一些实施例中由请求VM发起的执行RDMA请求RDMA连接的过程。
图7是示出在本发明的一些实施例中用于在覆盖网络报头中封装RDMA协议分组的选定数量的字段的简化图。
图8概念性地图示在本发明的一些实施例中当目的地RDMA NIC接收RDMA连接请求时执行的过程。
图9概念性地图示在本发明的一些实施例中执行的将RDMA连接请求的接受或拒绝从目的地VM发送到请求VM的过程。
图10概念性地图示在本发明的一些实施例中当在请求VM处接收到来自目的地VM的RDMA连接请求的接受或拒绝时执行的过程。
图11概念性地图示在本发明的一些实施例中当由已请求建立RDMA连接的VM创建队列对时执行的过程。
图12概念性地图示在本发明的一些实施例中当目的地VM创建队列对时执行的过程。
图13概念性地图示在本发明的一些实施例中为请求使用RDMA进行数据传输而执行的过程。
图14概念性地图示在本发明的一些实施例中执行的使用RDMA将数据写入到目的地VM的存储器中的过程。
图15概念性地图示在本发明的一些实施例中执行的使用RDMA从目的地VM的存储器读取数据的过程。
图16概念性地图示在本发明的一些实施例中执行的在请求VM处从目的地VM接收所请求的RDMA数据的过程。
图17概念性地图示实现本发明的一些实施例的电子***。
具体实施方式
在本发明的以下详细描述中,阐述和描述了本发明的许多细节、示例和实施例。但是,对于本领域技术人员来说,将清楚并显而易见的是,本发明不限于所阐述的实施例,并且本发明可以在没有所讨论的一些具体细节和示例的情况下实践。
虚拟化是用软件模拟硬件平台(诸如服务器、存储设备或网络资源)的能力。虚拟机(VM)是机器(诸如计算机)的软件实现。虚拟网络是物理网络的抽象。VM可以使用虚拟网络进行通信。一个这样的虚拟网络是覆盖网络,它是第3层网络上的第2层覆盖方案。覆盖网络是在云计算环境中实现多租赁的网络虚拟化技术。覆盖网络的示例包括虚拟可扩展LAN(VXLAN)、通用网络虚拟化封装(GENEVE)和使用通用路由封装的网络虚拟化(NVGRE)。例如,VXLAN是第3层(L3)网络上的L2覆盖方案。VXLAN在IP(MAC-in-UDP封装)中封装以太网L2帧,并允许VM作为在单独的物理L3网络中操作的虚拟化L2子网的一部分。类似地,NVGRE使用通用路由封装(GRE)在L3网络上隧道化L2分组。
覆盖网络(诸如VXLAN和GENEVE)是在云计算环境中实现多租赁的优选网络虚拟化技术。覆盖网络是L3网络上的L2覆盖方案。覆盖网络实现涉及利用相关覆盖网络外部用户数据报协议(UDP)报头封装流量,这使得能够在虚拟网络中进行L2流量的路由。
一些实施例通过利用覆盖网络路由报头封装RDMA数据传输协议(诸如RoCE)分组来使得能够在覆盖网络上进行RDMA数据传输。参与覆盖网络的主机包括覆盖配置/控制平面、数据平面和覆盖网络分组处理功能的覆盖网络虚拟化软件。主机充当隧道端点。对于VXLAN覆盖网络,隧道端点被称为虚拟隧道端点(Virtual Tunnel Endpoint,VTEP)。
利用特定于每个RDMA连接的覆盖网络地址映射信息对RDMA NIC进行编程,以便提供L3可路由性和多租赁能力。此外,一些实施例将利用覆盖网络报头对RoCE分组的封装卸载到NIC硬件。这需要对当前RDMA软件实现的当前控制平面和数据平面做出改变。
图1概念性地图示本发明的一些实施例的虚拟基础设施的一部分,该虚拟基础设施在位于两个不同主机上的相同租户的两个虚拟机之间启用RDMA。如图所示,在若干个物理主机机器130-132上托管若干个VM 105-110。
在一些实施例中,虚拟化基础设施由单个云管理***管理。术语云服务是指通过网络以分布式方式提供的服务(诸如计算、存储等)。虚拟化基础设施包括托管多个租户的一组主机机器120-132。每个租户具有一个或多个VM。为了简单起见,图1仅示出用于一个租户(即,租户1)的VM 105-110。
每个主机120-132包括主机虚拟化软件115(有时被称为管理程序)。该图中所示的主机虚拟化软件115代表可以在这种虚拟化基础设施中的主机上操作的各种类型的虚拟化软件(例如,虚拟机监视器等)。
在虚拟化领域中,有人将软件交换机称为虚拟交换机,这是因为它们是软件元件。但是,在本说明书中,软件转发元件被称为物理转发元件(PFE),以便将它们与逻辑转发元件(LFE)区分开,逻辑转发元件(LFE)是不与物理世界绑定的逻辑构造。换句话说,软件转发元件被称为PFE是因为它们在物理世界中存在并操作,而LFE是在设计逻辑网络时呈现给用户的转发元件的逻辑表示。在一些实施例中,若干个PFE分布在实现租户的LFE的整个网络中,其中每个PFE是跨不同主机机器操作并且可以在主机机器或不同主机机器上的VM之间执行L3分组转发的LFE的本地实例化。LFE有时被称为虚拟分布式交换机(VDS)。
在每个主机130-132中,LFE 120连接到物理网络接口卡(PNIC)以发送传出分组和接收传入分组。图1中的PNIC 185-187是具有RDMA能力的NIC。在一些实施例中,LFE被定义为包括一组端口140,通过这组端口140,LFE通过上行链路170连接到PNIC以发送和接收分组。
上行链路170是在LFE 120和具有RDMA能力的NIC 185(或187)之间中继分组,以便对传入和传出流量执行各种分组处理功能的模块。具有RDMA能力的NIC 185-187是也被称为融合网络适配器(CNA)的PNIC,其被编程为执行以太网分组传输以及RDMA分组传输。具有RDMA能力的NIC上的每个端口能够运送以太网流量和RDMA流量。在一些实施例中,具有RDMA能力的NIC向主机虚拟化软件115注册两个逻辑设备,一个逻辑设备处理上行链路流量并且一个逻辑设备处理RDMA流量。每个LFE还被定义为具有通过虚拟NIC(VNIC)连接到租户VM105-110的若干个虚拟端口145-148。如下所述,RDMA访客设备(或RDMA准虚拟化设备)160-162提供VNIC功能以及与RDMA栈175的接口。
VM中的VNIC功能负责通过相关联的VNIC仿真器(未示出)在VM与主机虚拟化软件115的网络虚拟化层之间交换分组。每个VNIC仿真器与VM中的VNIC驱动器交互,以向VM发送数据和从VM接收数据。在一些实施例中,虚拟NIC是由虚拟NIC仿真器实现的物理NIC的软件抽象。例如,在一些实施例中,用于请求和获得连接ID的代码驻留在VNIC仿真器的组件中。换句话说,在一些实施例中,VNIC状态由每个VNIC仿真器实现和维护。虚拟设备(诸如VNIC)是可方便地像VM的一部分那样进行讨论,但实际上由虚拟化软件使用仿真器实现的软件抽象。但是,每个VM的状态包括其虚拟设备的状态,该状态由底层虚拟化软件进行控制和维护。
租户的VM 105-110形成逻辑网络(也被称为专用网络或虚拟网络),其由虚线152概念性地示出。逻辑网络是物理网络的抽象,并且可以为诸如将网络层数据分组封装和解封装成帧、帧同步、媒体访问控制等的服务提供虚拟层2(或数据链路层)。逻辑网络可以跨越一个或多个物理网络并且可以独立于底层物理拓扑和物理网络的组织来组织。每个逻辑网络由租户配置。
参与覆盖网络的主机包括覆盖配置/控制平面、数据平面和覆盖网络分组处理功能的覆盖网络虚拟化软件。主机包括(例如,作为LFE软件的一部分)充当隧道端点的覆盖网络虚拟化软件150。在VXLAN覆盖网络的示例中,覆盖网络虚拟化软件被称为VXLAN虚拟隧道端点(VTEP)软件,并且隧道端点被称为VTEP。存在与覆盖网络的每个实例相关联的唯一标识符。覆盖网络虚拟化软件150负责维护映射表以包括例如到隧道端点地址的VM MAC和其它地址映射。托管在独立主机130-132上的租户的VM 105-110之间的覆盖网络流量经由通过通信网络127的隧道125传送。通信网络127可以包括互联网、局域网(LAN)、广域网(WAN)、不同的硬件装备,诸如电缆、路由器、交换机等。
图1中的VM 105和110属于同一租户,但分别由两个不同的主机130和132托管。在图1的示例中,两个VM在两个不同的子网上,并且具有两个不同的IP地址。VM 105和110能够使用RDMA传输数据。每个租户包括虚拟RDMA设备(RDMA访客设备)160-162。每个主机虚拟化软件115包括RDMA访客设备后端190、RDMA栈或(RDMA协议栈)175以及RDMA NIC驱动器180。在一些实施例中,RDMA栈是用于在主机中提供RDMA能力的OpenFabrics EnterpriseDistribution(OFEDTM)开源软件。
RDMA访客设备160-162是准虚拟化设备。准虚拟化是指其中由VM使用的访客操作***(OS)被修改为用与主机的虚拟化软件直接通信的超级调用(hypercall)替换非可虚拟化指令的技术。虚拟化软件还提供超级调用接口,以便与VM中的准虚拟化设备通信。在一些实施例中,RDMA访客设备160-162利用库调用(例如,“verbs(动词)”库调用)来建立RDMA连接。这些库调用提供所需行为的语义描述(例如,用于提供建立RDMA连接所需的信息)。这些调用用于通过创建和销毁对象(诸如发送和接收工作队列对、完成队列和存储器区域)来管理控制路径对象。这些应用编程接口(API)调用也用于通过请求工作处理(诸如发布发送和接收以及请求完成事件)来管理数据路径。
RDMA访客设备后端190将来自访客中的RDMA访客设备(即,VM 105-100)的库调用转换为RDMA栈175调用。访客物理地址空间(或访客虚拟地址空间)被映射(或转换)到主机的物理地址空间(或机器存储器地址),并传递到具有RDMA能力的NIC 180。具有RDMA能力的NIC维护地址转换表,并直接从/向访客物理存储器执行零拷贝DMA。
主机中的RDMA访客设备160-162提供两个功能。RDMA访客设备160-162提供到RDMA栈175的接口和为VM提供VNIC功能的另一个接口。在一些实施例中,RDMA访客设备160-162向主机虚拟化软件115注册两个逻辑设备,一个逻辑设备提供VNIC功能以及一个逻辑设备与RDMA栈接口。
RDMA访客设备160-162对RDMA访客设备后端190进行库调用以在两个VM之间建立RDMA连接。VM 105中正在请求建立连接的RDMA访客设备160-162与诸如LFE 120上的端口145的端口相关联。如果端口与覆盖网络相关联(例如,端口与VXLAN网络上的VTEP相关联),则与覆盖网络相关的信息(诸如,源VTEP IP、源VTEP MAC、源VTEP VLAN、源VTEP最大总单元(MTU)、内部目的地IP、内部目的地MAC、目的地VTEP IP、目的地VTEP MAC等)通过RDMA栈175和RDMA NIC驱动器180被推送到作为硬件NIC的RDMA NIC 185。然后,RDMA NIC执行RoCE协议封装以及覆盖网络封装,并通过覆盖网络隧道125将结果产生的分组发送到连接到目的地主机132的RDMA NIC 187。
目的地RDMA NIC 187通过去除外部覆盖网络报头来解封装分组,并将分组传递到目的地主机132的RDMA栈用于处理。如下面进一步描述的,一旦建立连接,通过绕过源主机和目的地主机的OS和内核,通过对应的RDMA NIC直接在源VM和目的地VM之间执行对RDMA数据传输的任何请求。
RDMA连接创建逻辑RDMA连接,其由虚线195概念性地示出。在请求VM 105和目的地VM 110之间创建RDMA连接以在被识别用于RDMA连接的两个VM的应用缓冲区197和199之间直接传输数据。传输数据的物理路径是通过覆盖网络。一旦所请求的数据到达与请求VM的主机130相关联的RDMA NIC 185,RDMA NIC就直接将数据传输到由请求VM 105识别出的应用缓冲区199,从而绕过主机和访客操作***和内核。
虽然通过参考RoCE的示例描述了RDMA数据传输协议,但是本领域普通技术人员将意识到,相同的讨论同样适用于其它RDMA数据传输协议,诸如iWARP,其通过在数据放置协议(DDP)之上分层RDMA有效载荷来提供RDMA,其中数据放置协议又由流控制传输协议(SCTP)报头和传输控制协议(TCP)报头封装。
I.使用覆盖网络启用RDMA数据传输
在本部分中描述了RoCE作为RDMA网络协议的示例。RoCE是允许在以太网网络上进行RDMA访问的网络协议。与传统网络相反,RoCE直接向应用提供消息传输服务,这需要应用使用OS的服务来传输消息分组。
RoCE版本1是用于在同一以太网广播域上的主机之间的RDMA访问的链路层(即,L2)协议。图2是示出RoCE版本1(V1)协议的选定数量的字段的简化图。描述RoCE版本1的其它字段的更多详细信息在2010年4月6日的InfiniBandTM行业协会(InfiniBand TradeAssociation)的“Supplement to InfiniBandTMArchitecture Specification,Volume 1,Release 1.2.1Annex A16:RDMA over Converged Ethernet(RoCE)”中描述,该规范通过引用被结合于此。
如图2所示,RoCE v1分组结构200包括帧校验序列(FCS)260、不变循环冗余码(CRC)250、RDMA分组有效载荷205、InfiniBandTM体系架构(IBA)传输报头210、全局路由报头(GRH)215、虚拟局域网(VLAN)字段225以及以太网报头230。FCS260是用于检测以太网帧的任何途中(in-transit)损坏数据的CRC。不变CRC 250是CRC错误检测码,其覆盖通过网络上的所有交换机和路由器从端到端不变的分组的所有字段。
RDMA分组有效载荷205是实际的RDMA分组(或消息)。IBA传输报头210包括诸如用于IBA传输的基本传输报头和扩展传输报头的字段。
GRH 215包括用于在子网之间路由分组的字段。VLAN字段225是用于取决于所使用的VLAN的类型来指示帧的端口的VLAN成员资格或帧的端口和协议组合的IEEE 802.1Q标签字段。以太网报头230包括以太网帧字段,该以太网帧字段包括源MAC地址和目的地MAC地址。如可以看到的,RoCE v1中的以太网报头230仅包含L2地址,并且不允许遍历L3路由器。
通常,RoCE需要无损网络。在RoCE v1的情况下,这是经由数据中心桥接(DCB)实现的,数据中心桥接是对以太网局域网的一组增强,以在数据中心环境中使用网络。通过添加外部报头,必须跨L3域保持网络的无损性质。在一些实施例中,路由器处的L3无损特征(例如,IP报头中的差分服务代码点(DSCP))用于外部报头。例如,一些实施例使用确保转发(assured forwarding,AF)每跳行为(per-hop behavior,PHB)组来提供交付的保证。这些实施例中的一些实施例利用IP报头中的AF等级3(诸如AF31)来提供分组的无损交付。RoCEv2使用相同的原理。
图3是示出RoCE版本2(v2)协议的选定数量的字段的简化图。描述RoCE版本1的其它字段的更多详细信息在2014年9月2日的InfiniBandTM行业协会(InfiniBandTMTradeAssociation)的“Supplement to InfiniBandTMArchitecture Specification,Volume 1,Release 1.2.1Annex A17:roCEv2”中描述,该规范通过引用被结合于此。
如图3所示,RoCE v2分组结构300包括FCS260、不变CRC 250、RDMA分组有效载荷205、IBA传输报头210、UDP报头305、IP报头310、VLAN字段225和以太网报头230。FCS260、不变CRC 250、RDMA分组有效载荷205、IBA传输报头210、VLAN字段225和以太网报头230与以上参考图2描述的字段类似。
RoCE v1的GRH字段215被RoCE v2中的UDP报头305和IP报头310替换。IP报头310允许遍历IP L3路由器。UDP报头305用作用于IP上的RDMA分组的无状态封装层。如可以看到的,在诸如利用覆盖网络为托管用于多个租户的VM的主机机器提供多租赁支持的软件定义数据中心(SDDC)之类的环境中,图2和图3的帧格式不支持多租赁。
请求RDMA连接的应用创建包括发送队列和接收队列的工作队列对(QP)。目的地应用也创建匹配的QP。每个QP表示连接用于RDMA数据传输的两个应用的通道的端点。应用通过发布工作请求(WR)(诸如向工作队列发布发送请求或工作完成请求)来请求RDMA服务。
为了建立连接,两个应用初始地利用特殊的QP(被称为QP1)。一旦建立连接,每个应用使用在连接的生命周期期间创建和维护的专用QP。
A.利用覆盖网络地址映射信息对RDMA NIC进行编程
一些实施例提供控制路径改变,其包括利用特定于每个RDMA连接的覆盖网络地址映射信息对RDMA NIC进行编程。覆盖网络地址映射信息从在覆盖网络虚拟化软件中维护的覆盖网络地址表获得。这使得NIC硬件能够通过参考硬件表来生成外部封装报头。在一些实施例中,RDMA NIC向覆盖网络软件注册其覆盖网络能力以接收覆盖网络地址通知和映射更新。
在一些实施例中,RDMA栈在RDMA连接建立阶段期间将覆盖网络映射信息编程到RDMA NIC中。RDMA NIC本地设备驱动器具有相关的基础设施/API,以向覆盖网络软件或RDMA栈注册其覆盖网络能力。此外,为RDMA NIC本地设备驱动器提供了回调函数(callback)方面的必要基础设施,以接收覆盖网络配置和更新信息。回调函数是作为参数传递给另一个函数的函数。在一些实施例中,提供回调函数以将覆盖网络信息与RDMA NIC设备相关联/绑定。
在一些实施例中,RDMA连接建立阶段利用RDMA连接管理器(RDMA-CM),并且涉及三个广泛的步骤:RDMA地址解析、RDMA连接以及RDMA QP创建和配置。以下部分描述如何通过在以上每个连接建立步骤中做出新的程序化改变,利用覆盖网络信息对RDMA NIC进行编程,并且在本发明的一些实施例中实现对多租赁的支持。
以下示例使用一个VM作为请求VM(或客户端),并且另一个VM作为目的地VM(或服务器)。相同的讨论适用于其中客户端、服务器或两者都是主机(而不是VM)的情况。在这些情况下,目的地IP地址(而不是指VM IP地址)是指在内核VNIC(被称为vmknic)上配置的、由主机使用以连接到LFE端口以与主机内核外部的实体通信的IP地址。因此,本发明同样适用于涉及内核应用和/或VM的RDMA传输。在任一种情况下,RDMA是利用执行将数据从一个存储器区域拷贝到另一个存储器区域的任务的主机CPU执行的。
1.RDMA地址解析
图4概念性地图示在本发明的一些实施例中由请求VM发起的执行RDMA地址解析的过程400。虚线490以上所示的操作由请求VM(例如,由图1所示的RDMA访客设备160)执行,而线490下面所示的操作由源主机130的RDMA栈175执行(即,请求VM105的主机)。
如图所示,当RDMA客户端(诸如VM 105)使用RDMA-CM发起RDMA连接时,客户端创建(在405处)唯一连接管理器标识符(CM_ID)。接下来,该过程通过与覆盖网络相关联的虚拟网络接口向RDMA栈(例如,向RDMA访客设备后端190)发送(在410处)RDMA地址解析请求。然后,该过程确定(在415处)虚拟网络接口是否与覆盖网络相关联(例如,连接到VM的RDMA访客设备160的LFE端口145是否与诸如VXLAN VTEP的覆盖网络端隧道相关联)。
目前,如在现有技术虚拟化环境中所做的那样,当RDMA客户端通过VNIC发起连接时,RDMA栈代表其执行地址解析,以获得对应的路由信息。然后,RDMA栈经由程序化接口(例如,bindSourcelnfo驱动器回调函数)将该虚拟网络接口及其属性{CM_ID、源IP、源MAC、源VLAN、源MTU}与RoCE设备相关联/绑定。这种绑定由CM_ID唯一识别,并且在RDMA连接过程期间存在。RDMA栈调用驱动器回调函数以将该信息编程到RDMA NIC中。如可以看到的,这种机制不支持其中每个租户可以定义其自己的逻辑网络的覆盖网络(诸如VXLAN)上的多租赁。
当过程400确定虚拟网络接口不与覆盖网络相关联时,该过程通过将虚拟网络接口及其属性{CM_ID、源IP、源MAC、源VLAN、源MTU}与RDMA NIC绑定而不提供多租赁支持来执行(在420处)地址解析(如在现有技术中所完成的)。CMD-ID是唯一连接管理器标识,源IP、源MAC、源VLAN以及源MTU是与请求RDMA连接的VM相关联的VTEP的IP地址、MAC地址、相关联VLAN以及最大总单元(MTU)。通信协议层的MTU是该层可以向前传送的最大协议数据单元(PDU)的大小(以字节为单位)。
当虚拟网络接口与覆盖网络相关联时(例如,当连接到VM的RDMA访客设备160的LFE端口145与诸如VXLAN VTEP的覆盖网络端隧道相关联时),过程400提供用于为RDMA数据传输提供多租赁的新颖机制。具体而言,如果该过程确定(在415处)虚拟网络接口与覆盖网络相关联,则RDMA栈将跳过其部分上的任何地址解析。替代地,RDMA栈依赖覆盖网络虚拟化软件作为获得地址映射信息的源。RDMA栈从由覆盖网络虚拟化软件维护的覆盖网络表检索(在425处)相关联的覆盖网络地址映射信息。
图5概念性地图示在本发明的一些实施例中由RDMA栈获得的覆盖网络信息元组。如图所示,对于RDMA连接的给定源VM IP地址和目的地VM IP地址,执行以下地址解析。对于给定目的地IP地址,地址解析中有两个步骤:确定要使用的本地RDMA访客设备以及确定目的地端隧道信息。基于LFE上行链路和配对的RDMA访客设备确定本地RDMA访客设备。目的地端隧道信息通过使用地址解析协议(ARP)确定内部目的地MAC地址(即,目的地VM的Mac地址)来确定,并且外部目的地端隧道信息(例如,VXLAN目的地VTEP IP和MAC地址)通过经由覆盖网络虚拟化软件使用覆盖网络桥接表来确定。源端隧道的覆盖网络信息(例如,VXLAN源VTEP MAC地址、VXLAN源VTEP IP地址、源VLAN)被本地存储在由覆盖网络软件维护的覆盖地址映射表中。所需的源端隧道的信息从这些表中检索。
在一些实施例中,用于地址解析的元组包括:目的地端隧道MAC地址505(例如,VXLAN目的地VTEP MAC地址)、源端隧道MAC地址510(例如,VXLAN源VTEP MAC地址)、以太网信息515(例如,以太网类型或以太网分组报头所需的任何其它信息)、源端隧道IP地址520(例如,VXLAN目的地VTEP IP地址)、目的地端隧道IP地址525(例如,VXLAN目的地VTEP IP地址)、源端隧道VLAN ID 530(例如,源VXLAN网络标识符(VNI))、源MTU 535(源VTEP MTU)、UDP信息540(例如,UDP源端口、VXLAN端口等)。
元组505-540连同创建用于建立RDMA连接的CM-ID 590被发送到启用RDMA的NIC。启用RDMA的NIC使用该信息来通过使用覆盖网络传输分组所需的报头封装RDMA分组。图5所示的字段是封装RDMA分组以使用覆盖网络传输分组可能需要的字段的示例。取决于特定的覆盖网络和特定的网络配置,不同的实施例从主机中的覆盖网络地址映射表检索不同的信息,并将它们推送到启用RDMA的NIC。
回到参考图4,过程400然后将元组500与CM_ID 590相关联(在430处),使得它对于当前的RDMA连接是唯一的。然后,该过程在RDMA栈表中保存(在435处)覆盖网络地址映射信息和CM-ID,以便在连接存在期间使用。如下所述,在一些实施例中,覆盖网络地址映射信息和CM-ID在由RDMA栈使用的初始连接数据报的地址句柄结构中使用。地址句柄是描述从本地端口到远程端口的路径的对象。地址句柄描述在QP中使用的RDMA连接的另一端。
在OFEDTM编程模型中,通过提供地址句柄建立QP连接。例如,对于“可靠连接QP”,在连接建立期间,利用指定目的地全局标识符(GID)、目的地本地标识符(LID)和目的地MAC地址的地址句柄修改QP。这是在面向连接的可靠连接期间的一次性操作。在“不可靠数据报(UD)QP”的情况下,在UD队列对上发送的每个工作请求应该具有指定目的地GID、LID、目的地MAC的地址句柄。
一些实施例改变地址句柄以反映目的地VTEP信息。其它实施例将RDMACM-ID与地址句柄进行映射。CM-ID具有可传递给RDMA NIC驱动器的整个元组(源VTEP和目的地VTEP)。在一些实施例中,RDMA NIC驱动器将该CM-ID绑定信息与地址句柄进行组合来封装用于给定后发送操作的分组。在接收路径中,在一些实施例中,RDMA NIC除了解封装内部报头之外还解封装外部报头,并将RDMA有效载荷发布到对应的QP。但是,RDMA NIC需要在发布到应用缓冲区之前验证外部报头和内部报头。
2.RDMA连接
图6概念性地图示在本发明的一些实施例中由请求VM(或客户端)发起的请求RDMA连接的过程600。虚线690以上所示的操作由请求VM(例如,由图1所示的RDMA访客设备160)执行,线695下面所示的操作由RDMA NIC(例如,RDMA NIC 185)执行,并且线690和695之间所示的操作由源主机130的RDMA栈175(即,请求VM 105的主机)执行。如图所示,该过程使用先前创建的CM-ID发送(在605处)连接到目的地VM的RDMA连接请求。
对于经由RDMA-CM的RDMA连接请求,使用被称为通用服务接口(GSI)QP或QP1的特殊QP类型将初始连接数据报(被称为管理数据报或MAD)发送到RDMA连接的目的地端。在一些实施例中,新的字段被添加到由RDMA虚拟化栈使用的地址句柄结构中。这些新的字段保持如以上通过参考图4所述计算的覆盖网络地址映射元组。RDMA虚拟化栈将MAD缓冲区连同修改后的地址句柄结构一起向下发送(在610处)到RDMA NIC。
然后,RDMA NIC使用(在615处)覆盖网络地址映射信息利用覆盖网络外部报头封装RDMA数据报。具体而言,在一些实施例中,RDMA NIC从地址句柄结构中检索CM_ID、源地址和覆盖网络映射信息。RDMA NIC基于修改后的地址句柄结构计算外部VXLAN报头,并利用它封装内部分组(连接MAD)。然后,RDMA NIC将封装后的分组在虚拟网络线路上发出到(在620处)目的地VM(或服务器)。
图7是示出在本发明的一些实施例中用于在覆盖网络报头中封装RDMA协议分组的选定数量的字段的简化图。如图所示,封装后的分组结构700包括RDMA分组725。RDMA分组725例如是图2所示的RoCE v1分组200、图3所示的RoCE v2分组300、iWARP分组、或将在两个VM之间进行交换的任何其它RDMA协议分组。
RDMA分组725被包裹在包括覆盖网络标识的覆盖网络报头735(例如,包括VXLANID的VXLAN报头)中。该内部帧被进一步包裹在UDP报头740中(被称为外部UDP)。结果被进一步包裹在外部IP报头790中,其中外部IP报头790包括目的地端隧道的IP地址745(例如,VXLAN目的地VTEP IP地址)和源端隧道的IP地址750(例如,VXLAN源VTEP IP地址)。结果被进一步包裹在外部以太网报头795(其包括外部虚拟局域网(VLAN)标签信息(例如,VXLAN标签信息)和以太网类型755、源端隧道MAC地址760(例如,VXLAN源VTEP MAC地址)和目的地端隧道MAC地址765)(例如,VXLAN目的地VTEP MAC地址)中。最后,覆盖网络封装包括可选的外部FCS 770。通过进行外部包裹,覆盖网络为跨不同网络的VM创建逻辑网络。覆盖网络(例如,VXLAN)在第3层网络之上创建第2层网络。字段735-765和可选的外部FCS 770在本文中被称为外部报头,并且封装后的分组结构700被称为外部分组。
图7是示出用于覆盖网络封装的选定数量的字段的简化图。对于覆盖网络的示例,描述用于VXLAN封装的其它字段的进一步详细信息在由M.Mahalingam等人所写的、2011年8月26日的网络工作组(Network Working Group)的“VXLAN:A Framework for OverlayingVirtualized Layer 2Networks over Layer 3Networks”中描述,该文章通过引用被结合于此。虽然为了简单起见,本文档参考该选定字段,但是本领域普通技术人员将意识到,封装用于覆盖网络(诸如VXLAN、GENEVE等)的分组需要利用覆盖网络的整个外部报头封装分组。
在图7中,使用外部包裹通过L3网络交付L2有效载荷。例如,外部源IP源地址是源VTEP的IP地址,并且外部目的地IP地址是目的地VTEP的IP地址。外部源MAC地址是源VTEP的MAC地址,并且外部目的地MAC地址是在从源VTEP到目的地VTEP的路径上的下一个网络实体(诸如网关的路由器)的MAC地址。
在一些实施例中,用于VXLAN的VTEP包括以下组件:作为LFE的一部分并用于VXLAN数据路径处理(包括转发表的维护)的VM内核组件;运送VXLAN流量的VM内核NIC虚拟适配器;以及指示VXLAN流量如何通过物理NIC被送入和送出主机VTEP的VXLAN端口组。
外部IP报头790允许遍历IP L3路由器。UDP报头740用作用于IP上的RDMA分组的无状态封装层,取决于所使用的VLAN的类型,VLAN字段755是用于指示帧的端口的VLAN成员资格或帧的端口和协议组合的IEEE 802.1Q标签字段。
图8概念性地图示在本发明的一些实施例中当目的地RDMA NIC(例如,图1所示的RDMA NIC 187)接收RDMA连接请求时执行的过程800。虚线890以上所示的操作由目的地VM(例如,由图1所示的RDMA访客设备162)执行,线895下面所示的操作由RDMA NIC(例如,RDMANIC 187)执行,并且线890和895之间所示的操作由目的地主机132的RDMA栈175执行。
如图所示,该过程通过覆盖网络从请求VM接收(在805处)封装在覆盖网络报头中的RDMA连接请求。例如,RDMA连接的接收端的RDMA NIC在QP1上接收覆盖网络封装的MAD分组。然后,该过程去除(在810处)与覆盖网络有关的分组的外部报头。来自外部报头的覆盖网络信息被消费和验证(例如,对照VXLAN网络中的源VXLAN/VTEP信息进行)。该过程确定(在815处)覆盖网络信息是否有效。例如,传入的VXLAN信息是否与用于接收VM的VXLAN匹配。如果不匹配,则丢弃分组(在820处)。
否则,该过程(使用接收RDMA NIC)剥离外部覆盖网络报头,并将MAD连同外部覆盖网络报头信息(由RDMA NIC从分组中提取)向上发送(在825处)到用于连接请求接受/拒绝的RDMA栈。然后,该过程通过RDMA栈从MAD缓冲区的地址句柄结构中读取字段,并了解覆盖网络映射信息。然后,该过程存储(在825处)所请求的连接的覆盖映射地址。该过程在目的地VM处接收(在830处)用于接受或拒绝的连接请求。
图9概念性地图示在本发明的一些实施例中执行的将RDMA连接请求的接受或拒绝从目的地VM发送到请求VM的过程900。虚线990以上所示的操作由目的地VM执行,线995下面所示的操作由目的地RDMA NIC执行,并且线990和995之间所示的操作由目的地主机的RDMA栈执行。
如图所示,连接请求由目的地VM处理(在905处)。接下来,过程900将对RDMA连接请求的响应发送(到910处)到RoCE虚拟化软件。
RoCE虚拟化软件已基于以上参考图8描述的操作825了解覆盖网络路由信息。通过RDMA栈,该过程在学习过程期间从保存在RDMA栈表中的信息获得(在915处)与CM-ID相关联的覆盖网络地址映射信息。在经由QP1上的MAD分组发送连接接受响应时,目的地主机上的RoCE虚拟化软件利用覆盖网络映射表填充地址句柄结构,并将MAD分组(在920处)发送到NIC。RoCE硬件从MAD缓冲区的地址句柄结构中查找覆盖网络信息、构建外部覆盖网络报头、并利用覆盖网络外部报头封装MAD响应以及在虚拟网络上发送(在925处)分组。
图10概念性地图示在本发明的一些实施例中当在请求VM处接收到来自目的地VM的RDMA连接请求的接受或拒绝时执行的过程1000。虚线1090以上所示的操作由请求RDMA连接的VM执行,线1095下面所示的操作由与请求VM的主机相关联的RDMA NIC执行,并且线1090和1095之间所示的操作由请求VM的主机的RDMA栈执行。
如图所示,该过程在RDMA NIC处通过覆盖网络从目的地VM接收(在1005处)对RDMA地址解析请求的响应。RDMA NIC去除(在1010处)与覆盖网络相关的分组的外部报头。来自外部报头的覆盖网络信息被消费和验证(例如,对照VXLAN网络中的源VXLAN/VTEP信息进行)。该过程确定(在1015处)覆盖网络信息是否有效。如果无效,则丢弃分组(在1020处)。
否则,该过程(使用RDMA NIC)剥离外部覆盖网络报头,并向请求VM发送(在1025处)RDMA连接请求响应。然后,该过程由请求VM接收并处理(在1030处)对RDMA连接请求的响应。
3.RDMA队列对创建
在RDMA连接完成之前,RDMA客户端创建用于连接的QP。作为RDMA连接的一部分,客户端(例如,请求VM)将客户端连接参数传递到服务器(例如,目的地VM)。连接参数之一是与创建的QP相关联的QP号。服务器接收该连接信息。在服务器发送连接接受之前,服务器已经创建了QP。作为连接接受的一部分,服务器将QP号发送给客户端。
初始连接MAD通过QP1进行交换。一旦建立RDMA连接,RDMA客户端和RDMA服务器就使用为连接创建的QP运送用于该连接的RDMA(例如RoCE)流量/数据。在一些实施例中,一旦进来对数据队列对创建的请求,RDMA栈就修改队列对属性。作为修改队列对属性的一部分,覆盖网络地址映射信息被添加到队列对的属性中。
作为修改队列对的一部分,队列对的属性在RoCE硬件中进行编程。覆盖网络映射信息在硬件中与该队列对相关联。换句话说,一旦为连接创建了QP,则QP就通过连接的地址句柄进行修改。
图11概念性地图示在本发明的一些实施例中当由请求建立RDMA连接的VM创建队列对时执行的过程1100。虚线1190以上所示的操作由请求VM执行,线1195下面所示的操作由与请求VM的主机相关联的RDMA NIC执行,并且线1190和1195之间所示的操作由请求VM的主机的RDMA栈执行。
如图所示,该过程向RDMA栈发送(在1105处)QP创建请求以创建用于连接的QP。通过RDMA栈,该过程创建(在1110处)包括与连接相关联的覆盖网络映射信息的QP。然后,该过程将QP发送(在1115处)到RDMA NIC。然后,该过程通过包括在QP中的地址映射信息来存储(在1120处)。
图12概念性地图示在本发明的一些实施例中当目的地VM创建队列对时执行的过程1200。虚线1290以上所示的操作由目的地VM执行,线1295下面所示的操作由与目的地VM的主机相关联的RDMA NIC执行,并且线1290和1295之间所示的操作由目的地VM的主机的RDMA栈执行。
如图所示,该过程向RDMA栈发送(在1205处)QP创建请求以创建用于连接的QP。在一些实施例中,在接收到对RDMA连接的请求之前,请求VM(或服务器)创建用于RDMA连接的QP。然后,服务器监听RDMA连接请求。一旦接收到对连接的请求,该过程将QP分配(在1210处)给所请求的连接。该过程然后将与连接相关联的覆盖网络映射信息包括(在1215处)到QP中。然后,该过程将QP发送(在1220处)到RDMA NIC。该过程还会复刻(fork)和创建(在1225处)另一个QP并监听下一个RDMA连接请求。该过程还通过RDMA NIC来存储(在1220处)包括在QP中的地址映射信息。
B.建立的连接上的RDMA数据传输
一旦QP的属性在RDMA NIC硬件中利用覆盖网络信息进行编程,在所创建的QP上向下发送的、被称为工作请求(WR)的任何数据消息在它们被发出到虚拟网络线路上之前,由RDMA NIC硬件利用相关的覆盖网络外部报头进行封装。
图13概念性地图示在本发明的一些实施例中为请求使用RDMA进行数据传输而执行的过程1300。虚线1390以上所示的操作由请求VM执行,线1395下面所示的操作由与请求VM的主机相关联的RDMA NIC执行,并且线1390和1395之间的操作由请求VM的主机的RDMA栈执行。
如图所示,该过程将来自请求VM的RDMA请求发送(在1305处)到RDMA NIC。RDMA请求指定目的地VM中所请求的缓冲区以及为连接创建的QP。在RDMA写请求的情况下,要写入到目的地VM存储器中的数据也包括在RDMA请求中。该过程然后使用(在1315处)与QP相关联的覆盖网络地址映射信息来利用覆盖网络外部报头封装RDMA数据报。该过程然后通过网络将封装的RDMA数据报发送(在1320处)到目的地VM。
图14概念性地图示在本发明的一些实施例中执行的使用RDMA将数据写入到目的地VM的存储器中的过程1400。虚线1490以上所示的操作由目的地VM执行,线1495下面所示的操作由与目的地VM的主机相关联的RDMA NIC执行,并且在线1490和1495之间所示的操作由目的地VM的主机的RDMA栈执行。
如图所示,该过程在目的地RDMA NIC处通过覆盖网络从请求VM接收(在1405处)RDMA请求。RDMA数据请求指定目的地VM中所请求的缓冲区。该过程去除(在1410处)与覆盖网络相关的分组的外部报头。来自外部报头的覆盖网络信息被消费和验证(例如,对照VXLAN网络中的源VXLAN/VTEP信息进行)。该过程确定(在1415处)覆盖网络信息是否有效。如果无效,则丢弃分组(在1420处)。
否则,通过接收RDMA NIC,该过程使用(在1425处)RDMA请求中的存储器区域信息将在RDMA分组中接收到的数据从RDMA NIC直接写入到目的地VM的存储器缓冲区中,从而绕过目的地主机操作***和内核(即,零拷贝传输零拷贝传输)。零拷贝是指其中中央处理单元(CPU)不执行将数据从一个存储器区域复制到另一个存储器区域的任务的操作。
图15概念性地图示在本发明的一些实施例中执行的使用RDMA从目的地VM的存储器读取数据的过程1500。虚线1590以上所示的操作由目的地VM执行,线1595下面所示的操作由与目的地VM的主机相关联的RDMA NIC执行,并且线1590和1595之间所示的操作由目的地VM的主机的RDMA栈执行。
如图所示,该过程在目的地RDMA NIC处通过覆盖网络接收(在1505处)来自请求VM的RDMA请求。RDMA数据请求指定目的地VM中所请求的缓冲区。该过程去除(在1510处)与覆盖网络相关的分组的外部报头。来自外部报头的覆盖网络信息被消费和验证(例如,对照VXLAN网络中的源VXLAN/VTEP信息进行)。该过程确定(在1515处)覆盖网络信息是否有效。如果无效,则丢弃分组(在1520处)。
否则,通过接收RDMA NIC,该过程使用(在1525处)RDMA请求中的存储器区域信息从目的地VM的存储器缓冲区1580直接提取数据,从而绕过目的地主机操作***和内核(即,执行零拷贝传输)。
然后,该过程使用与连接队列对相关联的地址映射信息来利用覆盖网络外部报头封装(在1530处)包含所请求的数据的RDMA数据报。然后,该过程通过覆盖网络将封装的RDMA数据报发送(在1535处)到请求VM。
图16概念性地图示在本发明的一些实施例中执行的在请求VM处从目的地VM接收所请求的RDMA数据的过程1600。虚线1690以上所示的操作由请求VM执行,线1695下面所示的操作由与请求VM的主机相关联的RDMA NIC执行,并且线1690和1695之间所述的操作由请求VM的主机的RDMA栈执行。
如图所示,该过程通过覆盖网络从目的地VM接收(在1605处)包括所请求的数据的一个或多个数据报。然后,该过程去除(在1610处)与覆盖网络相关的分组的外部报头。然后,该过程确定(在1615处)覆盖网络是否有效。如果无效,则该过程丢弃(在1620处)数据报。
否则,通过RDMA NIC,该过程使用(在1625处)RDMA数据分组中的存储器区域信息将数据直接移动到请求VM的存储器缓冲区1580中。
如从图4、图6和图8-13中可以看到的,用于地址解析、连接创建和QP创建的命令通过RDMA栈来处理。如从图14-16中可以看到的,实际的RDMA数据传输直接向/从VM的存储器缓冲区和RDMA NIC完成,从而绕过主机和访客操作***的操作***内核。
II.电子***
许多上述特征和应用被实现为软件过程,其被指定为记录在计算机可读存储介质(也被称为计算机可读介质)上的指令集。当这些指令被一个或多个处理单元(例如,一个或多个处理器、处理器核心、或其它处理单元)执行时,它们使得该(一个或多个)处理单元执行在指令中指示的动作。计算机可读介质的示例包括,但不限于,CD-ROM、闪存驱动器、RAM芯片、硬盘驱动器、EPROM等。计算机可读介质不包括无线或通过有线连接传递的载波和电子信号。
在本说明书中,术语“软件”是指包括驻留在只读存储器中的固件或者存储在磁存储设备中的应用,其可以被读入到存储器中以供处理器处理。此外,在一些实施例中,若干软件发明可以被实现为更大程序的子部分,同时保持明显的软件发明。在一些实施例中,若干软件发明也可以被实现为单独的程序。最后,一起实现本文所描述的软件发明的单独程序的任意组合是在本发明的范围之内。在一些实施例中,当软件程序被安装,以在一个或多个电子***上操作时,软件程序定义运行和执行该软件程序的操作的一个或多个特定的机器实现。
图17概念性地示出了实现本发明的一些实施例的电子***1700。电子***1700可以用于执行任何上述的控制、虚拟化或操作***应用。电子***1700可以是计算机(例如,台式计算机、个人计算机、平板计算机、服务器计算机、大型机、刀片计算机等)、电话、PDA或任何其它种类的电子设备。这种电子***包括用于各种其它类型的计算机可读介质的各种类型的计算机可读介质和接口。电子***1700包括总线1705、(一个或多个)处理单元1710、***存储器1720、只读存储器(ROM)1730、永久存储设备1735、输入设备1740、以及输出设备1745。
总线1705统一地表示可通信地连接电子***1700的众多内部设备的所有***、外设和芯片组总线。例如,总线1705将(一个或多个)处理单元1710与只读存储器1730、***存储器1720、永久存储设备1735可通信地连接。
从这些各种存储器单元中,(一个或多个)处理单元1710检索要执行的指令和要处理的数据,以便执行本发明的过程。(一个或多个)处理单元在不同实施例中可以是单个处理器或多核心处理器。
只读存储器1730存储由(一个或多个)处理单元1710和电子***的其它模块所需的静态数据和指令。另一方面,永久存储设备1735是读和写存储器设备。这个设备是即使当电子***1700关闭时也存储指令和数据的非易失性存储单元。本发明的一些实施例使用大容量存储设备(诸如磁或光盘及其对应的盘驱动器)作为永久存储设备1735。
其它实施例使用可移除存储设备(诸如软盘、闪存驱动器等)作为永久存储设备。与永久存储设备1735一样,***存储器1720是读和写存储器设备。但是,与存储设备1735不同,***存储器是易失性读和写存储器,诸如随机存取存储器。***存储器存储处理器在运行时需要的一些指令和数据。在一些实施例中,本发明的过程被存储在***存储器1720、永久存储设备1735和/或只读存储器1730中。从这些各种存储器单元中,(一个或多个)处理单元1710检索要执行的指令和要处理的数据,以便执行一些实施例的过程。
总线1705还连接到输入设备1740和输出设备1745。输入设备使用户能够传递信息和选择到电子***的命令。输入设备1740包括字母数字键盘和定点设备(也称为“光标控制设备”)。输出设备1745显示由电子***生成的图像。输出设备包括打印机和显示设备,诸如阴极射线管(CRT)或液晶显示器(LCD)。一些实施例包括诸如用作输入和输出设备两者的触摸屏的设备。
最后,如在图17中所示,总线1705还通过网络适配器(未示出)将电子***1700耦合到网络1725。以这种方式,计算机可以是计算机的网络(诸如局域网(“LAN”)、广域网(“WAN”)、或内联网、或诸如互联网之类的网络的网络)的一部分。电子***1700的任何或所有组件可以与本发明结合使用。
一些实施例包括电子组件,诸如微处理器、在机器可读或计算机可读介质(可替代地称为计算机可读存储介质、机器可读介质或机器可读存储介质)中存储计算机程序指令的存储设备和存储器。这种计算机可读介质的一些示例包括RAM、ROM、只读压缩盘(CD-ROM)、可记录压缩盘(CD-R)、可重写压缩盘(CD-RW)、只读数字多功能盘(例如,DVD-ROM,双层DVD-ROM)、各种可记录/可重写DVD(例如,DVD-RAM、DVD-RW、DVD+RW等)、闪存存储器(例如,SD卡、小型SD卡、微型SD卡等)、磁和/或固态硬盘驱动器、只读和可记录盘、超密度光盘、任何其它光或磁介质、以及软盘。计算机可读介质可以存储可由至少一个处理单元执行的并且包括用于执行各种操作的指令集的计算机程序。计算机程序或计算机代码的示例包括诸如由编译器产生的机器代码,以及包括由计算机、电子组件、或利用解释器的微处理器执行的更高级代码的文件。
虽然以上讨论主要涉及执行软件的微处理器或多核处理器,但是一些实施例通过一个或多个集成电路(诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA))来执行。在一些实施例中,这种集成电路执行在该电路自身上存储的指令。
如在本说明书中所使用的,术语“计算机”、“服务器”、“处理器”、以及“存储器”都是指电子或其它技术设备。这些术语不包括人或人群。为了本说明书的目的,术语显示或正在显示意味着在电子设备上显示。如本说明书中所使用的,术语“计算机可读介质”、“一个或多个计算机可读介质”和“机器可读介质”被完全限制为以由计算机可读的形式存储信息的、有形的、物理的对象。这些术语不包括任何无线信号、有线下载信号、以及任何其它短暂或暂时性信号。
虽然本发明已经参考许多特定细节进行了描述,但是本领域普通技术人员将认识到,在不脱离本发明的精神的情况下,本发明可以以其它特定形式体现。此外,多个图(包括图4、6和8-15)概念性地示出了过程。这些过程的特定操作可能没有以与所示出和描述的确切顺序执行。特定操作可能没有在一系列连续的操作中执行,并且不同的特定操作可能在不同的实施例中执行。此外,过程可以利用几个子过程来实现,或者作为较大的宏过程的一部分来实现。
贯穿本说明书提到包括虚拟机(VM)的计算和网络环境。但是,虚拟机只是数据计算节点(DCN)或数据计算端节点(也被称为可寻址节点)的一个示例。DCN可以包括非虚拟化物理主机、虚拟机、在主机操作***之上运行而不需要管理程序或单独的操作***的容器、以及管理程序内核网络接口模块。
在一些实施例中,VM使用由虚拟化软件(例如,管理程序、虚拟机监视器等)虚拟化的主机的资源与在主机上其自己的客户操作***一起操作。租户(即VM的所有者)可以选择在客户操作***之上要操作哪些应用。另一方面,一些容器是在主机操作***之上运行而不需要管理程序或单独的客户操作***的构造。在一些实施例中,主机操作***使用名称空间将容器彼此隔离,并且因此提供在不同容器内操作的不同应用组的操作***级隔离。这种隔离类似于在虚拟化***硬件的管理程序虚拟化环境中提供的VM隔离,并且因此可以被视为隔离在不同容器中操作的不同应用组的一种虚拟化形式。这种容器比VM更轻巧。
在一些实施例中,管理程序内核网络接口模块是包括具有管理程序内核网络接口和接收/发送线程的网络栈的非-VM DCN。管理程序内核网络接口模块的一个示例是作为VMware公司的ESXiTM管理程序的一部分的vmknic模块。
本领域普通技术人员将认识到,虽然本说明书提到VM,但是给出的示例可以是任何类型的DCN,包括物理主机、VM、非-VM容器和管理程序内核网络接口模块。事实上,在一些实施例中,示例网络可以包括不同类型的DCN的组合。
因此,鉴于上述,本领域普通技术人员将理解,本发明不受上述说明性细节的限制,而是由所附权利要求来限定。

Claims (20)

1.一种用于在***中提供对远程直接存储器存取RDMA的多租赁支持的方法,所述***包括多个物理主机,每个物理主机托管一组数据计算节点DCN,所述方法包括:
在第一物理主机的RDMA协议栈处:
接收分组,所述分组包括来自在第一主机计算机上托管的第一DCN的、对从在第二主机计算机上托管的第二DCN进行RDMA数据传输的请求;以及
将与所述第一DCN相关联的覆盖网络的一组参数从所述RDMA协议栈发送到所述第一主机计算机的物理RDMA网络接口控制器NIC;
其中所述物理RDMA NIC利用(i)RDMA数据传输报头和(ii)使用所述覆盖网络的所述一组参数的覆盖网络报头来封装所述分组,并且使用覆盖网络将封装后的分组传输到第二主机计算机。
2.如权利要求1所述的方法,其中第一主机计算机执行虚拟化软件,所述虚拟化软件实现逻辑转发元件LFE,其中所述第一DCN连接到所述LFE的端口,所述方法还包括:
确定所述LFE的所述端口与覆盖网络的第一隧道端点相关联;以及
从所述第一隧道端点的参数和与所述第二DCN相关联的第二隧道端点的参数确定所述覆盖网络的所述一组参数。
3.如权利要求1所述的方法,其中所述第一DCN和所述第二DCN与不同的互联网协议IP地址相关联。
4.如权利要求3所述的方法,还包括利用用户数据报协议UDP报头和包括所述第一DCN的IP地址和所述第二DCN的IP地址的IP报头封装所述分组。
5.如权利要求1所述的方法,其中在发送包括对RDMA数据传输的请求的分组之前,所述第一DCN为所述第一DCN和所述第二DCN之间的RDMA连接创建唯一连接标识符。
6.如权利要求5所述的方法,还包括:
创建包括第一发送队列和第一接收队列的第一队列对,其中所述第二主机计算机的RDMA协议栈创建包括第二发送队列和第二接收队列的第二队列对;以及
将覆盖网络的所述一组参数与所述第一和第二队列对相关联。
7.如权利要求1所述的方法,其中用于RDMA数据传输的协议是融合以太网上的RDMARoCE和互联网广域RDMA协议iWARP之一。
8.一种用于在数据中心中提供远程直接存储器存取RDMA支持的方法,所述数据中心包括托管用于多个租户的多个数据计算节点DCN的多个主机计算机,所述方法包括:
从第一主机计算机的物理RDMA网络接口控制器NIC向第二主机计算机发送请求,所述请求针对从托管在所述第二主机计算机上的第二DCN到托管在所述第一主机计算机上的第一DCN的RDMA数据传输,所述请求利用以下进行封装:(i)RDMA数据传输报头和(ii)与所述第一DCN和所述第二DCN相关联的覆盖网络的报头;
在所述物理RDMA NIC处从所述第二DCN接收RDMA数据,所述RDMA数据利用以下进行封装:(i)所述RDMA数据传输报头和(ii)所述覆盖网络的报头;以及
将来自所述物理RDMA NIC的所述RDMA数据***到所述第一DCN的存储器缓冲区中以绕过所述第一主机计算机的操作***。
9.如权利要求8所述的方法,其中:
所述第一和第二DCN属于同一租户逻辑网络;
所述覆盖网络的报头与所述租户逻辑网络相关联;以及
所述第一主机计算机托管属于两个不同租户逻辑网络的至少两个DCN。
10.如权利要求8所述的方法,其中将所述RDMA数据***到所述第一DCN的存储器缓冲区中还绕过了所述第一主机计算机的虚拟化软件。
11.如权利要求8所述的方法,其中所述覆盖网络的每个报头包括用户数据报协议UDP报头和包括与所述第一和第二主机计算机相关联的隧道端点的互联网协议IP地址的IP报头。
12.如权利要求8所述的方法,其中(i)所述第一主机计算机的RDMA协议栈创建包括第一发送队列和第一接收队列的第一队列对,以及(ii)所述第二主机计算机的RDMA协议栈创建包括第二发送队列和第二接收队列的第二队列对。
13.如权利要求12所述的方法,还包括:将所述覆盖网络的一组参数与所述第一和第二队列对相关联。
14.如权利要求8所述的方法,其中用于RDMA数据传输的协议是融合以太网上的RDMARoCE和互联网广域RDMA协议iWARP之一。
15.如权利要求8所述的方法,其中将所述RDMA数据***到所述第一DCN的存储器缓冲区中还绕过了所述第一DCN的访客操作***。
16.如权利要求8所述的方法,其中所述第一主机计算机的所述物理RDMA NIC是第一物理RDMA NIC,其中所述第二主机计算机的第二RDMA NIC利用所述覆盖网络的报头封装所述RDMA数据。
17.如权利要求16所述的方法,其中所述第一物理RDMA NIC在将所述RDMA数据***到所述第一DCN的所述存储器缓冲区中之前从所述RDMA数据中移除所述覆盖网络的报头。
18.一种存储程序的机器可读介质,所述程序在由至少一个处理单元实现时实现根据权利要求1-17中任一项所述的方法。
19.一种计算设备,包括:
一组处理单元;以及
存储程序的机器可读介质,所述程序在由所述一组处理单元中的至少一个处理单元实现时实现根据权利要求1-17中任一项所述的方法。
20.一种用于提供对远程直接存储器存取RDMA的多租赁支持的***,包括用于实现根据权利要求1-17中任一项所述的方法的装置。
CN202010412762.8A 2014-12-29 2015-12-28 为rdma提供多租赁支持的方法 Active CN111400237B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010412762.8A CN111400237B (zh) 2014-12-29 2015-12-28 为rdma提供多租赁支持的方法

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201462097505P 2014-12-29 2014-12-29
US62/097,505 2014-12-29
US14/656,368 2015-03-12
US14/656,368 US9747249B2 (en) 2014-12-29 2015-03-12 Methods and systems to achieve multi-tenancy in RDMA over converged Ethernet
PCT/US2015/067735 WO2016109458A1 (en) 2014-12-29 2015-12-28 Method for providing multi-tenancy support for rdma
CN201580068388.1A CN107113298B (zh) 2014-12-29 2015-12-28 为rdma提供多租赁支持的方法、设备、物理主机及计算机可读存储介质
CN202010412762.8A CN111400237B (zh) 2014-12-29 2015-12-28 为rdma提供多租赁支持的方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201580068388.1A Division CN107113298B (zh) 2014-12-29 2015-12-28 为rdma提供多租赁支持的方法、设备、物理主机及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN111400237A CN111400237A (zh) 2020-07-10
CN111400237B true CN111400237B (zh) 2023-12-01

Family

ID=56164335

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201580068388.1A Active CN107113298B (zh) 2014-12-29 2015-12-28 为rdma提供多租赁支持的方法、设备、物理主机及计算机可读存储介质
CN202010412762.8A Active CN111400237B (zh) 2014-12-29 2015-12-28 为rdma提供多租赁支持的方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201580068388.1A Active CN107113298B (zh) 2014-12-29 2015-12-28 为rdma提供多租赁支持的方法、设备、物理主机及计算机可读存储介质

Country Status (4)

Country Link
US (4) US9747249B2 (zh)
EP (1) EP3241330B1 (zh)
CN (2) CN107113298B (zh)
WO (1) WO2016109458A1 (zh)

Families Citing this family (173)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9736065B2 (en) 2011-06-24 2017-08-15 Cisco Technology, Inc. Level of hierarchy in MST for traffic localization and load balancing
US8908698B2 (en) 2012-01-13 2014-12-09 Cisco Technology, Inc. System and method for managing site-to-site VPNs of a cloud managed network
US9043439B2 (en) 2013-03-14 2015-05-26 Cisco Technology, Inc. Method for streaming packet captures from network access devices to a cloud server over HTTP
US10454714B2 (en) 2013-07-10 2019-10-22 Nicira, Inc. Method and system of overlay flow control
US10749711B2 (en) 2013-07-10 2020-08-18 Nicira, Inc. Network-link method useful for a last-mile connectivity in an edge-gateway multipath system
US9755858B2 (en) 2014-04-15 2017-09-05 Cisco Technology, Inc. Programmable infrastructure gateway for enabling hybrid cloud services in a network environment
US9473365B2 (en) 2014-05-08 2016-10-18 Cisco Technology, Inc. Collaborative inter-service scheduling of logical resources in cloud platforms
US10122605B2 (en) 2014-07-09 2018-11-06 Cisco Technology, Inc Annotation of network activity through different phases of execution
US9825878B2 (en) 2014-09-26 2017-11-21 Cisco Technology, Inc. Distributed application framework for prioritizing network traffic using application priority awareness
US9747249B2 (en) 2014-12-29 2017-08-29 Nicira, Inc. Methods and systems to achieve multi-tenancy in RDMA over converged Ethernet
US10050862B2 (en) 2015-02-09 2018-08-14 Cisco Technology, Inc. Distributed application framework that uses network and application awareness for placing data
US10037617B2 (en) 2015-02-27 2018-07-31 Cisco Technology, Inc. Enhanced user interface systems including dynamic context selection for cloud-based networks
US10708342B2 (en) 2015-02-27 2020-07-07 Cisco Technology, Inc. Dynamic troubleshooting workspaces for cloud and network management systems
US9904627B2 (en) 2015-03-13 2018-02-27 International Business Machines Corporation Controller and method for migrating RDMA memory mappings of a virtual machine
US10055381B2 (en) 2015-03-13 2018-08-21 International Business Machines Corporation Controller and method for migrating RDMA memory mappings of a virtual machine
EP3280091B1 (en) * 2015-03-30 2020-03-18 Huawei Technologies Co. Ltd. Method, apparatus and system for establishing interface between vnfms
US10382534B1 (en) 2015-04-04 2019-08-13 Cisco Technology, Inc. Selective load balancing of network traffic
US10579406B2 (en) * 2015-04-08 2020-03-03 Avago Technologies International Sales Pte. Limited Dynamic orchestration of overlay tunnels
US10425382B2 (en) 2015-04-13 2019-09-24 Nicira, Inc. Method and system of a cloud-based multipath routing protocol
US10135789B2 (en) 2015-04-13 2018-11-20 Nicira, Inc. Method and system of establishing a virtual private network in a cloud service for branch networking
US10498652B2 (en) 2015-04-13 2019-12-03 Nicira, Inc. Method and system of application-aware routing with crowdsourcing
US10476982B2 (en) 2015-05-15 2019-11-12 Cisco Technology, Inc. Multi-datacenter message queue
US10509764B1 (en) 2015-06-19 2019-12-17 Amazon Technologies, Inc. Flexible remote direct memory access
US10034201B2 (en) 2015-07-09 2018-07-24 Cisco Technology, Inc. Stateless load-balancing across multiple tunnels
US9892071B2 (en) * 2015-08-03 2018-02-13 Pure Storage, Inc. Emulating a remote direct memory access (‘RDMA’) link between controllers in a storage array
US10114792B2 (en) * 2015-09-14 2018-10-30 Cisco Technology, Inc Low latency remote direct memory access for microservers
US9781037B2 (en) * 2015-09-15 2017-10-03 Cisco Technology, Inc. Method and apparatus for advanced statistics collection
US10361972B2 (en) * 2015-09-23 2019-07-23 Citrix Systems, Inc. Systems and methods to support VXLAN in partition environment where a single system acts as multiple logical systems to support multitenancy
US10067780B2 (en) 2015-10-06 2018-09-04 Cisco Technology, Inc. Performance-based public cloud selection for a hybrid cloud environment
US11005682B2 (en) * 2015-10-06 2021-05-11 Cisco Technology, Inc. Policy-driven switch overlay bypass in a hybrid cloud network environment
US10462136B2 (en) 2015-10-13 2019-10-29 Cisco Technology, Inc. Hybrid cloud security groups
US10110418B2 (en) * 2015-11-03 2018-10-23 Rancher Labs, Inc. Cloud computing service architecture
US10523657B2 (en) 2015-11-16 2019-12-31 Cisco Technology, Inc. Endpoint privacy preservation with cloud conferencing
US10205677B2 (en) 2015-11-24 2019-02-12 Cisco Technology, Inc. Cloud resource placement optimization and migration execution in federated clouds
US10084703B2 (en) 2015-12-04 2018-09-25 Cisco Technology, Inc. Infrastructure-exclusive service forwarding
US9813338B2 (en) 2015-12-10 2017-11-07 Cisco Technology, Inc. Co-existence of routable and non-routable RDMA solutions on the same network interface
US10498654B2 (en) 2015-12-28 2019-12-03 Amazon Technologies, Inc. Multi-path transport design
US10148570B2 (en) * 2015-12-29 2018-12-04 Amazon Technologies, Inc. Connectionless reliable transport
US9985904B2 (en) 2015-12-29 2018-05-29 Amazon Technolgies, Inc. Reliable, out-of-order transmission of packets
US10367914B2 (en) 2016-01-12 2019-07-30 Cisco Technology, Inc. Attaching service level agreements to application containers and enabling service assurance
US10581793B1 (en) * 2016-04-29 2020-03-03 Arista Networks, Inc. Address resolution in virtual extensible networks
US10129177B2 (en) 2016-05-23 2018-11-13 Cisco Technology, Inc. Inter-cloud broker for hybrid cloud networks
US10659283B2 (en) 2016-07-08 2020-05-19 Cisco Technology, Inc. Reducing ARP/ND flooding in cloud environment
US10432532B2 (en) 2016-07-12 2019-10-01 Cisco Technology, Inc. Dynamically pinning micro-service to uplink port
US10263898B2 (en) 2016-07-20 2019-04-16 Cisco Technology, Inc. System and method for implementing universal cloud classification (UCC) as a service (UCCaaS)
US10382597B2 (en) 2016-07-20 2019-08-13 Cisco Technology, Inc. System and method for transport-layer level identification and isolation of container traffic
US10142346B2 (en) 2016-07-28 2018-11-27 Cisco Technology, Inc. Extension of a private cloud end-point group to a public cloud
US10567344B2 (en) 2016-08-23 2020-02-18 Cisco Technology, Inc. Automatic firewall configuration based on aggregated cloud managed information
US10523592B2 (en) 2016-10-10 2019-12-31 Cisco Technology, Inc. Orchestration system for migrating user data and services based on user information
US11044162B2 (en) 2016-12-06 2021-06-22 Cisco Technology, Inc. Orchestration of cloud and fog interactions
US10326817B2 (en) 2016-12-20 2019-06-18 Cisco Technology, Inc. System and method for quality-aware recording in large scale collaborate clouds
CN109983438B (zh) * 2016-12-22 2024-02-02 英特尔公司 使用直接存储器访问(dma)重新映射来加速半虚拟化网络接口
US20180181421A1 (en) * 2016-12-27 2018-06-28 Intel Corporation Transferring packets between virtual machines via a direct memory access device
US10541927B2 (en) 2016-12-29 2020-01-21 Google Llc System and method for hardware-independent RDMA
US10334029B2 (en) 2017-01-10 2019-06-25 Cisco Technology, Inc. Forming neighborhood groups from disperse cloud providers
US10552191B2 (en) 2017-01-26 2020-02-04 Cisco Technology, Inc. Distributed hybrid cloud orchestration model
US10320683B2 (en) 2017-01-30 2019-06-11 Cisco Technology, Inc. Reliable load-balancer using segment routing and real-time application monitoring
US20180219765A1 (en) 2017-01-31 2018-08-02 Waltz Networks Method and Apparatus for Network Traffic Control Optimization
US10671571B2 (en) 2017-01-31 2020-06-02 Cisco Technology, Inc. Fast network performance in containerized environments for network function virtualization
US11706127B2 (en) 2017-01-31 2023-07-18 Vmware, Inc. High performance software-defined core network
US11252079B2 (en) 2017-01-31 2022-02-15 Vmware, Inc. High performance software-defined core network
US11121962B2 (en) 2017-01-31 2021-09-14 Vmware, Inc. High performance software-defined core network
US20200036624A1 (en) 2017-01-31 2020-01-30 The Mode Group High performance software-defined core network
US10992568B2 (en) 2017-01-31 2021-04-27 Vmware, Inc. High performance software-defined core network
US10778528B2 (en) 2017-02-11 2020-09-15 Nicira, Inc. Method and system of connecting to a multipath hub in a cluster
JP6650896B2 (ja) * 2017-02-17 2020-02-19 日本電信電話株式会社 仮想マシン間通信システム
US10652320B2 (en) * 2017-02-21 2020-05-12 Microsoft Technology Licensing, Llc Load balancing in distributed computing systems
US10560527B2 (en) * 2017-03-02 2020-02-11 Dell Products, L.P. Network service chains using hardware logic devices in an information handling system
US11968132B2 (en) 2017-03-24 2024-04-23 Oracle International Corporation System and method to use queue pair 1 for receiving multicast based announcements in multiple partitions in a high performance computing environment
US10693815B2 (en) 2017-03-24 2020-06-23 Oracle International Corporation System and method to use all incoming multicast packets as a basis for GUID to LID cache contents in a high performance computing environment
US10461947B2 (en) 2017-03-24 2019-10-29 Oracle International Corporation System and method to provide default multicast lid values per partition as additional SMA attributes in a high performance computing environment
US10673644B2 (en) 2017-03-24 2020-06-02 Oracle International Corporation System and method to provide homogeneous fabric attributes to reduce the need for SA access in a high performance computing environment
US10868686B2 (en) 2017-03-24 2020-12-15 Oracle International Corporation System and method to provide default multicast group (MCG) for announcements and discovery as extended port information in a high performance computing environment
US10862694B2 (en) 2017-03-24 2020-12-08 Oracle International Corporation System and method to provide default multicast proxy for scalable forwarding of announcements and information request intercepting in a high performance computing environment
US10841199B2 (en) 2017-03-24 2020-11-17 Oracle International Corporation System and method for optimized path record handling in homogenous fabrics without host stack cooperation in a high performance computing environment
US10601765B2 (en) 2017-03-24 2020-03-24 Oracle International Corporation System and method to provide combined IB and IP address and name resolution schemes via default IB multicast groups in a high performance computing environment
US10868685B2 (en) 2017-03-24 2020-12-15 Oracle International Corporation System and method to provide explicit multicast local identifier assignment for per-partition default multicast local identifiers defined as subnet manager policy input in a high performance computing environment
US11005731B2 (en) 2017-04-05 2021-05-11 Cisco Technology, Inc. Estimating model parameters for automatic deployment of scalable micro services
US10803039B2 (en) * 2017-05-26 2020-10-13 Oracle International Corporation Method for efficient primary key based queries using atomic RDMA reads on cache friendly in-memory hash index
US10346315B2 (en) 2017-05-26 2019-07-09 Oracle International Corporation Latchless, non-blocking dynamically resizable segmented hash index
US10523539B2 (en) 2017-06-22 2019-12-31 Nicira, Inc. Method and system of resiliency in cloud-delivered SD-WAN
US10439877B2 (en) 2017-06-26 2019-10-08 Cisco Technology, Inc. Systems and methods for enabling wide area multicast domain name system
US10382274B2 (en) 2017-06-26 2019-08-13 Cisco Technology, Inc. System and method for wide area zero-configuration network auto configuration
US10425288B2 (en) 2017-07-21 2019-09-24 Cisco Technology, Inc. Container telemetry in data center environments with blade servers and switches
US10892940B2 (en) 2017-07-21 2021-01-12 Cisco Technology, Inc. Scalable statistics and analytics mechanisms in cloud networking
US10601693B2 (en) 2017-07-24 2020-03-24 Cisco Technology, Inc. System and method for providing scalable flow monitoring in a data center fabric
US10541866B2 (en) 2017-07-25 2020-01-21 Cisco Technology, Inc. Detecting and resolving multicast traffic performance issues
CN109391517B (zh) * 2017-08-02 2023-06-27 联想企业解决方案(新加坡)有限公司 用于监控覆盖网络中的数据流量的方法
US10614028B2 (en) 2017-09-14 2020-04-07 Microsoft Technology Licensing, Llc Network traffic routing in distributed computing systems
US10657095B2 (en) * 2017-09-14 2020-05-19 Vmware, Inc. Virtualizing connection management for virtual remote direct memory access (RDMA) devices
CN107508828B (zh) * 2017-09-18 2019-10-18 南京斯坦德云科技股份有限公司 一种超远程数据交互***及方法
CN109522902B (zh) 2017-09-18 2023-07-07 微软技术许可有限责任公司 空-时特征表示的提取
US10956335B2 (en) 2017-09-29 2021-03-23 Oracle International Corporation Non-volatile cache access using RDMA
US11089111B2 (en) 2017-10-02 2021-08-10 Vmware, Inc. Layer four optimization for a virtual network defined over public cloud
US11115480B2 (en) 2017-10-02 2021-09-07 Vmware, Inc. Layer four optimization for a virtual network defined over public cloud
US10999100B2 (en) 2017-10-02 2021-05-04 Vmware, Inc. Identifying multiple nodes in a virtual network defined over a set of public clouds to connect to an external SAAS provider
US10608844B2 (en) 2017-10-02 2020-03-31 Vmware, Inc. Graph based routing through multiple public clouds
US10353800B2 (en) 2017-10-18 2019-07-16 Cisco Technology, Inc. System and method for graph based monitoring and management of distributed systems
US10592418B2 (en) 2017-10-27 2020-03-17 Dell Products, L.P. Cache sharing in virtual clusters
WO2019090523A1 (zh) * 2017-11-08 2019-05-16 华为技术有限公司 一种无服务器架构下业务部署的方法和函数管理平台
US11223514B2 (en) 2017-11-09 2022-01-11 Nicira, Inc. Method and system of a dynamic high-availability mode based on current wide area network connectivity
US11481362B2 (en) 2017-11-13 2022-10-25 Cisco Technology, Inc. Using persistent memory to enable restartability of bulk load transactions in cloud databases
US10705882B2 (en) 2017-12-21 2020-07-07 Cisco Technology, Inc. System and method for resource placement across clouds for data intensive workloads
US11595474B2 (en) 2017-12-28 2023-02-28 Cisco Technology, Inc. Accelerating data replication using multicast and non-volatile memory enabled nodes
CN111654447B (zh) 2018-01-16 2023-04-18 华为技术有限公司 一种报文传输的方法及装置
CN112398817B (zh) * 2018-01-23 2022-02-25 华为技术有限公司 数据发送的方法及设备
CN108494817B (zh) * 2018-02-08 2022-03-04 华为技术有限公司 数据传输方法、相关装置及***
US10909066B2 (en) * 2018-04-03 2021-02-02 Microsoft Technology Licensing, Llc Virtual RDMA switching for containerized applications
US10511534B2 (en) 2018-04-06 2019-12-17 Cisco Technology, Inc. Stateless distributed load-balancing
US10728361B2 (en) 2018-05-29 2020-07-28 Cisco Technology, Inc. System for association of customer information across subscribers
US10158545B1 (en) * 2018-05-31 2018-12-18 Tempered Networks, Inc. Monitoring overlay networks
WO2019236376A1 (en) * 2018-06-05 2019-12-12 R-Stor Inc. Fast data connection system and method
US10904322B2 (en) 2018-06-15 2021-01-26 Cisco Technology, Inc. Systems and methods for scaling down cloud-based servers handling secure connections
US10764266B2 (en) 2018-06-19 2020-09-01 Cisco Technology, Inc. Distributed authentication and authorization for rapid scaling of containerized services
US11019083B2 (en) 2018-06-20 2021-05-25 Cisco Technology, Inc. System for coordinating distributed website analysis
US10819571B2 (en) 2018-06-29 2020-10-27 Cisco Technology, Inc. Network traffic optimization using in-situ notification system
US10904342B2 (en) 2018-07-30 2021-01-26 Cisco Technology, Inc. Container networking using communication tunnels
US11347678B2 (en) 2018-08-06 2022-05-31 Oracle International Corporation One-sided reliable remote direct memory operations
US10908841B2 (en) 2018-09-24 2021-02-02 Cisco Technology, Inc. Increasing throughput of non-volatile memory express over fabric (NVMEoF) via peripheral component interconnect express (PCIe) interface
US10725948B2 (en) 2018-10-17 2020-07-28 Cisco Technology, Inc. RoCE over wireless
CN111294268B (zh) * 2018-12-07 2021-06-08 华为技术有限公司 避免ip地址冲突的方法及装置
EP3694173B1 (en) 2019-02-08 2022-09-21 Palantir Technologies Inc. Isolating applications associated with multiple tenants within a computing platform
US11074097B2 (en) * 2019-02-22 2021-07-27 Vmware, Inc. Specifying service chains
US10972386B2 (en) 2019-03-29 2021-04-06 Juniper Networks, Inc. Scalable multi-tenant underlay network supporting multi-tenant overlay network
US10826826B1 (en) 2019-05-08 2020-11-03 Cisco Technology, Inc. Supporting overlay networks for multiple autonomous systems and underlays
CN110311948B (zh) * 2019-05-17 2022-07-15 深圳致星科技有限公司 容器/容器组间的通信方法及基于此的容器云网络***
WO2020242474A1 (en) 2019-05-30 2020-12-03 Hewlett Packard Enterprise Development Lp Routing nvme-over-fabric packets
US10999084B2 (en) 2019-05-31 2021-05-04 Microsoft Technology Licensing, Llc Leveraging remote direct memory access (RDMA) for packet capture
US11595303B2 (en) * 2019-06-10 2023-02-28 Vmware, Inc. Packet handling in software-defined net working (SDN) environments
US11777804B2 (en) 2019-06-11 2023-10-03 Hewlett Packard Enterprise Development Lp Automatic system provisioning for NVME-over-fabric storage
CN113994321A (zh) 2019-06-25 2022-01-28 慧与发展有限责任合伙企业 使用虚拟输出队列映射结构上nvme分组
CN112243046B (zh) * 2019-07-19 2021-12-14 华为技术有限公司 通信方法和网卡
US11228539B2 (en) * 2019-08-14 2022-01-18 Intel Corporation Technologies for managing disaggregated accelerator networks based on remote direct memory access
US10999137B2 (en) 2019-08-27 2021-05-04 Vmware, Inc. Providing recommendations for implementing virtual networks
US10817460B2 (en) * 2019-08-28 2020-10-27 Advanced New Technologies Co., Ltd. RDMA data sending and receiving methods, electronic device, and readable storage medium
US11500856B2 (en) 2019-09-16 2022-11-15 Oracle International Corporation RDMA-enabled key-value store
US11044190B2 (en) 2019-10-28 2021-06-22 Vmware, Inc. Managing forwarding elements at edge nodes connected to a virtual network
US10963407B1 (en) 2019-11-15 2021-03-30 Red Hat, Inc. Remote direct memory access based networking gateway
US11489783B2 (en) 2019-12-12 2022-11-01 Vmware, Inc. Performing deep packet inspection in a software defined wide area network
US11394640B2 (en) 2019-12-12 2022-07-19 Vmware, Inc. Collecting and analyzing data regarding flows associated with DPI parameters
CN111193653B (zh) * 2019-12-31 2021-08-06 腾讯科技(深圳)有限公司 数据传输方法、装置、设备及存储介质
US11438789B2 (en) 2020-01-24 2022-09-06 Vmware, Inc. Computing and using different path quality metrics for different service classes
CN111478846B (zh) * 2020-03-18 2022-01-21 浪潮思科网络科技有限公司 一种云网环境下实现多租户网络的方法及设备、介质
US20210306166A1 (en) * 2020-03-30 2021-09-30 Mellanox Technologies Tlv Ltd. Network information transmission systems
CN111541738B (zh) * 2020-03-31 2022-05-27 北京华三通信技术有限公司 一种通信方法及装置
WO2021209132A1 (en) * 2020-04-16 2021-10-21 Huawei Technologies Co., Ltd. A device and method for romote direct memory access
EP4133375B1 (en) * 2020-05-28 2024-03-20 Huawei Technologies Co., Ltd. Method and system for direct memory access
CN111367853A (zh) * 2020-05-29 2020-07-03 腾讯科技(深圳)有限公司 数据传输方法、装置、设备及计算机可读存储介质
CN113900791A (zh) * 2020-06-22 2022-01-07 华为技术有限公司 一种作业处理方法以及相关设备
US11477127B2 (en) 2020-07-02 2022-10-18 Vmware, Inc. Methods and apparatus for application aware hub clustering techniques for a hyper scale SD-WAN
CN111966446B (zh) * 2020-07-06 2022-08-19 复旦大学 一种容器环境下rdma虚拟化方法
CN113949650A (zh) * 2020-07-17 2022-01-18 华为技术有限公司 随流检测方法及相关设备
US11709710B2 (en) 2020-07-30 2023-07-25 Vmware, Inc. Memory allocator for I/O operations
US11444865B2 (en) 2020-11-17 2022-09-13 Vmware, Inc. Autonomous distributed forwarding plane traceability based anomaly detection in application traffic for hyper-scale SD-WAN
US11575600B2 (en) 2020-11-24 2023-02-07 Vmware, Inc. Tunnel-less SD-WAN
US11777849B2 (en) 2020-12-04 2023-10-03 Oracle International Corporation Multi-customer (multi-tenants) support with hypervisor based bond implementation
CN112600826B (zh) * 2020-12-10 2022-02-22 中国科学院深圳先进技术研究院 一种虚拟化安全网关***
US11601356B2 (en) 2020-12-29 2023-03-07 Vmware, Inc. Emulating packet flows to assess network links for SD-WAN
US11991246B2 (en) 2020-12-30 2024-05-21 Oracle International Corporation Cloud scale multi-tenancy for RDMA over converged ethernet (RoCE)
US11665046B2 (en) 2021-01-15 2023-05-30 Western Digital Technologies, Inc. Failover port forwarding between peer storage nodes
US11792127B2 (en) 2021-01-18 2023-10-17 Vmware, Inc. Network-aware load balancing
US11979325B2 (en) 2021-01-28 2024-05-07 VMware LLC Dynamic SD-WAN hub cluster scaling with machine learning
US11509571B1 (en) 2021-05-03 2022-11-22 Vmware, Inc. Cost-based routing mesh for facilitating routing through an SD-WAN
US12009987B2 (en) 2021-05-03 2024-06-11 VMware LLC Methods to support dynamic transit paths through hub clustering across branches in SD-WAN
US11729065B2 (en) 2021-05-06 2023-08-15 Vmware, Inc. Methods for application defined virtual network service among multiple transport in SD-WAN
CN113242248B (zh) * 2021-05-10 2022-03-25 重庆邮电大学 工业异构网络高速协议转换装置及并行处理单元
US20220391348A1 (en) * 2021-06-04 2022-12-08 Microsoft Technology Licensing, Llc Userspace networking with remote direct memory access
US12015536B2 (en) 2021-06-18 2024-06-18 VMware LLC Method and apparatus for deploying tenant deployable elements across public clouds based on harvested performance metrics of types of resource elements in the public clouds
US11489720B1 (en) 2021-06-18 2022-11-01 Vmware, Inc. Method and apparatus to evaluate resource elements and public clouds for deploying tenant deployable elements based on harvested performance metrics
US11375005B1 (en) 2021-07-24 2022-06-28 Vmware, Inc. High availability solutions for a secure access service edge application
US11943146B2 (en) 2021-10-01 2024-03-26 VMware LLC Traffic prioritization in SD-WAN
US11818213B2 (en) * 2022-03-10 2023-11-14 Nokia Solutions And Networks Oy Zero-trust authentication for secure remote direct memory access
US11909815B2 (en) 2022-06-06 2024-02-20 VMware LLC Routing based on geolocation costs

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120250682A1 (en) * 2011-03-30 2012-10-04 Amazon Technologies, Inc. Frameworks and interfaces for offload device-based packet processing
US20130044629A1 (en) * 2011-08-18 2013-02-21 International Business Machines Corporation Virtual network overlays and methods of forming thereof
US20130322446A1 (en) * 2012-06-05 2013-12-05 International Business Machines Corporation Virtual ethernet port aggregation (vepa)-enabled multi-tenant overlay network
CN103563329A (zh) * 2011-06-07 2014-02-05 惠普发展公司,有限责任合伙企业 用于虚拟化数据中心的可扩缩多租户网络架构
CN104054067A (zh) * 2011-03-30 2014-09-17 亚马逊技术公司 基于减负装置的数据包处理的框架和接口

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070208820A1 (en) * 2006-02-17 2007-09-06 Neteffect, Inc. Apparatus and method for out-of-order placement and in-order completion reporting of remote direct memory access operations
US8244825B2 (en) * 2006-11-06 2012-08-14 Hewlett-Packard Development Company, L.P. Remote direct memory access (RDMA) completion
US8166205B2 (en) * 2007-07-31 2012-04-24 Cisco Technology, Inc. Overlay transport virtualization
US8244826B2 (en) * 2007-10-23 2012-08-14 International Business Machines Corporation Providing a memory region or memory window access notification on a system area network
US8122155B1 (en) * 2009-06-23 2012-02-21 Chelsio Communications, Inc. RDMA write completion semantics
US8446824B2 (en) * 2009-12-17 2013-05-21 Intel Corporation NUMA-aware scaling for network devices
US20110185082A1 (en) * 2009-12-29 2011-07-28 Tervela, Inc. Systems and methods for network virtualization
US8462780B2 (en) * 2011-03-30 2013-06-11 Amazon Technologies, Inc. Offload device-based stateless packet processing
US9473596B2 (en) * 2011-09-27 2016-10-18 International Business Machines Corporation Using transmission control protocol/internet protocol (TCP/IP) to setup high speed out of band data communication connections
US10360176B2 (en) * 2012-01-17 2019-07-23 Intel Corporation Techniques for command validation for access to a storage device by a remote client
US9240944B2 (en) * 2012-10-19 2016-01-19 Cisco Technology, Inc. Overlay services in communication networks
US9176911B2 (en) * 2012-12-11 2015-11-03 Intel Corporation Explicit flow control for implicit memory registration
US9191262B2 (en) * 2013-02-22 2015-11-17 Dell Products L.P. Network communication protocol processing optimization system
US10452580B2 (en) * 2013-03-26 2019-10-22 Vmware, Inc. Method and system for providing remote direct memory access to virtual machines
US9160678B2 (en) * 2013-04-15 2015-10-13 International Business Machines Corporation Flow control credits for priority in lossless ethernet
US9692706B2 (en) * 2013-04-15 2017-06-27 International Business Machines Corporation Virtual enhanced transmission selection (VETS) for lossless ethernet
US9558146B2 (en) * 2013-07-18 2017-01-31 Intel Corporation IWARP RDMA read extensions
US9411775B2 (en) * 2013-07-24 2016-08-09 Intel Corporation iWARP send with immediate data operations
CA2924469A1 (en) * 2013-10-10 2015-04-16 AdaptiveApps, Inc. Adaptive overlay networking
US9325617B2 (en) * 2013-12-09 2016-04-26 International Business Machines Corporation Overlay capabilities exchange using DCBX
US10659523B1 (en) * 2014-05-23 2020-05-19 Amazon Technologies, Inc. Isolating compute clusters created for a customer
US20160026605A1 (en) * 2014-07-28 2016-01-28 Emulex Corporation Registrationless transmit onload rdma
US11068136B1 (en) * 2014-11-11 2021-07-20 Amazon Technologies, Inc. Application fulfillment platform with automated license management mechanisms
US9747249B2 (en) * 2014-12-29 2017-08-29 Nicira, Inc. Methods and systems to achieve multi-tenancy in RDMA over converged Ethernet
CN104753816A (zh) * 2015-03-27 2015-07-01 华为技术有限公司 一种rdma连接的报文处理方法及相关装置
US10708173B2 (en) * 2015-06-12 2020-07-07 Telefonaktiebolaget Lm Ericsson (Publ) Multipath forwarding in an overlay network

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120250682A1 (en) * 2011-03-30 2012-10-04 Amazon Technologies, Inc. Frameworks and interfaces for offload device-based packet processing
CN104054067A (zh) * 2011-03-30 2014-09-17 亚马逊技术公司 基于减负装置的数据包处理的框架和接口
CN103563329A (zh) * 2011-06-07 2014-02-05 惠普发展公司,有限责任合伙企业 用于虚拟化数据中心的可扩缩多租户网络架构
US20130044629A1 (en) * 2011-08-18 2013-02-21 International Business Machines Corporation Virtual network overlays and methods of forming thereof
US20130322446A1 (en) * 2012-06-05 2013-12-05 International Business Machines Corporation Virtual ethernet port aggregation (vepa)-enabled multi-tenant overlay network

Also Published As

Publication number Publication date
US9747249B2 (en) 2017-08-29
US20170357611A1 (en) 2017-12-14
US20190391954A1 (en) 2019-12-26
EP3241330A1 (en) 2017-11-08
US20220092021A1 (en) 2022-03-24
CN107113298A (zh) 2017-08-29
US20160188527A1 (en) 2016-06-30
WO2016109458A1 (en) 2016-07-07
US10430373B2 (en) 2019-10-01
CN107113298B (zh) 2020-06-16
US11194755B2 (en) 2021-12-07
CN111400237A (zh) 2020-07-10
US11782868B2 (en) 2023-10-10
EP3241330B1 (en) 2019-07-10

Similar Documents

Publication Publication Date Title
CN111400237B (zh) 为rdma提供多租赁支持的方法
US20210392017A1 (en) Methods and systems to offload overlay network packet encapsulation to hardware
US9419897B2 (en) Methods and systems for providing multi-tenancy support for Single Root I/O Virtualization
US12010173B2 (en) Class-based queueing for scalable multi-tenant RDMA traffic
US9197551B2 (en) Heterogeneous overlay network translation for domain unification
CN106713103B (zh) 用于虚拟和物理网络集成的方法和***
WO2016003489A1 (en) Methods and systems to offload overlay network packet encapsulation to hardware
CN104168223B (zh) 用于确定分组优先级的方法和***
US10637781B2 (en) Method for reliable data delivery between tunnel endpoints using BFD protocol
US12021952B2 (en) Application based egress interface selection
CN116724546A (zh) 用于融合以太网上的RDMA(RoCE)云规模多租赁
WO2022146466A1 (en) Class-based queueing for scalable multi-tenant rdma traffic
EP4272083A1 (en) Class-based queueing for scalable multi-tenant rdma traffic
CN116686277A (zh) 用于可扩展多租户rdma流量的基于类的排队

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