关键词不能为空

当前您在: 主页 > 英语 >

技术盛宴丨如何为RDMA构建无损网络

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-12 09:01
tags:

-

2021年2月12日发(作者:disturbed)



我们为什么需要无损网络



看过前面几期的技术文章,相信大家对


RDMA(Remote Direct Memory Access


,远程直接数据存取


)


和无损网络有了一定的认识,也许大家会问为什么我们需要


RDMA


?为什么我们需要无损网络?这些先进的


技术究竟能给 我们带来什么好处?



只从网络层面来看可能无法得出令人满意 的答案,


下面分别从前端业务和后端应用,


简单列举几个例子,


相信大家可以从中解开疑惑。



首先想 说的是互联网中大量的在线业务,例如在线搜索、购物、直播等,它需要以非常快的速度对高频

< br>率的用户请求做出应答,数据中心内任何一个环节导致延迟,都会对终端用户的访问体验造成极大的影响,


从而影响其流量、口碑、活跃用户等。



还有在机器学习和


AI


的技术趋势下,对计算能力的需求是呈 几何级数上升的,为了满足日益复杂的神


经网络和深度学习模型,数据中心会存在大量的 分布式计算集群,但大量并行程序的通讯延迟,则会极大影


响整个计算过程的效率。



另外为了解决数据中心内爆炸式增长的数据存储和读取效率问题, 利用以太网融合组网的分布式存储越


来越受到欢迎。但因为存储网络中数据流以大象流为 主,所以一旦因拥塞造成丢包,将会引发大象流重传,


不仅降低效率,还会加重拥塞。< /p>



所以从前端用户的体验和后端应用的效率来看,眼下对于数据中 心网络的要求是:延迟越低越好,效率


越高越好。


< p>
为了降低数据中心内部网络延迟,


提高处理效率,


RDMA


技术应运而生,


通过允许用户态的应用程序直


接读取和写入远程内存,


而无需


CPU


介入多次拷贝内存,


并可绕过内核直接向网卡写数据,

< br>实现了高吞吐量、


超低时延和低


CPU

< br>开销的效果。



当前


RDMA< /p>


在以太网上的传输协议是


RoCEv2



RoCEv2


是基于


无连接协议的


UDP


协议


,相比


面向连


接的


TCP


协议



UDP


协议更加快速、占用


CPU


资源更少,但其不像


TCP


协议 那样有滑动窗口、确认应答等


机制来实现可靠传输,一旦出现丢包,依靠上层应用检查到 了再做重传,会大大降低


RDMA


的传输效率。



所以要想发挥出


RDMA


真 正的性能,


突破数据中心大规模分布式系统的网络性能瓶颈,


势 必要为


RDMA


搭建一套不丢包的无损网络环境,而实现不丢包 的关键就是解决网络拥塞。




为什么会产生拥塞



产生拥塞的原因有 很多,下面列举了在数据中心场景里比较关键也是比较常见的三点原因:



收敛比



进行数据中心网络架构设计时 ,从成本和收益两方面来考虑,多数会采取非对称带宽设计,即上下行链


路带宽不一致, 交换机的收敛比简单说就是总的输入带宽除以总的输出带宽。以我们的万兆交换机


RG- S6220-48XS6QXS-H


为例,下行可供服务器输入的带宽是


48*10G=480G


,上行输出的带宽是




6*40G=240G


,整机收敛比 为


2:1


。而


25G

< br>交换机


RG-S6510-48VS8CQ


,下行可供服 务器输入的带宽是


48*25G=1200G


,上行输出的带宽 是


8*100G=800G


,整机收敛比是

1.5:1




也就是说,当下联 的服务器上行发包总速率超过上行链路总带宽时,就会在上行口出现拥塞。



ECMP



当前数据中心网络多采用< /p>


Fabric


架构,并采用


ECMP


来构建多条等价负载均衡的链路,通过设置扰动


因子并


HASH


选择一条链路来转发是简单的,但这个过程中却没有考虑到所选链路 本身是否有拥塞。


ECMP


并没有拥塞感知的机制,只是将流分 散到不同的链路上转发,对于已经产生拥塞的链路来说,很可能加剧链


路的拥塞。



TCP Incast



TCP Incast



Many- to-One


的通信模式,在数据中心云化的大趋势下这种通信模式常常发生,尤其是< /p>


那些以


Scale-Out


方式实现的分 布式存储和计算应用,包括


Hadoop


MapReduce



HDFS


等 。



例如,当一个


Parent


Server


向一组节点(服务器集群或存储集群)发起一个请求时 ,集群中的节点都会同


时收到该请求,并且几乎同时做出响应,很多节点同时向一台机器 (


Parent Server


)发送


TCP


数据流,从而


产生了一个“微突发流”,使得交换机上连 接


Parent Server


的出端口缓存不足,造成拥塞。








TCP Incast


流量模型




正如前面所说,


RDMA


TCP


不同,它需要一个无损网络。对于普通的微突发流量,交换机的


Buffer


缓冲区可以起到一定作用,在缓冲区将突发的报文进行列队等待 ,但由于增加交换机


Buffer


容量的成本非常


高,所以它所能起到的作用是有限的,一旦缓冲区列队的报文过多,仍旧会产生丢包。



为了实现端到端的无损转发,


避免因为交换机中的< /p>


Buffer


缓冲区溢出而引发的数据包丢失,

< br>交换机必须


引入其他机制,如流量控制,通过对链路上流量的控制,减少对交换机


Buffer


的压力,来规避丢包的产生。



PFC


如何实现流控



IEEE


802.1Qbb



Priority-based


Flow


Control


,基于优先级的流量控制)简称


PFC


,是


IEEE


数据中


心 桥接(


Data Center Bridge


)协议族中的一个技术,是流量控制的增强版。





PFC


之 前,我们可以先看一下


IEEE 802.3X



Flow Control


)流控的机制:当接收者没有能力处理接




收到的报文时,为了防止报文被丢弃,接收者需要通知报文的 发送者暂时停止发送报文。



如下图所示,

端口


G0/1



G0/2



1Gbps


速率转发报文时,


端口


F0/1


将发生拥塞。


为 避免报文丢失,


开启端口


G0/1


和< /p>


G0/2



Flow Control


功能。




▲端口产生拥塞的打流模型





F0/1


在转发报文出现拥塞时,交换机


B


会在端口缓冲区中排队报文,当拥塞超过一定阈值时,端口< /p>


G0/2



G0/1


PAUSE


帧,通知


G0/1< /p>


暂时停止发送报文。



G0/1


接收到


PAUSE


帧后暂时停止向


G0/2


发送报文。


暂停时间长短信息由

< p>
PAUSE


帧所携带。


交换机

A


会在这个超时范围内等待,或者直到收到一个


Timeo ut


值为


0


的控制帧后再继续发送。< /p>



IEEE


802.3X


协议存在一个缺点:一旦链路被暂停,发送方就不能再发送任何数据包,如果是因为某些


优先级较低的数据流引发的暂停,结果却让该链路上其他更高优先级的数据流也一起被暂停了,其实是 得不


偿失的。



如下图中报文解析所示 ,


PFC


在基础流控


IEEE 802 .3X


基础上进行扩展,允许在一条以太网链路上创建


8


个虚拟通道,并为每条虚拟通道指定相应优先级,允许单独暂停和重启其中任意一条虚拟通道, 同时允许


其它虚拟通道的流量无中断通过。






< /p>



PFC


协议报文结构解析




PFC


将流控的粒度 从物理端口细化到


8


个虚拟通道,分别对应

Smart


NIC


硬件上的


8< /p>


个硬件发送队列


(这些队列命名为


Tra ffic


Class


,分别为


TC0 ,TC1,...,TC7



,在


RD MA


不同的封装协议下,也有不同的映射


方式。



RoCEv1



这个协议是 将


RDMA


数据段封装到以太网数据段内,再加上以太网的头部 ,因此属于二层数据包。为


了对它进行分类,只能使用


VLAN



IEEE 802.1q


)头部中的


PCP(Priority Code Point)



3 Bits


来设置优先


级值。





▲二层以太网帧


VLAN


头部结构




RoCEv2



这个协议是将


RDMA


数据段先封装到


UDP


数据段内,加上


UDP


头部,再加上

< br>IP


头部,最后再加上以



< /p>


太网头部,属于三层数据包。对它进行分类,既可以使用以太网


V LAN


中的


PCP


域,也可以使用


IP


头部的


DSCP


域。





▲三层


IP


报文头部结构





简单来说,在二层网络的情况下 ,


PFC


使用


VLAN


中的


PCP


位来对数据流进行区分,在三层网络的情< /p>


况下,


PFC


既可以使用


PCP


、也可以使用


DSCP


,使得不同数据流可以享受到独立的流控制。当下数据中心


因多采用三层网络,因此使用


DSCP



PCP

更具有优势。




PFC


死锁



虽然


PFC


能够通过给不同队列映射不同优先级来实现基于队列 的流控,


但同时也引入了新的问题,


例如


PFC


死锁的问题。



PFC


死锁,


是指当多个交换机之间因微环路等原因同时出现拥塞

< p>
,


各自端口缓存消耗超过阈值,


而又相互


等待对方释放资源,从而导致所有交换机上的数据流都永久阻塞的一种网络状态。



正常情况下,当一台交换机的端口出现拥塞并触发


X OFF


水线时,数据进入的方向(即下游设备)将发



PAUSE


帧反压,上游设备接收到


PAUSE


帧后停止发送数据,如果其本地端口缓存消耗超过阈值,则继续


向上游反压。如此一级级反压,直到网络终端服务器在


PAUSE


帧中指定


Pause Time


内暂停发送数据,从而


消除网络节点因拥塞造成的丢包。



但在特殊 情况下,例如发生链路故障或设备故障时,


BGP


路由重新收敛 期间可能会出现短暂环路,会导


致出现一个循环的缓冲区依赖。如下图所示,当


4


台交换机都达到


XOFF

水线,都同时向对端发送


PAUSE


帧,这个时候该拓扑中 所有交换机都处于停流状态,由于


PFC


的反压效应,整个网络 或部分网络的吞吐量将


变为零。









PFC


死锁示意图

< br>



即使在无环网络中形成短暂环路时,也可能发生死 锁。虽然经过修复短暂环路会很快消失,但它们造成


的死锁不是暂时的,即便重启服务器 中断流量,死锁也不能自动恢复。



为了解除死锁状态,一方面 是要杜绝数据中心里的环路产生,另一方面则可以通过网络设备的死锁检测


功能来实现。 我们的


RG-S6510-48VS8CQ


上的


Deadlock


检测功能,可以检测到出现


Dead lock


状态后的


一段时间内,忽略收到的

PFC


帧,同时对


buffer


中 的报文执行转发或丢弃的操作(默认是转发)




例如,定时器的监控次数可配置设置检测


10


次,每 次


10ms


内检测是否收到


PFC < /p>


Pause


帧。若


10

< br>次


均收到则说明产生


Deadlock

< br>,对


buffer


中的报文执行默认操作,之后将设置< /p>


100ms


作为


Recover


时间后


恢复再检测。命令如下:



priority-flow-control deadlock cos- value 5 detect 10 recover 100


//10


次检测,


100ms recover




RDMA


无损网络中利用


PFC


流控机制,实现了交换机 端口缓存溢出前暂停对端流量,阻止了丢包现象


发生,但因为需要一级一级反压,效率较 低,所以需要更高效的、端到端的流控能力。



< p>
利用


ECN


实现端到端的拥塞控制



当前的


RoCE


拥塞控制依 赖


ECN(Explicit Congestion Notification



显式拥塞通知


)


来运行。


ECN


最初





RFC 3168


中定义,


网络设备会在检测到拥塞时,


通过在


IP


头部嵌入一个拥塞指示器和在


TCP


头部嵌入一


个拥塞确认实现。



RoCEv2


标准定义了


RoCEv2


拥塞管理


(RCM)


。启用了


ECN


之后,网络设备一旦检测到


RoCEv2


流量


出现了拥塞,会在数据包的


IP


头部


ECN


域进行标记。






IP


报文头


ECN


字段结构




这个拥塞指示器被目的终端节点按照


BTH(Base Transport Header



存在于

< br>IB


数据段中


)


中的

< p>
FECN



塞指示标识来解释意义。换句话说,当 被


ECN


标记过的数据包到达它们原本要到达的目的地时,拥塞 通知就


会被反馈给源节点,源节点再通过对有问题的


Queue Pairs



QP


)进行网络数据包的 速率限制来回应拥塞通


知。





ECN


交互过程






EC N


交互过程示意图




?


发送端发送的


IP


报文标记支持


ECN



10< /p>





?


交换机在队列拥塞情况下收到该报文,将


ECN

字段修改为


11


并发出,网络中其他交换机将透传;



?


接收端收到


E CN



11


的报文发现拥塞,正常处理 该报文;





?


接收端产生拥塞通告,每


ms


级发送一个


CNP



Congestion Notification Packets


)报文,


ECN



段为


01< /p>



要求报文不能被网络丢弃。接收端对多个被

ECN


标记为同一个


QP


的数据包 发送一个单个


CNP



可(格式规定见 下图)




?


交换机收到


CNP


报文后正常转发该报文;

< br>


?


发送端收到


ECN


标记为


01



CNP


报文解析后对相应的流(对应启用


ECN



QP


)应用速率限制算


法。



RoCEv2



C NP


包格式如下:






CNP


报 文结构




值得注意的是,


CNP


作为拥塞控制报文,也会存在延迟和丢包,从发送端到接收端经过 的每一跳设备、


每一条链路都会有一定的延迟,


会最终加大发送 端接收到


CNP


的时间,


而与此同时交 换机端口下的拥塞也会


逐步增多,


若发送端不能及时降速,


仍然可能造成丢包。


建议拥塞通告域的规模不要过大,


从而避免因为


ECN


控制报文交互回路的跳数过多, 而影响发送端无法及时降速,造成拥塞。




总结



RDMA


网络正是通过在网络中部署


PFC



ECN


功能来实现无损保障。


PFC


技 术让我们可以对链路上


RDMA


专属队列的流量进行控制,并在 交换机入口(


Ingress


port


)出现拥塞时对上游设备流量进行反压。


利用


ECN


技术我们可以实现端到端的拥塞控制,在交换机出口(


Egress p ort


)拥塞时,对数据包做


ECN



记,并让流量发送端降低发送速率。



从充分发挥网络高性能转发的角度,我们一般建议通过调整


ECN



PFC



buffer

< p>
水线,让


ECN


快于




PFC


触发,即网络还是持续全速进 行数据转发,让服务器主动降低发包速率。如果还不能解决问题,再通过


PFC


让上游交换机暂停报文发送,虽然整网吞吐性能降低,但是不会产生丢包。



在数据中心网络中应用


RDMA



不仅要解决转发面的无损网络需求,


还要关注精细化运维,


才能应对延


迟和丢包敏感的网络环境。有关


MMU


的精细化管理技术以及基于


INT


的网络可视化技术可参考往期文章。



-


-


-


-


-


-


-


-



本文更新与2021-02-12 09:01,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/642354.html

技术盛宴丨如何为RDMA构建无损网络的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文