数据中心机架内互连新范式:为何PCIe正取代以太网与InfiniBand?
1. 数据中心互连的十字路口:为什么是PCIe?
在数据中心这个庞大而精密的数字世界里,服务器、存储和网络设备之间的“对话”效率,直接决定了整个系统的性能上限。过去十几年,我们习惯了用以太网(Ethernet)和InfiniBand来构建这张对话网络。前者凭借其无处不在的生态和成本优势,成为连接机架与机架之间的“主干道”;后者则以其极致的低延迟和高带宽,在需要紧密协作的高性能计算(HPC)和人工智能训练集群中扮演着“高速公路”的角色。然而,当我们把目光从机架之间收回到单个机箱内部,也就是服务器刀片(Blade)与刀片之间、CPU与加速卡、NVMe存储之间时,情况就变得微妙起来。
传统的做法是“一刀切”:机箱内部也走以太网或InfiniBand。这听起来很统一,但实际用起来,就像在自家客厅里用对讲机通话——能通,但别扭、低效且昂贵。以太网协议栈的软件开销、数据在内存缓冲区间的反复拷贝,会带来显著的延迟;而为了获得足够的带宽,10G甚至更高速率的以太网网卡和交换芯片,其功耗和成本在机箱内部这个短距离、高密度的场景下显得不那么经济。InfiniBand虽然性能强悍,但其生态相对封闭,并非所有处理器、存储和I/O设备都原生支持,强行接入往往需要额外的协议转换桥接芯片,这又引入了新的延迟、功耗和成本。
正是在这个背景下,一个我们无比熟悉却又长期被低估的技术——PCI Express(PCIe),开始从主板上的扩展槽走向更广阔的舞台。PCIe自诞生以来,其核心使命就是在极短的距离内(通常是厘米级),为CPU和外围设备提供一条超高速、低延迟的直连通道。几乎每一颗现代CPU、每一块GPU、每一组NVMe SSD,都原生集成了PCIe控制器。它的价值在于“直接”:数据从设备内存到主机内存,无需经过复杂的网络协议封装和解封装,实现了真正意义上的“零拷贝”和接近硬件的访问延迟。
所以,问题来了:既然PCIe在板级互连上如此高效,我们能否将它的能力“放大”,让它成为连接整个服务器机架内部所有计算和存储资源的“通用互连织物(General-Purpose Fabric)”呢?这正是过去几年里,数据中心架构师和芯片厂商们积极探索的方向。我认为,一个理想的数据中心互连架构,应该是分层、异构的:在机架内部,使用PCIe作为高速、低延迟、低功耗的互连骨干;在机架之间,则根据成本与性能的权衡,选择以太网或InfiniBand进行连接。这种“内外有别”的策略,能让每种技术都在自己最擅长的领域发挥最大价值。
2. 机架内互连的困局:以太网与InfiniBand的“水土不服”
要理解PCIe为何能成为机架内互连的破局者,我们得先看清现有方案在机箱(Rack)这个特定场景下面临的根本性挑战。
2.1 以太网:优秀的“广域网”协议,尴尬的“局域网”选手
以太网的成功在于其无与伦比的普适性和可扩展性。但从技术本质看,它最初是为连接地理上分散的设备而设计的局域网(LAN)协议,其协议栈(TCP/IP)包含了复杂的流量控制、错误恢复和路由寻址机制。当它被用于机架内部这种极短距离、设备身份相对固定的环境时,这些为广域不确定性设计的“豪华”功能就变成了负担。
首先是软件开销与延迟瓶颈。在典型的机架内以太网通信中,即使两个刀片服务器物理上紧挨着,数据也需要经历完整的网络协议栈处理:从应用层到传输层(TCP/UDP),再到网络层(IP),最后封装成以太网帧。接收方则需要反向解封装。这个过程涉及多次内核上下文切换和内存拷贝。一次简单的内存访问请求,可能因此产生数十微秒甚至更高的延迟。对于追求纳秒级响应的高频交易、实时数据库或分布式内存池应用,这是不可接受的。
其次是成本与功耗的经济账。10G、25G、100G的以太网网卡(NIC)和交换机端口价格不菲。更重要的是,实现高速SerDes(串行器/解串器)和复杂协议处理的芯片功耗很高。在一个高密度的机架内,几十个这样的端口同时工作,产生的热量和电费是惊人的。而机架内设备间的距离通常不超过几米,为这种短距通信支付长距互联的“功率税”,显然不划算。
最后是功能与耦合度的错配。以太网将每个刀片视为独立的网络节点,这提供了灵活的、松耦合的扩展能力。但对于需要紧密共享I/O资源(如一块高性能GPU或NVMe存储池)的机架来说,这种松耦合反而是障碍。它无法像本地总线一样,让多个主机处理器以近乎透明的、直接内存访问(DMA)的方式共享同一块物理硬件,往往需要额外的软件抽象层(如NVMe over Fabrics),这又带来了性能损耗。
2.2 InfiniBand:性能王者,生态“孤岛”
InfiniBand从设计之初就是为高性能计算集群量身定制的,它采用远程直接内存访问(RDMA)技术,允许数据在网络中从一个节点的内存直接传输到另一个节点的内存,完全绕过双方的操作系统和CPU,实现了极低的延迟和极高的吞吐量。在延迟敏感型应用中,它的表现无可挑剔。
然而,其问题在于生态系统的局限性。InfiniBand更像一个“贵族俱乐部”。除了少数高端服务器CPU和专门的高性能计算设备,绝大多数商用现货(COTS)组件——从各种形态的加速卡(AI、视频处理)、到普遍使用的NVMe SSD,再到各种网络和存储控制器——它们的原生接口都是PCIe,而非InfiniBand。要将这些设备接入InfiniBand网络,你必须添加一个“翻译官”:即一块PCIe-to-InfiniBand的桥接卡(或使用支持InfiniBand的专用设备)。这个桥接步骤不仅增加了硬件成本(桥接芯片、额外的PCB空间)和功耗,更关键的是,它引入了额外的协议转换延迟,破坏了InfiniBand引以为傲的端到端低延迟优势。
此外,构建一个异构的、包含多种处理器和I/O设备的机架,如果强制统一到InfiniBand上,会变得异常复杂和昂贵。你需要为每一种非InfiniBand原生设备寻找或定制桥接方案,这大大降低了系统的灵活性和可维护性。
注意:这里并非全盘否定以太网和InfiniBand。恰恰相反,在机架间互联、超大规模计算集群等场景,它们依然是无可替代的王者。我们讨论的焦点是“机架内”这个特定战场,需要的是最适合短兵相接的“匕首”,而非用于长途奔袭的“长矛”。
3. PCIe作为机架级互连织物的核心优势
当我们将PCIe的视角从主板扩展到整个机架时,会发现它的一系列特性恰好精准命中了机架内互连的痛点。
3.1 原生性与生态统治力
这是PCIe最无可比拟的优势。PCIe是现代计算系统的“母语”。x86、ARM服务器CPU, NVIDIA、AMD的GPU, Intel、三星的NVMe SSD, 以及各种FPGA、智能网卡(SmartNIC)、数据处理器(DPU),它们的标准高速接口都是PCIe。这意味着,当你选择PCIe作为机架内互连时,你是在使用设备本身最自然、最直接的通信方式,无需任何“翻译”。这带来了最简化的硬件设计:设备可以直接通过PCIe链路连接到互连交换机或交换芯片上,省去了所有额外的协议转换桥接硬件。
庞大的生态系统也意味着充分的市场竞争和持续的技术迭代。从PCIe 3.0、4.0、5.0到如今的6.0,每一代带宽几乎翻倍,而由多家芯片供应商(如Broadcom/Avago、Microchip、Astera Labs等)提供的PCIe交换芯片和重定时器(Retimer)产品,确保了供应链的稳定和价格的合理性。
3.2 极致的低延迟与高效率
PCIe协议在设计上就追求极致的效率。它运行在物理层、数据链路层和事务层。与网络协议相比,它的包头开销极小,并且其事务(如内存读/写、消息)是面向连接的、可靠的。在机架内互连的语境下,通过使用非透明桥接(NTB)和多根共享(MR-IOV)等技术,可以实现多个独立主机系统对同一PCIe端点设备(如一块GPU或SSD)的直接、低延迟共享。
其核心机制是直接内存访问(DMA)和地址转换。主机A可以将设备D映射到自己的地址空间,当它需要访问设备D时,发出的就是普通的PCIe内存读写请求。PCIe交换和地址转换硬件(通常集成在交换芯片或NTB中)会透明地将这个请求路由到正确的主机B所属的设备D上,并将数据直接写入主机A指定的内存地址或从设备D读取。整个过程,数据在物理链路上只传输一次,无需在主机内存中进行多次拷贝,软件介入极少,延迟可以做到微秒甚至亚微秒级。这种效率是以太网基于Socket的通信模型难以企及的。
3.3 功耗与成本优化
针对机架内米级甚至更短的互连距离,PCIe物理层(PHY)可以进行优化,降低发射功率,同时保持信号完整性。专用的PCIe交换芯片,其功能专注于PCIe协议的路由和交换,复杂度远低于需要处理完整TCP/IP协议栈或复杂路由表的以太网交换机芯片。因此,在提供相同聚合带宽的情况下,PCIe交换方案的功耗和芯片成本通常更具优势。
此外,由于省去了每个设备端的以太网或InfiniBand适配器(NIC或HCA),以及相应的桥接芯片,从整个机架系统角度看,物料清单(BOM)成本得以降低,系统设计也更为简洁。
4. 构建基于PCIe的机架级互连:架构与关键技术
将PCIe扩展到机架级并非简单地将主板上的插槽用线缆拉远。它需要一套完整的系统架构和关键技术支持。
4.1 分层互连架构设计
理想的基于PCIe的数据中心互连是分层的:
- 机架内层(PCIe Fabric):使用PCIe交换技术(如PCIe Switch)将机架内所有服务器刀片、存储节点和加速资源连接成一个统一的、可共享的资源池。每个设备都像连接在本地PCIe总线上一样被访问。
- 机架间层(Ethernet/InfiniBand Fabric):每个机架作为一个“超级节点”,通过其头节点或专用的网关设备,以更高速的以太网(如100G/400G)或InfiniBand连接到数据中心级的交换网络,实现机架间的数据通信和资源调度。
这种架构的关键在于两个层级之间的“网关”如何设计。网关需要实现PCIe协议与上层网络协议(如RoCEv2/RDMA over Converged Ethernet 或 InfiniBand)的高效转换,同时管理好地址映射和资源发现。
4.2 核心使能技术:PCIe Switching与NVMe-oF
PCIe交换芯片(PCIe Switch): 这是扩展PCIe拓扑的核心硬件。现代PCIe交换芯片支持多达数十甚至上百个端口,可以配置为多种拓扑结构(如胖树、网状)。它们不仅负责数据包的路由,还集成了高级功能,如:
- 非透明桥接(NTB):允许两个独立的主机系统通过一个共享的PCIe交换结构进行通信,同时保持各自地址空间的隔离和安全。这是实现多主机共享I/O的基础。
- 多根I/O虚拟化(MR-IOV):是SR-IOV的扩展,允许单个物理PCIe设备(如网卡、GPU)将其资源虚拟化,并分配给多个位于不同根复合体(Root Complex, 即不同主机)上的虚拟机(VM)直接使用,实现硬件级的高效共享。
NVMe over Fabrics (NVMe-oF): 这是推动PCIe机架互连落地的关键软件协议栈。NVMe-oF定义了如何通过网络(Fabrics)访问远程的NVMe SSD。虽然它最初支持以太网、InfiniBand等作为传输层,但NVMe-oF over PCIe是一个天然且高效的选择。通过PCIe交换网络,主机可以像访问本地NVMe SSD一样,以极低的延迟访问机架内其他节点上的NVMe存储资源,构建高性能的共享存储池。这避免了传统网络存储(如iSCSI)的协议开销,是构建分解式存储(Disaggregated Storage)架构的理想技术。
光互连与电缆技术: 要将PCIe信号可靠地传输到机架尺度(通常可达几米到十几米),需要借助先进的电缆技术。有源光缆(AOC)和直连铜缆(DAC)是两种主流方案。对于更长距离(如机架顶部到底部),AOC在功耗和信号质量上更有优势。PCIe标准组织也在持续推动CXL(Compute Express Link)等新一代互连协议,它在兼容PCIe的基础上,增加了缓存一致性支持,旨在更高效地连接CPU、内存和加速器,这进一步强化了PCIe生态在异构计算中的核心地位。
4.3 实操考量:系统集成与软件栈
在实际部署中,除了硬件,软件栈至关重要。
- 资源发现与管理:需要一个机架级的资源管理器,来发现所有通过PCIe Fabric连接的设备(GPU、SSD、智能网卡等),并将其作为可池化的资源提供给上层应用或云管理平台(如OpenStack, Kubernetes)。
- 设备虚拟化与分配:通过MR-IOV和NTB,配合Hypervisor或容器运行时,可以将一个物理GPU灵活地分配给机架内不同服务器上的多个虚拟机或容器使用,实现资源的秒级弹性分配和回收。
- 故障隔离与高可用:PCIe Fabric需要具备链路冗余和故障切换能力。当某个交换芯片或链路出现故障时,系统应能自动重新路由,保证服务的连续性。这需要在硬件交换拓扑和软件驱动层面共同设计。
5. 挑战、现状与未来展望
尽管前景广阔,但PCIe作为机架级互连的普及仍面临一些挑战,同时生态也在快速发展。
5.1 当前面临的主要挑战
- 生态成熟度:虽然PCIe设备生态庞大,但机架级PCIe交换和管理的整体解决方案生态相比成熟的以太网交换机市场,仍处于早期阶段。可供选择的品牌、型号,以及相关的网络管理、监控、诊断工具链还不够丰富。
- 标准化与互操作性:如何将多个供应商的PCIe交换芯片、重定时器、电缆以及不同服务器厂商的机架集成在一起,并确保稳定工作,需要更完善的系统级标准和互操作性认证。CXL协议的出现正在加速这一进程。
- 软件栈复杂度:实现跨主机的PCIe资源共享,对操作系统内核、设备驱动、虚拟化层和集群管理软件都提出了新的要求。开发、调试和运维这套软件栈的复杂度高于传统的以太网网络。
5.2 行业实践与发展动态
正如原文评论中提到的,早在2013年,像Facebook这样的超大规模数据中心运营商就已经开始探索PCIe在机架内的应用。如今,这已成为一个明确的趋势。
- 超大规模云厂商:Google、Microsoft Azure等都在其定制化服务器设计中,广泛采用PCIe Switch来连接机箱内的多个计算模块和加速器,实现资源池化。
- 存储领域:NVMe-oF over PCIe是构建超低延迟共享存储阵列(如AFA)和分解式存储的核心技术。许多全闪存存储厂商在其机箱背板中内置了PCIe交换网络。
- 人工智能与高性能计算:在AI训练集群中,需要将成千上万的GPU高速互联。NVIDIA的NVLink技术本质上是其私有的、增强版的类PCIe互连。而在更开放的领域,基于PCIe/CXL的异构计算平台正在兴起,旨在更高效地连接CPU、GPU、FPGA和专用AI芯片。
- 硅光(Silicon Photonics)互连:正如评论中提及的Intel硅光技术,光互连是突破电互连距离和带宽密度瓶颈的必然方向。将PCIe/CXL协议运行在硅光引擎上,可以实现更长距离(机房级)、更低功耗、更高带宽的机架间甚至数据中心级互连,模糊“机架内”与“机架间”的界限。
5.3 给架构师与开发者的建议
如果你正在设计新一代的数据中心硬件或规划资源池化方案,以下是一些实操建议:
- 场景驱动选型:不要为了技术而技术。首先明确你的工作负载特征。如果应用对延迟极其敏感(微秒级),且需要紧密共享硬件加速器或存储,那么优先评估基于PCIe/CXL的机架内互连方案。如果应用是传统的分布式计算,通信模式松散,那么成熟的以太网可能仍是更稳妥的选择。
- 关注CXL的演进:CXL建立在PCIe物理层和电气层之上,增加了缓存一致性内存语义。它正在迅速获得产业支持。在规划新系统时,尤其是涉及内存池化(Memory Pooling)和异构计算时,必须将CXL纳入考量。选择支持CXL的CPU、交换芯片和加速器,能为未来留下更大的灵活性。
- 从小规模概念验证(PoC)开始:可以从一个简单的双节点共享一块NVMe SSD或GPU的PoC开始。使用支持NTB的PCIe交换板卡或设备,尝试配置Linux下的多主机共享。这能帮助你快速理解软件栈的配置复杂度和实际能达到的性能收益。
- 评估总拥有成本(TCO):不仅要计算硬件采购成本,还要评估因性能提升带来的业务收益(如更快的模型训练缩短产品上市时间)、因功耗降低带来的电费和冷却成本节约,以及因架构简化可能减少的运维成本。
我个人在实际的异构计算平台设计中的体会是,互连技术的选择没有银弹,只有最适合特定场景的权衡。PCIe在机架内的崛起,并不是要取代以太网或InfiniBand,而是让互连技术栈变得更加层次化和专业化。它迫使我们去更精细地思考数据流动的路径,将“远距通信”和“近距协作”区别对待,从而在整体上构建出更高性能、更高效、更灵活的数据中心基础设施。这场始于机箱内部的变革,正在重新定义数据中心资源池化的边界。
