1. 论文信息

  • 文章来自IEEE Computer Volume: 56, Issue: 7, July 2023
  • Data Center Ethernet and Remote Direct Memory Access: Issues at Hyperscale

所有作者及单位

  • Torsten Hoefler , ETH Zürich
  • Duncan Roweth, Keith Underwood, and Robert Alverson, Hewlett Packard Enterprise
  • Mark Griswold, Vahid Tabatabaee, Mohan Kalkunte, and Surendra Anubolu, Broadcom
  • Siyuan Shen, ETH Zürich
  • Moray McLaren, Google
  • Abdul Kabbani and Steve Scott, Microsoft

使服务器应用程序可以直接操作远程服务器的内存,不需要经过操作系统和CPU。

Fabric,就是支持RDMA的局域网(LAN)。

怎样才能对内存进行传输,注册。 因为RDMA硬件对用来做数据传输的内存是有特殊要求的。

在数据传输过程中,应用程序不能修改数据所在的内存。
操作系统不能对数据所在的内存进行page out操作————物理地址和虚拟地址的映射必须是固定不变的。
注意无论是DMA或者RDMA都要求物理地址连续,这是由DMA引擎所决定的。

几十年来,以太网一直在有线局域网领域占据主导地位,范围从私人住宅的部署到最大的数据中心。数据中心经历了巨大的增长在过去的十年中,联网机器的数量超过了当今最大的超级计算机的规模。尽管仍存在一些差异,但此类超大规模数据中心和超级计算机的网络要求非常相似。[1]然而,超级计算机传统上使用专用互连进行连接,而数据中心则建立在以太网上。由于类似需求和规模经济,随着每一代新技术的产生,两者的结合不断紧密。我们认为现在是重新思考融合互连的基本假设和架构的最佳时机。

数据中心以太网的新环境

多种技术趋势正在加速高性能互连的融合。首先,不断增长的网络性能要求推动了可支持TB级带宽的更高效的主机堆栈的发展,每秒数亿美元的交易以及新兴数据密集型应用程序(例如人工智能(AI))所需的单位微秒延迟。[2]这些极端要求迫使所有协议和硬件都尽可能高效,以至于尽可能有效排除许多传统上驱动数据中心网络的TCP/ IP状堆栈远程直接内存访问(RDMA)是大约三十年前用于高性能计算(HPC)工作负载的远程内存访问(RDMA),后来又将其扩展到InfiniBand(IB) verbs RDMA的目标存储。RDMA可以通过网络启用CPU释放的硬件加速DMA。在过去的10年中,它事实上已成为低开销和高速网络的标准。

InfiniBand verbs 是InfiniBand架构中定义的一套编程接口(verbs),用于应用程序访问InfiniBand网络资源并利用RDMA(远程直接内存访问)技术进行通信。

在数据中心网络中排除传统TCP/IP栈的主要原因有:

  1. TCP/IP栈开销大。TCP/IP栈在主机内核中运行,每次网络IO都需要经过完整的网络协议处理,包括缓冲拷贝、上下文切换、校验计算等,增加延迟和CPU使用。
  2. 不必要的内存复制。数据在应用、内核、NIC间多次缓冲拷贝,影响吞吐量和延迟。
  3. CPU利用率高。网络栈处理占用大量CPU资源,对计算密集型应用影响很大。
  4. 通信堆栈长。TCP/IP通信堆栈包含过多层,每个层在主机内核和NIC都要处理,增大延迟。
  5. 难以实现kernel bypass。 TCP/IP难以实现应用直接控制网络硬件,无法实现kernel bypass架构。
  6. 可扩展性差。TCP难以实现应用级的可扩展性和负载均衡。
  7. 缺乏数据中心网络特性。TCP/IP缺乏RDMA、RoCE、sr-iov、overlay网络等数据中心特性。)所以数据中心采用RDMA、userspace network stack、overlay network等技术,可以获得更高性能、弹性和效率)。

如今,几乎所有超级计算机架构以及领先的数据中心提供商都在生产中使用 RDMA。几十年前对负载平衡、拥塞控制和错误处理的简单假设并不适用于当今带宽提高100倍、消息速率提高10倍以上的网络。此外,简单的RDMA网络接口卡(NIC)通常会通过附加功能进行增强。由此产生的“智能网卡”通常会减轻大量负载。服务并实施专门的网络协议。现代网络交换机还具有改进的功能,从先进的网内遥测和网内计算功能到网内负载平衡和拥塞控制。3我们认为,当前现有的标准和部署的基础设施存在根本差距必须在不久的将来解决这个问题,以支持高效的高性能网络。

遥测数据(Telemetry Data)是指从网络设备中采集、汇报的与网络运行状态相关的数据。它通过实时反映网络的运行情况来帮助网络管理和运维。常见的网络遥测数据包括:

  • 基础信息:设备型号、配置、软件版本等静态信息。
  • 流量数据:接口流量速率、总流量、流量方向等。
  • QoS数据:接口队列长度、延迟、丢包、拥塞情况等。
  • 路由信息:路由表、下一跳等动态路由信息。
  • 会话信息:活动的会话连接数、来源/目的地等。
  • 资源利用率:CPU使用率、内存使用率、链接利用率等。
  • 环境数据:设备温度、风扇速度等环境信息。
  • 事件和警报:设备故障、链路中断等事件信息。
    遥测数据可以通过SNMP、NETCONF等管理协议获取,也可以通过流式遥测技术像gRPC Streaming、 Kafka等机制订阅获取。收集到的遥测数据可以用于网络状态分析、事件检测、容量规划、流量工程等。

网内遥测(In-band Telemetry, INT)是一种网络遥测技术,它可以在网络数据包中携带遥测数据,并随着数据包传递通过网络。网内遥测的主要特征和优势包括:

  • 遥测数据直接嵌入数据包中,不需要额外的控制消息,更加高效。
  • 可以提供数据包在网络中的实时状态,如延迟、丢包等信息。
  • 可以细粒度地反映网络状态,每一个数据包都是探针。
  • 可以快速发现网络热点,进行负载均衡和故障定位。
  • 无需专用监控网络,不会占用额外带宽。
  • 可以配合软件定义网络(SDN)实现可编程的遥测控制。

    网内遥测通常需要数据平面支持,在交换机或网卡中实现遥测头插入和解析。通过网内遥测技术,可以极大地增强网络的可观测性, 一些主流的网内遥测技术包括:

  • INT: IETF正在推进的INT标准。
  • IOAM: In-situ OAM,由Cisco推出。
  • P4INT: 基于P4语言的可编程INT实现。
  • iOAM: IOAM的衍生协议。

RoCE:融合还是胶带

RoCE(RDMA over Converged Ethernet)是可以在Ethernet网络上运行RDMA的网络协议。其主要特点如下:

  • RoCE在Ethernet上实现了RDMA功能,使RDMA不再只局限在专用的InfiniBand网络上。
  • 在IP/Ethernet网络基础设施上,通过对数据平面进行改进来实现RDMA。
  • 支持两种传输方式:RoCEv1使用UDP封装;RoCEv2使用一种特殊的以太网帧格式。
  • RoCEv1依赖数据中心级别的Lossless Ethernet技术来实现可靠传输。RoCEv2新增了自身的流控机制。
  • RoCE可以获得与InfiniBand接近的低延迟和高吞吐性能。
  • 与iWARP相比,RoCE更加依赖硬件卸载,实现CPU利用率更低。
    RoCE的优势在于兼容现有的以太网网络,使RDMA应用更易于部署,不再需要专门的IB交换机网络。RoCE已得到广泛支持,是数据中心采用RDMA的主流选择之一。

传统上,当交换机缓冲区已满时,以太网会丢弃数据包,并依赖于端到端重传。为了支持RoCE,CE引入优先流控制(PFC)来实现链路级无损操作。PFC重新利用以太网中存在的以太网暂停帧来支持具有不同链路传输速率的网络。PFC增强暂停帧以停止(或限制)特定优先级上的流量,以避免数据包丢失。不幸的是,这套复杂的协议会干扰网络中的不同层,并降低当今一些最重要工作负载的效率。

RoCE的语义、负载平衡和拥塞控制机制继承自InfiniBand。这意味着所有消息都应该按顺序出现在目的地,就好像它们是通过静态路由传输一样,本质上不允许许多数据包级负载平衡机制。对于人工智能训练工作负载(长期存在的流),多路径机制可以大大缩短作业完成时间。此外,RoCE v2使用基于IP显式拥塞通知(ECN)的简单拥塞控制机制。当检测到拥塞时,兼容 ECN 的交换机会对数据包进行标记,接收方会将该信息转发回发送方,从而在单个参数的引导下降低其注入率。无拥塞期后,使用第二个配置参数再次自动提高速率。

下一代高性能网络

对于某些工作负载,消息延迟(有时是消息速率)起着核心作用。其中一些属于 OBS 类别,但其他一些具有复杂的数据相关消息链,形成应用程序中的关键性能路径。这些通常是强大的扩展工作负载,解决问题的时间很重要,并且必须容忍低效的执行。具有严格期限的大规模模拟(例如天气预报和石油勘探)属于这一类,但一些事务处理和搜索/推理工作负载也属于这一类。在这里,通常具有严格的(个位数微秒)延迟要求。

除了流量类型之外,部署环境也在发生变化。新出现的机密计算理念要求所有流量在线路上进行加密。理想情况下,流量在安全飞地中进行端到端加密和解密,并且没有网络设备(NIC 或交换机)值得信任。此外,相关的新兴多租户场景需要管理来自单个主机的数万个连接。这些通常由智能 NIC 提供支持,通过管理资源(例如带宽和安全性)虽然有速率限制和过滤。此外,需要更先进的负载平衡和路由的新的经济高效、小直径和专用拓扑成为极端带宽部署的必要条件。2,8 这些要求的许多组合对下一代高性能网络。

RoCE存在的问题

关于论文中提出RoCE需要改进的8个方面的问题,我总结如下:

  1. congestion control (拥塞控制)。RoCEv1没有拥塞控制机制,需要依赖DCQCN。RoCEv2虽有拥塞控制但需要进一步完善。
  2. physical layer (物理层) 。RoCE对PHY层时钟同步和链路断开检测还需改进。
  3. path MTU (路径MTU)。RoCE需要更好处理不同MTU路径的情况。
  4. flow steering (流导向)。需要更好的QoS和流量工程能力来导向不同优先级的RoCE流量。
  5. resilience (弹性) 。如何改善RoCE的故障恢复能力需要进一步研究。
  6. labeling (标签)。RoCE当前还不支持MPLS等标签交换技术。
  7. standards (标准)。需要更多针对RoCE在数据中心使用的标准化工作。
  8. debugging (调试) 。RoCE网络故障定位和性能诊断工具需要加强。

文章作者: 易百分
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 易百分 !
  目录