为RDMA提供多租赁支持的方法技术

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

【技术实现步骤摘要】
为RDMA提供多租赁支持的方法本申请是申请日为2015年12月28日、申请号为201580068388.1、专利技术名称为“为RDMA提供多租赁支持的方法”的专利技术专利申请的分案申请。
本专利技术公开涉及为RDMA提供多租赁支持。
技术介绍
远程直接存储器存取(RDMA)直接在两个应用之间提供读和写服务,并使得数据直接传输到应用缓冲区而无需中间数据拷贝。RDMA使得存储器数据传输能够绕过操作系统和内核。目前存在若干种通过网络传输RDMA分组的协议。RDMA传输协议的示例是融合以太网上的RDMA(RDMAoverConvergedEthernet,RoCE)和互联网广域RDMA协议(InternetWideAreaRDMAProtocol,iWARP)。RoCE是开放系统互连(OSI)模型第二层网络技术,其通过绕过CPU或内核实现同一以太网上两个主机之间的直接数据传输。目前,RoCE版本1不支持互联网协议(IP)层路由,并且在多租户域中不可用。RoCE版本2确实支持IP层路由,但是在多租户域中不可用。目前没有机制利用在软件定义数据中心中支持多租赁的覆盖网络来使用RDMA数据传输协议(诸如RoCE或iWARP)。当今,源自VM的覆盖网络L2帧的封装用软件处理。这涉及在覆盖网络软件部分上的重要工作,以维护和查找覆盖网络地址映射表,并且在分组被发出到线路上之前用包含相关覆盖网络、UDP、IP和以太网信息的外部报头封装传送分组。类似地,对于接收到的分组,外部报头解封装的相反处理也是软件负责。用软件进行的每次映射表查找和分组的封装/解封装都会导致显著的CPU成本并影响性能。
技术实现思路
一些实施例提供用于在虚拟L3网络上的多租户云计算环境中经由作为L2技术的RDMA数据传输协议(诸如RoCE)使得能够进行RDMA传输的方法。这使得能够使用软件定义网络(SoftwareDefinedNetwork,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概念性地图示在本专利技术的一些实施例中当目的地RDMANIC接收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覆盖网络,隧道端点被称为虚拟隧道端点(Virtua本文档来自技高网
...

【技术保护点】
1.一种用于在系统中提供对远程直接存储器存取(RDMA)的多租赁支持的方法,所述系统包括多个物理主机,每个物理主机托管一组数据计算节点(DCN),所述方法包括:/n在第一物理主机的RDMA协议栈处:/n接收分组,所述分组包括来自在第一主机计算机上托管的第一DCN的、对从在第二主机计算机上托管的第二DCN进行RDMA数据传输的请求;以及/n将与所述第一DCN相关联的覆盖网络的一组参数从所述RDMA协议栈发送到所述第一主机计算机的物理RDMA网络接口控制器(NIC);/n其中所述物理RDMA NIC利用(i)RDMA数据传输报头和(ii)使用所述覆盖网络的所述一组参数的覆盖网络报头来封装所述分组,并且使用覆盖网络将封装后的分组传输到第二主机计算机。/n

【技术特征摘要】
20141229 US 62/097,505;20150312 US 14/656,3681.一种用于在系统中提供对远程直接存储器存取(RDMA)的多租赁支持的方法,所述系统包括多个物理主机,每个物理主机托管一组数据计算节点(DCN),所述方法包括:
在第一物理主机的RDMA协议栈处:
接收分组,所述分组包括来自在第一主机计算机上托管的第一DCN的、对从在第二主机计算机上托管的第二DCN进行RDMA数据传输的请求;以及
将与所述第一DCN相关联的覆盖网络的一组参数从所述RDMA协议栈发送到所述第一主机计算机的物理RDMA网络接口控制器(NIC);
其中所述物理RDMANIC利用(i)RDMA数据传输报头和(ii)使用所述覆盖网络的所述一组参数的覆盖网络报头来封装所述分组,并且使用覆盖网络将封装后的分组传输到第二主机计算机。


2.如权利要求1所述的方法,其中第一主机计算机执行虚拟化软件,所述虚拟化软件实现逻辑转发元件(LFE),其中所述第一DCN连接到所述LFE的端口,所述方法还包括:
确定所述LFE的所述端口与覆盖网络的第一隧道端点相关联;以及
从所述第一隧道端点的参数和与所述第二DCN相关联的第二隧道端点的参数确定所述覆盖网络的所述一组参数。


3.如权利要求1所述的方法,还包括:
在所述物理RDMANIC处接收来自所述第二DCN的RDMA数据;以及
将来自所述物理RDMANIC的RDMA数据直接插入到所述第一DCN的存储器缓冲区中,从而绕过在所述第一主机计算机上执行的操作系统和虚拟化软件。


4.如权利要求1所述的方法,其中所述第一DCN和所述第二DCN与不同的互联网协议(IP)地址相关联。


5.如权利要求4所述的方法,还包括利用用户数据报协议(UDP)报头和包括所述第一DCN的IP地址和所述第二DCN的IP地址的IP报头封装所述分组。


6.如权利要求1所述的方法,其中在发送包括对RDMA数据传输的请求的分组之前,所述第一DCN为所述第一DCN和所述第二DCN之间的RDMA连接创建唯一连接标识符。


7.如权利要求6所述的方法,还包括:
创建包括第一发送队列和第一接收队列的第一队列对,其中所述第二主机计算机的RDMA协议栈创建包括第二发送队列和第二接收队列的第二队列对;以及
将覆盖网络的所述一组参数与所述第一和第二队列对相关联。


8.如权利要求1所述的方法,其中所述RDMA数据传输协议是融合以太网上的RDMA(RoCE)和互联网广域RDMA协议(iWARP)之一。


9.一种用于在数据中心中提供远程直接存储器存取(RDMA)支持的方法,所述数据中心包括托管用于多个租户的多个数据计算节点(DCN)的多个主机计算机,所述方法包括:
从第一主机计算机的物理RDMA网络接口控制器(NIC)向第...

【专利技术属性】
技术研发人员:S·切里恩T·因加莱R·S·纳拉哈里·万卡塔
申请(专利权)人:NICIRA股份有限公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1