摘要:
RDMA由于其业务流特性(低时延、高吞吐、低CPU开销)和数据包按顺序传输的假设,与现有的负载均衡算法不能很好地工作。所以我们提出一种面向RDMA的负载均衡框架Conweave。
ConWeave的核心思想是,通过正确的设计,可以使用可编程交换机在网络数据通路中透明地执行细粒度的重路由和屏蔽乱序数据包到达的影响。
介绍:
数据中心网络拓扑(例如,叶-脊)通常被设计成可伸缩的,同时具有足够的冗余。即任意两个服务器机架之间存在多条端到端路径。因此,为了最大限度地利用可用的网络容量,需要进行负载均衡,将网络流量分散到不同的路径上。ECMP(等价多路径)中下一跳路径的选择是通过对数据包字段进行哈希,然后取其在可用路径数上的模来实现的。来自一个流的数据包总是会映射到相同的路径上,容易发生哈希碰撞。ECMP在流量严重偏斜的情况下无法做到负载均衡。包粒度的负载均衡机制容易发生乱序。流簇粒度的负载均衡机制基于不活跃的时间间隔将流分割成一个个数据包块,但其效率取决于流量特征,即是否有流簇可用。
现有负载均衡算法的RDMA工作负载的执行情况性能下降,有以下两个原因:① RDMA流特性 ② RDMA对数据包乱序的响应。
①RDMA流特:在非活跃时隙下,与TCP相比,在RDMA流量中发现flowlet的机会明显较少。(原因:RDMA 会对每个连接执行基于硬件的数据包步调(即速率整形),从而产生具有较小时间间隔的连续数据包流。)因此,由于缺乏足够大的流簇间隔,基于流簇交换flowlet的方法不能很好地与RDMA结合.
② RDMA对数据包乱序的响应:RoCEv21继承了RDMA在Infiniband网络中的许多设计假设,其中之一是网络中一般没有损耗,因此数据包是按序发送的。因此,当RNIC【RDMA Network Interface Card,RDMA网卡】收到乱序的数据包时,它将其作为丢包的指示,并立即启动丢失恢复,这导致发送的RNIC降低其发送速率。
Conweave可以支持RDMA流的细粒度重路由,在不引起数据包乱序到达的情况下,分散和负载平衡多条路径之间的流量。它有2个组件,一个运行在源端,另一个运行在目的端机顶盒( top-of-rack,ToR )交换机。
在源ToR交换机中运行的组件持续监测主动流的路径延迟,并在检测到拥塞时尝试重路由,而不是被动地等待流簇间隙。如果没有足够的数据包时间间隔,这种重路由可能会导致数据包在目的ToR交换机上乱序到达。
ConWeave的核心思想是屏蔽连接到目的ToR交换机的RDMA端主机的乱序数据包。ConWeave以一种原则性的方式重路由流量,使得乱序的数据包只能以可预测的模式到达,并且这些数据包可以有效地在数据平面中以原始的顺序返回。
2039

被折叠的 条评论
为什么被折叠?



