4. 交换机与拓扑:低延迟交换机选型(Mellanox、Broadcom)、Spine-Leaf拓扑设计、无阻塞网络

聊到低延迟网络,交换机选型和拓扑设计是绕不开的核心。说白了,你服务器再快,网络堵住了也是白搭。我这些年经手过的项目,从几十台的小集群到上千节点的高性能计算,踩过的坑不少,今天把关键点掰开揉碎了讲给你听。

4.1 低延迟交换机选型:Mellanox vs Broadcom

选交换机,我个人的习惯是先看芯片方案。目前市场上主流的低延迟方案就两家:Mellanox(现在叫NVIDIA Networking)和Broadcom。嗯,这里要注意,别只看品牌,要看里面的“芯”。

核心观点:低延迟交换机的灵魂是交换芯片,而不是外壳上的Logo。

4.1.1 Mellanox(NVIDIA)方案

Mellanox的交换机,我最早接触是在2016年的一个金融交易系统项目。当时客户要求端到端延迟低于1微秒,我们试了一圈,最后选了Mellanox Spectrum系列。为什么?

  • 芯片自研:Mellanox的Spectrum系列交换芯片是自己设计的,从底层到上层完全可控。这意味着固件优化空间大,延迟可以压到极致。
  • RoCE v2原生支持:如果你要用RDMA over Converged Ethernet,Mellanox是亲儿子。我在项目中遇到过,用Broadcom芯片的交换机跑RoCE,需要额外调PFC和ECN,而Mellanox开箱即用,省心不少。
  • SHARP技术:这个很关键。Mellanox的交换机支持In-Network Computing,比如AllReduce操作可以直接在交换机里完成,不用经过CPU。对于AI训练场景,这能省下30%-50%的通信时间。

不过Mellanox也有缺点——贵。而且生态相对封闭,如果你不是全套NVIDIA设备,有些高级特性可能用不上。

4.1.2 Broadcom方案

Broadcom的Tomahawk和Trident系列,是开放网络的主流选择。我个人习惯在成本敏感的项目里用Broadcom方案。

  • 生态开放:你可以用白牌交换机,装SONiC或者OpenSwitch。这对于喜欢折腾的团队来说,灵活性极高。
  • 端口密度高:Tomahawk 4已经能做到单芯片64个400G端口,或者128个200G端口。这在Spine-Leaf架构里非常实用。
  • 成本优势:同样的端口速率,Broadcom方案通常比Mellanox便宜30%-40%。

但Broadcom的短板也很明显:延迟比Mellanox略高(大概高100-200纳秒),而且对RoCE的支持需要额外调优。我曾经在一个项目中,因为Broadcom交换机的ECN配置不当,导致RoCE流量出现大量重传,排查了两天才搞定。

对比项 Mellanox (NVIDIA) Broadcom
典型延迟 200-300ns 300-500ns
RoCE支持 原生最佳 需调优
生态开放性 封闭 开放
成本 中低
典型场景 HPC、AI训练、金融交易 数据中心、云、通用计算

我的建议:如果延迟是第一位(比如量化交易),闭眼选Mellanox。如果追求性价比和灵活性,Broadcom方案更合适。

4.2 Spine-Leaf拓扑设计

传统的三层架构(接入-汇聚-核心)在低延迟场景下已经不够看了。为什么?因为流量路径不对称,而且带宽容易成为瓶颈。你想想看,一个服务器要访问另一个机架的服务器,得经过三层交换机,延迟叠加不说,万一汇聚层挂了,整个区域都瘫痪。

Spine-Leaf架构就是来解决这个问题的。说白了,就是让任何两台服务器之间的跳数固定,而且路径完全对称。

4.2.1 什么是Spine-Leaf?

Spine-Leaf由两层组成:

  • Leaf层:连接服务器,相当于传统的接入层。每个Leaf交换机都连接到所有Spine交换机。
  • Spine层:负责转发Leaf之间的流量,不直接连服务器。

这样做的好处是:任何两台服务器之间的通信,最多经过一台Leaf和一台Spine,也就是两跳。而且因为每个Leaf都连了所有Spine,流量可以均匀分布,不会出现某条链路被撑爆的情况。

关键点:Spine-Leaf的核心是“全连接”。每个Leaf必须连接到每一个Spine,否则就不是真正的Spine-Leaf。

4.2.2 设计要点

我在设计Spine-Leaf时,有几个习惯:

  • Spine数量:至少4台。为什么?因为如果只有2台,一台挂了,剩下那台要承担所有流量,压力太大。4台以上可以保证冗余和负载均衡。
  • Leaf数量:取决于Spine的端口数。比如Spine是64个100G端口,那最多可以连64台Leaf。但实际中我会留20%的余量,方便未来扩容。
  • 带宽比例:Spine到Leaf的带宽总和,应该大于等于Leaf到服务器的带宽总和。这就是所谓的“无阻塞”设计。举个例子,如果Leaf有48个25G端口连服务器(总带宽1.2T),那它连Spine的端口总带宽至少也要1.2T。

避坑指南:我曾经在一个项目中,为了省钱,Spine只用了2台,结果Leaf到Spine的链路利用率长期超过80%,延迟飙升。后来加了2台Spine,问题才解决。所以,Spine数量别省。

4.3 无阻塞网络

无阻塞网络,听起来很玄乎,其实核心就一句话:任何端口在任何时刻都能以线速转发,不会因为内部带宽不足而丢包。

要做到无阻塞,需要满足两个条件:

  1. 交换芯片的背板带宽足够大。比如一台48口100G的交换机,背板带宽至少要有9.6T(48×100G×2,双向)。如果只有4.8T,那就是有阻塞的。
  2. Spine-Leaf的带宽比例要合理。前面说了,Leaf的上行带宽要大于等于下行带宽。

你可能会问:为什么一定要无阻塞?因为一旦出现阻塞,延迟就会变得不可预测。在低延迟场景下,延迟的抖动(Jitter)比延迟本身更可怕。比如金融交易,如果延迟稳定在1微秒,系统可以接受。但如果有时候1微秒,有时候10微秒,那交易策略就乱套了。

我的经验:测试交换机是否无阻塞,最简单的方法是用iperf打满所有端口,然后看有没有丢包。如果所有端口同时跑满流量,一个包都不丢,那就是真正的无阻塞。

4.4 知识体系图

下面这张图,是我自己总结的低延迟网络选型与拓扑设计的核心逻辑。你可以把它当作一个检查清单。

低延迟网络架构核心逻辑 目标:低延迟 + 无阻塞 交换机选型 拓扑设计 Mellanox 低延迟(200-300ns) RoCE原生支持 Broadcom 延迟略高(300-500ns) 开放生态、成本低 Spine-Leaf 固定两跳 全连接、负载均衡 无阻塞 带宽匹配 线速转发 最终效果:可预测的低延迟 + 高吞吐

这张图的核心逻辑是:先明确目标(低延迟+无阻塞),然后从交换机选型和拓扑设计两个方向入手。选型时在Mellanox和Broadcom之间权衡,拓扑上坚持Spine-Leaf并确保无阻塞。最终才能得到一个延迟可预测、带宽不瓶颈的网络。

总结一句话:低延迟网络没有银弹。芯片选型决定了延迟的下限,拓扑设计决定了延迟的稳定性。两者缺一不可。

专注资料整理