用于可扩展多租户RDMA流量的基于类的排队的制作方法

文档序号:35337961发布日期:2023-09-07 02:24阅读:54来源:国知局
用于可扩展多租户RDMA流量的基于类的排队的制作方法


背景技术:

1、融合以太网上的rdma(roce)是允许通过无损以太网网络进行远程直接存储器访问(rdma)的网络协议。roce通过在以太网上封装infiniband(ib)传输分组来实现这一点。通常,roce涉及具有专用rdma队列和专用vlan的层2网络。但是,层2网络无法扩展且性能不佳,因为它们缺乏更具可扩展性和高性能的层3网络中存在的关键特性和特点。因此,现有的公共云实施方式无法使用roce协议提供数据传送。


技术实现思路

1、本公开一般而言涉及数据联网。更具体地,描述了使层2流量能够使用层3协议在层3网络上传送的技术。在某些实施例中,本文描述的技术使远程直接存储器访问(rdma)流量(例如,融合以太网上的rdma(roce)流量)能够通过共享的层3物理网络或使用层3路由协议的交换机架构从多租户主机机器(即,托管属于不同租户或客户的计算实例的主机机器)上的计算实例传送到另一个多租户主机机器上的计算实例。这种通信也可以可选地包括其它流量(例如,tcp和/或udp流量)。客户或租户体验到通信发生在专用的层2网络上,而通信实际上发生在使用层3路由协议的共享(即,在多个客户或租户之间共享)层3网络上。本文描述了各种实施例,包括方法、系统、存储可由一个或多个处理器执行的程序、代码或指令的非暂态计算机可读存储介质等。

2、在某些实施例中,一种数据联网的方法包括由联网设备接收具有第一服务质量(qos)数据字段的第一rdma分组;基于第一qos数据字段的值,将第一rdma分组排入多个队列中的第一队列;由联网设备接收具有第二qos数据字段的第二rdma分组;以及基于第二qos数据字段的值,将第二rdma分组排入多个队列中的第二队列,第二队列与第一队列不同。该方法还可以包括在多个队列之中根据第一权重从第一队列检索第一rdma分组,并从第二队列检索第二rdma分组。第一权重可以是加权循环方案。附加地或可替代地,多个队列可以包括控制队列,并且该方法还可以包括由联网设备从控制队列中检索多个控制分组,其中检索多个控制分组比检索第一rdma分组和检索第二rdma分组具有严格的优先级。在这种情况下,多个队列可以包括多个rdma队列,其包括第一队列和第二队列,并且控制队列可以被配置为具有比多个rdma队列中的任何队列低的带宽。多个控制分组可以包括网络控制协议分组或拥塞通知分组中的至少一个。

3、在如上所述的方法中,第一qos数据字段可以是第一rdma分组的互联网协议(ip)报头的差分服务代码点(dscp)数据字段。第一和第二rdma分组中的每一个可以是rocev2分组;可替代地,第一和第二rdma分组中的每一个可以是根据覆盖封装协议(例如,vxlan、nvgre、geneve、stt和mpls之中的一种)格式化的层3封装的分组,并且该方法还可以包括解封装第一rdma分组以获得第一解封装的rdma分组,以及将拥塞指示信息从第一rdma分组的至少一个外部报头复制到第一解封装的rdma分组。上述任一种方法还可以包括接收多个rdma分组,多个rdma分组中的每一个具有对应的qos数据字段;对于多个rdma分组中的每一个,基于rdma分组的qos数据字段的值将rdma分组排入多个队列中的队列;从多个队列中检索多个rdma分组,其中多个rdma分组包括多个分组流,并且其中该方法还包括根据每流等价多路径方案路由多个分组流。

4、在又一些实施例中,描述了用于rdma流量的基于类的排队的技术(例如,在层3网络中),其可以被用于在云规模的网络架构中维持基于类的分离,使得特定队列中的rdma流量不会影响其它队列中的rdma流量。根据某些实施例,系统可以被实现为包括用于传输不同类和来自不同租户的rdma流量的共享架构,其中从一个rdma网络接口控制器(nic)到另一个nic的跨越共享架构的路径中的每个设备包括专用于不同类的rdma流量的多个队列。

5、根据某些实施例,一种对rdma分组进行排队的方法包括由联网设备接收多个rdma分组。多个rdma分组中的每个rdma分组包括服务质量(qos)数据字段,并且对于多个rdma分组中的每个rdma分组,qos数据字段具有指示服务的类的qos值rdma分组位于多个qos值之中。该方法还包括由联网设备在多个rdma队列之间分发多个rdma分组。根据多个qos值到多个rdma队列的第一映射来执行分发。这种方法还包括由联网设备在多个rdma队列之中根据第一权重从多个rdma队列中检索多个rdma分组。检索到的多个rdma分组可以包括多个分组流,在这种情况下,示例还可以包括根据每流等价多路径方案来路由检索到的多个rdma分组的多个分组流。多个rdma分组中的每个rdma分组可以是rocev2分组,或者多个rdma分组中的每个rdma分组可以是根据覆盖封装协议(例如,vxlan、nvgre、geneve、stt或mpls)格式化的层3封装分组。

6、在进一步的示例中,分发包括响应于确定多个rdma分组中的第一rdma分组的qos数据字段具有第一qos值而将第一rdma分组存储到多个rdma队列中的第一rdma队列;以及,响应于确定多个rdma分组中的第二rdma分组的qos数据字段具有第二qos值而将第二rdma分组存储到多个rdma队列中的第二rdma队列,其中第二qos值与第一qos值不同。

7、根据某些实施例,另一种对rdma分组进行排队的方法还包括由联网设备从控制队列中检索多个控制分组,其中检索多个控制分组比检索多个rdma分组具有严格的优先级。在这种情况下,控制队列可以被配置为具有比多个rdma队列中的任何一个更低的带宽。可替代地或附加地,多个控制分组可以包括至少一个网络控制协议分组(例如,bgp分组)和/或至少一个拥塞通知分组(cnp分组)。

8、根据某些实施例,联网设备(例如,叶交换机或主干交换机)可以被配置为包括多个rdma队列,并且处理电路系统耦合到多个rdma队列并且被配置为接收多个rdma分组,其中多个rdma分组中的每个rdma分组包括服务质量(qos)数据字段;根据多个qos值到多个rdma队列的第一映射在多个rdma队列之间分发多个rdma分组;在多个rdma队列之中根据第一权重从多个rdma队列中检索多个rdma分组。对于多个rdma分组中的每个rdma分组,qos数据字段具有指示rdma分组的服务类并且在多个qos值之中的值。

9、在又一些实施例中,描述了用于封装的远程直接存储器访问(rdma)流量的基于类的标记的技术,该技术可以被用于在云规模(例如,在层3传输期间)维持跨网络架构的一致的基于类的分离,以便特定队列中的rdma流量不会影响其它队列中的rdma流量。根据某些实施例,系统可以被实现为包括用于传输不同类且来自不同租户的rdma流量的共享架构,其中从一个rdma网络接口控制器(nic)到另一个nic的跨共享架构的路径中的每个设备包括专用于不同类的rdma流量的多个队列。本文描述了各种发明性实施例,包括方法、系统、存储可由一个或多个处理器执行的程序代码、指令等的非暂态计算机可读存储介质。

10、根据某些实施例,一种数据联网方法包括由联网设备接收多个rdma分组。多个rdma分组中的每个rdma分组包括服务质量(qos)数据字段,该数据字段具有指示rdma分组的服务类的qos值。多个rdma分组包括qos数据字段具有第一qos值的rdma分组和qos数据字段具有与第一qos值不同的第二qos值的rdma分组。该方法还包括,对于多个rdma分组中的每一个,封装rdma分组以产生多个层3封装的分组中的对应一个,该对应的层3封装的分组具有至少一个外部报头。对于多个rdma分组中的每一个,rdma分组的封装包括将对应的层3封装的分组的至少一个外部报头添加到rdma分组。对于多个层3封装的分组中的每一个,层3封装的分组的至少一个外部报头的qos数据字段采用基于对应rdma分组的qos数据字段的qos值的qos值。对于多个层3封装的分组中的每个层3封装的分组,至少一个外部报头可以包括基于对应rdma分组的vlan id的虚拟网络标识字段。在这种情况下,多个rdma分组可以包括各自具有第一vlan id的rdma分组(一些分组可能具有与其它分组不同的qos值),以及各自具有与第一vlan id不同的第二vlan id的rdma分组。可替代地或附加地,多个层3封装的分组中的至少一个层3封装的分组可以包括第一vlan标签和与第一vlan标签不同的第二vlan标签。

11、对于多个层3封装的分组中的每一个,封装的分组的至少一个外部报头可以包括具有目的地端口号4791(例如,rocev2保留的udp端口)的用户数据报协议(udp)报头。可替代地或附加地,层3封装的分组的至少一个外部报头可以包括具有目的地ip地址的互联网协议(ip)报头,该目的地ip地址与对应rdma分组的目的地介质访问控制(mac)地址相关联。

12、对于多个rdma分组中的每个rdma分组,rdma分组的qos数据字段可以是rdma分组的ip报头的dscp数据字段。在这种情况下,对于多个层3封装的分组中的每一个,层3封装的分组的至少一个外部报头的qos数据字段中的qos值可以等于对应rdma分组的qos数据字段中的qos值。可替代地,对于多个rdma分组中的每个rdma分组,rdma分组的qos数据字段可以是vlan标签的ieee 802.1p数据字段。在这种情况下,封装rdma分组可以包括从rdma分组的qos数据字段的qos值和qos值的映射中获得用于对应层3封装的分组的至少一个外部报头的qos数据字段的qos值,并将获得的qos值存储到该层3封装的分组的至少一个外部报头的qos数据字段中。

13、根据某些实施例,进一步的数据联网方法还包括,对于多个层3封装的分组中的至少一个层3封装的分组中的每一个,将拥塞指示信息从对应的rdma分组复制到在层3封装的分组的至少一个外部报头。可替代地或附加地,数据联网的方法还可以包括解封装第二多个层3封装的分组中的每一个以获得多个解封装的rdma分组中的对应一个。对于多个解封装的rdma分组中的至少一个,解封装可以包括将拥塞指示信息从对应的层3封装的分组的至少一个外部报头复制到解封装的rdma分组。

14、根据某些实施例,一种非暂态计算机可读存储器可以存储可由一个或多个处理器执行的多条指令,该多条指令包括当由一个或多个处理器执行时使一个或多个处理器执行上述方法中的任何一个的指令。

15、根据某些实施例,一种系统可以包括一个或多个处理器,以及耦合到一个或多个处理器的存储器。存储器可以存储可由一个或多个处理器执行的多条指令,该多条指令包括当由一个或多个处理器执行时使一个或多个处理器执行上述方法中的任何一个的指令。

16、参考以下说明书、权利要求和附图,前述内容连同其它特征和实施例将变得更加清楚。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1