中文

如何使用RDMA构建无损网络

更新于 2024年01月15日 by
876

在深入研究RDMA和无损网络领域后,会经常遇到两个基本问题:为什么采用无损网络至关重要?这些先进技术有什么优势?

仅从网络角度回答这些问题可能存在挑战。因此,飞速(FS)的技术团队将从前端业务和后端应用的视角,通过实际参考案例来解答这些问题。

为什么无损网络至关重要

线上业务涵盖搜索、购物、实时流媒体等各个方面,对高频用户请求的快速响应至关重要。数据中心中的任何延迟都可能对用户体验产生重大影响,影响网站流量、口碑、活跃用户等因素。

此外随着机器学习和高性能计算技术的激增,对计算能力的需求也急剧增长。为了满足复杂神经网络和深度学习模型的要求,数据中心正在部署大量分布式计算集群。然而在大规模并行程序中固有的通信延迟可能会严重影响整体计算效率。

为了应对数据中心内不断增长的数据存储和检索效率问题,以太网收敛的分布式存储网络正日益受到青睐。然而在以大数据流为主要特征的存储网络中,由于拥塞引起的数据包丢失可能会触发大数据流的重传,从而降低效率并加剧拥塞。

从前端用户体验和后端应用效率的角度来看,当前数据中心网络的先决条件是清晰的:较低的延迟更好,效率更为重要。

为减少数据中心内部网络的延迟并提高处理效率,RDMA技术应运而生。RDMA允许用户级应用程序直接读取和写入远程内存,而无需经过 CPU 进行多次内存复制,RDMA绕过内核并直接将数据写入网卡。这实现高吞吐量、超低延迟和最小的CPU开销。

目前,RDMA在以太网上的传输协议是RoCEv2。RoCEv2是一种基于UDP的无连接协议,与面向连接的TCP相比,它更快且消耗更少的CPU资源。然而RoCEv2缺乏TCP中的滑动窗口和确认响应等机制也存在挑战。在发生数据包丢失的情况下,上层应用程序必须检测并启动重传,降低了RDMA传输效率。

为了充分发挥RDMA的性能并解决数据中心中大规模分布式系统的网络性能瓶颈,建立一个专为RDMA设计的无丢包网络环境至关重要。有效解决网络拥塞问题是实现无丢包传输的关键。

什么是RDMA

RDMA(远程直接内存访问)是一项先进的技术,可降低在网络传输过程中与服务器端数据处理相关的延迟。

RDMA

在传统的应用程序之间传输数据的模式中,过程如下所示:

  • 数据从应用程序缓存复制到内核中的TCP协议栈缓存。

  • 然后将其复制到驱动程序层。

  • 最后,将其复制到网卡(网络接口卡)缓存。

多次内存复制需要CPU干预,导致显著的处理延迟,通常延伸到几十μs。此外,在整个过程中广泛参与的CPU消耗了大量CPU性能,可能会影响正常的数据计算。

而在RDMA模式下,应用程序数据可以绕过内核协议栈直接写入网卡。带来显著优势,包括:

  • 将处理延迟从几十μs降低到1μs。

  • 在整个过程中CPU参与度最小,从而节省性能。

  • 增强传输带宽。

RDMA对网络有什么需求

RDMA在高性能计算、大数据分析和高并发I/O场景中的应用越来越广泛。如iSICI、SAN、Ceph、MPI、Hadoop、Spark和Tensorflow等技术正在采用RDMA进行操作。对于支持端到端传输的底层网络,最关键的指标是低延迟(以μs计)和无丢包。

低延迟

网络转发延迟主要发生在设备节点上(不包括光电传输延迟和数据序列化延迟)。设备转发延迟包括三个关键部分:

  • 存储转发延迟:芯片的转发通道处理延迟,每个跳跃产生大约1μs的芯片处理延迟(行业尝试使用截断模式将单跳延迟降低到约0.3μs)。

  • 缓存延迟:在网络拥塞情况下,数据包在转发之前被缓冲。缓冲区越大,数据包的缓存时间越长,导致更高的延迟。对于RDMA网络,选择最佳的缓冲区大小非常重要,而更大的缓冲区并不一定更好。

  • 重传延迟:RDMA网络利用各种技术来避免数据包丢失。

无损网络

RDMA在无丢包状态下实现了全速率传输,但当发生数据包丢失和重传时,性能会急剧下降。在传统网络模式中,大缓冲区是实现无丢包的主要手段,但这与低延迟的要求相矛盾。在RDMA网络环境中,目标是通过较小的缓冲区实现无丢包。

在这个约束条件下,RDMA主要基于PFC(优先级流量控制)和ECN(显式拥塞通知)的网络流量控制技术实现无丢包。

实现无损RDMA网络的关键技术:PFC

基于优先级的流量控制(PFC)是一种基于队列的反压机制,它在优先级上运行。通过发送暂停帧,PFC防止缓冲区溢出和数据包丢失,向上游设备发出信号停止数据包传输。

PFC

PFC可以针对特定的虚拟通道进行单独暂停和恢复操作,而不会影响其他流量。在所示的场景中,当队列7的缓冲区利用率达到配置的PFC流量控制阈值时:

  • 本地交换机启动PFC暂停帧的传输。

  • 接收到暂停帧的上游设备暂时停止该队列的数据包传输。

  • 如果上游设备的缓冲区也达到了阈值,它会继续触发暂停帧来应用反压力向上游传输。

  • 最终,通过降低优先级队列的发送速率来避免数据包丢失。

  • 当缓冲区占用率降到恢复阈值以下时,发射PFC释放帧。

实现无损RDMA网络的关键技术:ECN

显式拥塞通知(ECN)是一项成熟的技术,在过去较少使用,但现在在主机间广泛使用。

当网络设备出口端口出现拥塞并超过ECN阈值时,ECN可利用IP报头中的ECN字段在数据包中嵌入标记。这个标记作为一个指示器,表示数据包遇到了网络拥塞。在识别到数据包中的ECN标记后,接收服务器会立即生成一个拥塞通知数据包(CNP),并将其发送回源服务器。这个CNP包含有关引起拥塞的流的信息。在接收到CNP后,源服务器会调整相应流的发送速率,减轻网络拥塞,避免数据包丢失。

通过PFC和ECN实现端到端的无丢包传输依赖于配置不同的阈值。准确设置这些阈值需要对交换机的内存管理单元(MMU)进行细致的管理,以解决交换机的缓冲区管理问题。

结论:在RDMA网络中实现无丢包传输

RDMA网络通过部署PFC和ECN功能实现无丢包传输。PFC技术在链路上控制RDMA特定的队列流量,在交换机入口端口拥塞时向上游设备施加反压力。通过ECN技术,在出口端口拥塞时对数据包进行标记,实现端到端的拥塞控制,促使发送端降低传输速率。

通过调整ECN和PFC的缓冲区阈值,以确保ECN的触发速度比PFC更快,可以实现最佳的网络性能。这样,网络可以在主动降低服务器的传输速率以应对拥塞的同时,保持全速的数据转发。然而,如果持续的问题导致PFC被启用,它会暂停上游交换机的数据包发送,从而在不丢失数据包的情况下降低网络吞吐量。

在数据中心网络中部署RDMA需满足无丢包网络传输需求。专注于精细化的运维操作变得至关重要,以满足对延迟敏感和丢包敏感的网络环境的要求。尽管存在PFC风暴、死锁问题和多层网络中复杂的ECN阈值设计等挑战,飞速(FS)的研发团队致力于提供增强网络服务,并专注于为客户提供最佳解决方案,同时保持高可靠性水平。飞速(FS)提供一系列产品,包括NVIDIA® InfiniBand交换机、100G/200G/400G/800G InfiniBand光模块NVIDIA® InfiniBand网卡,致力于成为通信和高速网络系统解决方案的专业提供商。

相关文章推荐

技术博文
See profile for Jesse.
Jesse
光分路器光衰多少,如何计算和测量?
2022年01月25日
14.9k
技术博文
技术博文
See profile for Audrey.
Audrey
FTTH网络应如何设计分层与分光比?
2022年01月25日
3.8k
技术博文
技术博文
技术博文
See profile for Audrey.
Audrey
揭秘光分路器类型及选择
2022年01月24日
3.4k
技术博文
See profile for Audrey.
Audrey
一文教您认识光分路器
2022年01月24日
4.9k
技术博文
See profile for Jesse.
Jesse
家庭网络怎么布线?家用网线布线指南
2021年12月31日
1.9k
技术博文
公司新闻
See profile for George.
George
关于飞速(FS)800G光模块的技术问答
2024年05月16日
41
技术博文
See profile for Audrey.
Audrey
数据中心预端接主干铜缆解决方案
2021年12月31日
1.8k