【RDMA】RoCE网络QoS|应用层设置PFC等级|Tos|Priority|TC

目录

1.什么是QoS

2.为什么RoCE网络需要QoS

3.为了实现每个流有不同的优先级,硬件层如何对流量分类

4. 应用层如何对流量分类

5. 应用层对流量的分类是怎么映射到硬件层上的分类

6.映射完成之后硬件是怎么针对优先级对网络流进行调度的 

6.1 严格优先级

6.2 最小带宽保证(Enhanced Transmission Selection增强传输选择, ETS)

6.3 速率限制

Incast和PFC

PFC 和global pause flowcontrol 性能比较

7.额外补充知识

文档


作者:bandaoyu 链接:https://blog.csdn.net/bandaoyu/article/details/115633835

1.什么是QoS

QoS是一种机制,它给一个网络流赋予一个优先级,并且管理它的最低需求(guarantees),极限能力(limitations)和它相比其他网络流的优先级服务。这是通过一个2/3阶段的过程将用户层的优先级映射到一个硬件层流量类(hardware Traffic Class)上实现的。流量类(traffic class)被赋予QoS属性(缓存分配,流控制,排队,调度,随机早期检测,显式拥塞通知等等),并且不同的流按照这些对应的属性被服务。

2.为什么RoCE网络需要QoS

 RDMA最初设计用在运行高性能计算应用的infiniband网络中。Infiniband网络在协议规定上是无损网络,不会产生丢包现象。高性能计算应用通常会针对网络性能优化,因此拥有更友好的网络流量。进而,高性能计算网络对于QoS配置的需求也就更低。在另一方面,数据中心网络面对的是任意变化的流量场景,不同的网络流需要协调服务等级以提高网络效率。这产生更高的QoS要求来解决不同的问题。

为什么需要无损网络:长期以来,HPC(高性能计算)的RDMA都是在Infiniband集群中使用,数据包丢失在此类群集中很少见,因此RDMA Infiniband传输层(在NIC上实现)的重传机制很简陋,既:go-back-N重传,但是现在RDMA的使用更广泛,在其他网络中,丢包的概率大于Infiniband集群,一旦丢包,使用RDMA的go-back-N重传机制效率非常低,会大大降低RDMA的传输效率,所以要想发挥出RDMA真正的性能,势必要为RDMA搭建一套不丢包的无损网络环境,而Qos是确保网络不丢包的手段之一。

go-back-N重传,见2.1 Infiniband RDMA and RoCE:https://blog.csdn.net/bandaoyu/article/details/115620365

3.为了实现每个流有不同的优先级,硬件层如何对流量分类

在IP/Ethernet数据包头部中,有两种方式来对网络包进行分类:

  • 使用VLAN头部的PCP域 (二层)
  • 使用IP头部的DSCP域     (三层)

新的 DSField 的结构( 差异化服务代码点 + 显示拥塞通知 ):(注意DSField=DSCP+ECN)

在这里插入图片描述
IPV4服务类型(TOS)被Differentiated Services Field(DSField)替换_努力不停努力的博客-CSDN博客_ipv4服务类型

IPV4服务类型(TOS)被Differentiated Services Field(DSField)替换_努力不停努力的博客-CSDN博客_ipv4服务类型

IP优先级和DSCP优先级的区别

(IP优先级是RFC1349 在Tos字段上定义的优先级划分,后来不够用又将Tos字段重新定义优先级划分,就是DSCP优先级。所以IP优先级和DSCP优先级是在同一个字段(Tos)的两个不同的优先级定义)

4. 应用层如何对流量分类

        为了满足 '不同应用需要不同等级的网络流' 服务,verbs接口和rdma_cm接口都向应用层提供了设置网络流优先级属性的API。(也就是提供接口修改报文的Tos字段)

类似于tcp/ip套接字中的setsockopt可以设置QoS参数。

5. 应用层对流量的分类是怎么映射到硬件层上的分类

通常是要经过一个两阶段或者三阶段的过程来完成,但这在不同的库接口(verbs和rdma_cm)以及不同版本的RoCE协议下也是不同的。

(创建链接时,RoCEv1 和RoCEv2的选择,见文章:http://t.csdn.cn/rmz6R)

首先,针对不同协议来看:

RoCEv1:

这个协议是将RDMA数据段封装到以太网数据段内,再加上以太网的头部,因此属于二层数据包,为了对它进行分类的话,只能使用VLAN头部中的PCP域来设置优先级值,因此还需要额外开启VLAN功能。当开启VLAN之后,在不同的库中映射过程如下:

  • verbs:
    • 应用在创建QP时,对QP属性中的SL(service level)字段进行设置优先级。
    • 在硬件驱动中,会自动将SL转换成VLAN头部中的PCP域代表的值UP,转换方式:UP = SL & 7,该值只有8种可选值
    • 网络流会根据UP值映射到对应的TC上
  • rdma_cm:
    • 应用通过rdma_set_option函数来设置ToS值,该值只有4种有效值:0,8,24,16,
    • 然后在内核中,将ToS转换成sk_prio,该值也只有4种有效值:0,2,4,6,映射方式固定
    • 最后在硬件驱动中,将sk_prio转换成UP,映射方式可以用户自定义
    • 网络流会根据UP值映射到对应的TC上。  (Linux操作系统中的流量控制器TC(Traffic Control)Linux下TC使用说明_gaopeiliang的专栏-CSDN博客_linux tc 命令)

 实例:基于RoCE v1配置PFC:基于RoCE v1配置PFC_u013431916的博客-CSDN博客

在端主机侧,映射关系为:
ToS -> skb_priority -> Vlan-qos (也记为User Priority,即UP,其值为Vlan tag中PCP的值) -> tc。

在交换机侧,映射关系为:
PCP + DEI -> switch-priority -> ingress Port Group (PG)。其中PG包含对PFC阈值的配置。

本文使用tc 4以及switch-priority 4为例。

RoCEv2:

这个协议是将RDMA数据段先封装到UDP数据段内,加上UDP头部,再加上IP头部,最后在加上以太网头部,属于三层数据包,为了对它进行分类的话,既可以使用以太网VLAN中的PCP域,也可以使用IP头部的DSCP域。对于PCP域的映射过程和上面一致,下面仅解释DSCP域的映射过程:

  • verbs:
    • 应用在创建QP后转换状态时,对QP属性中GRH中的traffic_class字段进行设置优先级。(注意对该属性的修改,需要在特定的转换步骤执行,具体查看ibv_modify_qp的函数说明:ibv_modify_qp() - RDMAmojo RDMAmojo,页面搜索IBV_QP_AV)
    • 在硬件驱动中,IP头部的ToS字段(8bit)会直接被赋值为traffic_class,而DSCP只是ToS字节中的高6位 (值0~63),因此traffic_class到DSCP值的一种简单转换是:traffic_class=DSCP值 <<2 (所以traffic_class=8的设置的DSCP值=8/4=2,如果想设置优先级4,则traffic_class应设置为4*4=16 )更多的转换是:
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RDMA(Remote Direct Memory Access)是一种数据传输技术,它允许主机之间直接访问彼此的内存,而无需通过操作系统的介入。RDMA可以显著提高数据传输效率和降低处理延迟,常用于高性能计算、存储网络和数据中心等领域。ROCE(RDMA over Converged Ethernet)和Iwarp都是基于RDMA技术的协议,但有一些区别: 1. ROCE(RDMA over Converged Ethernet):ROCE是一种在以太网上实现RDMA的协议。它利用以太网的物理层和数据链路层,通过使用特殊的以太网帧格式和扩展头部来实现RDMA功能。ROCE可以在现有以太网基础设施上实现低延迟、高带宽的数据传输,并且与以太网交换机和路由器兼容。 2. Iwarp:Iwarp是一种在TCP/IP网络上实现RDMA的协议。它通过在TCP/IP协议栈中添加额外的RDMA支持来实现数据直接存取。Iwarp协议需要在操作系统内核中进行实现,因此需要特定的驱动程序和软件支持。由于基于TCP/IP协议,Iwarp可以在现有的IP网络基础设施上使用。 在ROCE和Iwarp之间选择时,需要考虑以下因素: - 兼容性:ROCE和Iwarp在不同的网络基础设施上有不同的兼容性要求。ROCE需要支持特殊的以太网帧格式和扩展头部,而Iwarp需要特定的驱动程序和软件支持。 - 性能:ROCE和Iwarp在性能上可能有所不同。ROCE在以太网上实现RDMA,可以提供较低的延迟和较高的带宽。而Iwarp基于TCP/IP协议,可能受到TCP协议的限制,性能可能相对较低。 - 配置和管理:ROCE和Iwarp在配置和管理方面也有所不同。ROCE可以利用现有的以太网基础设施,配置相对简单。而Iwarp需要特定的驱动程序和软件支持,可能需要额外的配置和管理工作。 最终选择ROCE还是Iwarp取决于具体的应用需求、网络环境以及设备兼容性等因素。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值