数据中心拓扑 —— Spine-Leaf、Fat-Tree、Dragonfly
数据中心几万台服务器怎么连?拓扑选错就是性能瓶颈。本文按演进讲拓扑——从经典三层到现代 Spine-Leaf,再到 AI 时代的 Rail-Optimized 和 Dragonfly。
演进概览
graph LR
T1[1990s<br/>三层<br/>接入-汇聚-核心] --> T2[2010s<br/>Spine-Leaf<br/>两层 Clos]
T2 --> T3[2015+<br/>Fat-Tree<br/>无收敛]
T3 --> T4[2020+<br/>Rail-Optimized<br/>AI 集群]
T3 --> T5[HPC<br/>Dragonfly<br/>大跨度低跳数]
驱动力是东西向流量增长——传统三层适合”南北向”(用户→服务器),现代数据中心 80%+ 是东西向(服务器↔服务器)。
经典三层(已过时)
graph TB
CORE[Core 核心层<br/>2-4 台]
AGG1[Agg 汇聚]
AGG2[Agg 汇聚]
ACC1[Access 接入<br/>ToR]
ACC2[Access 接入<br/>ToR]
ACC3[Access]
ACC4[Access]
CORE --- AGG1
CORE --- AGG2
AGG1 --- ACC1 & ACC2
AGG2 --- ACC3 & ACC4
ACC1 --- S1[Server × N]
ACC2 --- S2[Server × N]
特征:
1 | |
这种拓扑 2010 年后大型互联网就开始抛弃——已经不适合云数据中心。
Clos 网络的回归
Clos 网络是1953 年 Charles Clos 在电话交换机里的发明——多层交换机互联,理论上可以无阻塞连接任意输入输出对。
graph TB
subgraph Stage3["Stage 3"]
M1[Switch] & M2[Switch] & M3[Switch]
end
subgraph Stage2["Stage 2"]
N1[Switch] & N2[Switch] & N3[Switch]
end
subgraph Stage1["Stage 1"]
O1[Switch] & O2[Switch] & O3[Switch]
end
M1 --- N1 & N2 & N3
M2 --- N1 & N2 & N3
M3 --- N1 & N2 & N3
N1 --- O1 & O2 & O3
N2 --- O1 & O2 & O3
N3 --- O1 & O2 & O3
每层每台交换机连接下一层每台——任意两个端点 N 跳到达,且无阻塞。
数据中心实际部署的 Spine-Leaf 就是 Clos 的简化版(2 层)。
Spine-Leaf 拓扑
现代数据中心的事实标准:
graph TB
S1[Spine 1] --- L1[Leaf 1]
S1 --- L2[Leaf 2]
S1 --- L3[Leaf 3]
S1 --- L4[Leaf 4]
S2[Spine 2] --- L1 & L2 & L3 & L4
S3[Spine 3] --- L1 & L2 & L3 & L4
S4[Spine 4] --- L1 & L2 & L3 & L4
L1 --- S1A[Server × 32]
L2 --- S2A[Server × 32]
特征:
1 | |
一个具体例子
1 | |
加大规模就是堆 Spine 数量 + Leaf 数量——水平扩展。
Fat-Tree(Charles Leiserson 1985)
Fat-Tree 是胖树——上层链路带宽 ≥ 下层总带宽,严格无收敛。
graph TB
subgraph Core["Core"]
C1 & C2 & C3 & C4
end
subgraph Agg["Aggregation Pod 1"]
A1 & A2
end
subgraph Edge["Edge Pod 1"]
E1 & E2
end
C1 --- A1 & A2
C2 --- A1 & A2
C3 --- A1 & A2
C4 --- A1 & A2
A1 --- E1 & E2
A2 --- E1 & E2
E1 --- H1[Host]
E2 --- H2[Host]
k 元 Fat-Tree(每交换机 k 端口):
1 | |
例:k=48 → 27648 Host,3120 交换机。这就是早期”超大规模数据中心”的基本设计。
Fat-Tree vs Spine-Leaf
1 | |
Rail-Optimized 拓扑(AI 集群)
第五章 5.8 已经讲过——这里再深入:
graph TB
subgraph Rail0["Rail 0 平面"]
L0_1[Leaf-0-1] --- L0_2[Leaf-0-2]
S0[Spine-0] --- L0_1
S0 --- L0_2
end
subgraph Rail1["Rail 1 平面"]
L1_1[Leaf-1-1] --- L1_2[Leaf-1-2]
S1[Spine-1] --- L1_1
S1 --- L1_2
end
L0_1 --- N1G0[节点 1 GPU 0]
L1_1 --- N1G1[节点 1 GPU 1]
L0_2 --- N2G0[节点 2 GPU 0]
L1_2 --- N2G1[节点 2 GPU 1]
8 GPU/节点 = 8 个 Rail 平面,每平面独立 Spine-Leaf:
1 | |
为什么 Rail 适合 AI
1 | |
NVIDIA SuperPOD 设计指南把 Rail-Optimized 作为标准。万卡集群基本都是这个套路。
Spine 之上:跨 Rail / 跨 Pod
1 | |
Dragonfly(HPC)
HPC 超算用得多——跳数少、带宽利用高:
graph TB
subgraph Group1["Group 1<br/>本地全互联"]
G1A[R1] --- G1B[R2] --- G1C[R3] --- G1A
end
subgraph Group2["Group 2"]
G2A[R4] --- G2B[R5] --- G2C[R6] --- G2A
end
subgraph Group3["Group 3"]
G3A[R7] --- G3B[R8] --- G3C[R9] --- G3A
end
G1A --- G2A
G1B --- G3A
G2B --- G3B
每个 Group 内全互联,Group 之间稀疏互联——最大跳数 3-5 跳。
1 | |
Dragonfly 的优势在于节省线缆——跨 group 链路远少于 Fat-Tree。
待补充:Slingshot 11 实际 ExaFLOP 超算部署细节。
数据中心物理布线
1 | |
线缆类型选择直接决定光模块成本——AI 集群里光模块占总成本 10-15% 不奇怪。
L2 / L3 / VXLAN
graph TB
L2[二层 VLAN<br/>STP 时代<br/>最大几千台]
L3[三层 BGP<br/>Spine-Leaf 标配<br/>每 ToR 一个 BGP AS]
VXLAN[VXLAN Overlay<br/>跨 L3 做虚拟 L2<br/>多租户]
L2 --> L3 --> VXLAN
为什么用 L3 而不是 L2
1 | |
现代数据中心默认 L3 + BGP——VLAN 只在 ToR 内部。
VXLAN:跨 L3 做虚拟 L2
1 | |
VXLAN 让多租户云成为可能——每租户一个 VNI(24-bit)。
1 | |
流量工程:ECMP 与 hashing
Spine-Leaf 多路径——ECMP(Equal-Cost Multi-Path) 在多个等价路径间做哈希分流:
1 | |
问题:
1 | |
解决:
1 | |
NVIDIA Spectrum-X / Quantum-2 都支持 Adaptive Routing。
数据中心规模的几个例子
一般企业 IDC(数百到几千台服务器)
1 | |
互联网中型数据中心(万台规模)
1 | |
Hyperscale 数据中心(10万+)
1 | |
AI 训练集群
1 | |
网络收敛比(oversubscription)
1 | |
AI 工厂的 Clos 网络变种:2-tier vs 3-tier
普通数据中心用 2-tier Spine-Leaf 便已绰绰有余,到了 AI 工厂——动辄数万 XPU,流量全是 AllReduce 这类”人人互通”的全局操作——网络拓扑便要认真重新考量。
两层 Clos(2-tier)适合中等规模
graph TB
subgraph Tier1["Tier-1 Spine(交换层)"]
SP1[Spine 1] & SP2[Spine 2] & SP3[Spine N]
end
subgraph Tier0["Tier-0 Leaf(ToR 层)"]
L1[Leaf/ToR 1] & L2[Leaf/ToR 2] & L3[Leaf/ToR M]
end
SP1 --- L1 & L2 & L3
SP2 --- L1 & L2 & L3
SP3 --- L1 & L2 & L3
L1 --- GPU1[GPU 节点群]
L2 --- GPU2[GPU 节点群]
L3 --- GPU3[GPU 节点群]
1 | |
2-tier 是当前主流 AI 集群(万卡级)的标准选择。
三层 Clos(3-tier)支撑超大规模
当目标是 10 万、甚至 50 万 XPU 的”AI 超算园区”时,就必须引入第三层:
graph TB
subgraph Tier2["Tier-2 Super-Spine(园区级互联)"]
SS1[Super-Spine 1] & SS2[Super-Spine 2]
end
subgraph Tier1["Tier-1 Spine(Pod 内骨干)"]
SP1[Pod-A Spine] & SP2[Pod-B Spine]
end
subgraph Tier0["Tier-0 Leaf/ToR"]
L1[ToR A1] & L2[ToR A2] & L3[ToR B1] & L4[ToR B2]
end
SS1 --- SP1 & SP2
SS2 --- SP1 & SP2
SP1 --- L1 & L2
SP2 --- L3 & L4
L1 --- G1[GPU]
L2 --- G2[GPU]
L3 --- G3[GPU]
L4 --- G4[GPU]
1 | |
AI Scale-Up 与 Scale-Out 的拓扑分层
这是 2026 年 AI 基础设施最重要的架构分层之一:
graph TB
subgraph ScaleUp["Scale-Up 层(节点内 / 小 Pod 内)"]
NVL[NVLink / UALink / PCIe Switch]
NVL --> XPU1[GPU/XPU 0]
NVL --> XPU2[GPU/XPU 1]
NVL --> XPU3[GPU/XPU N]
end
subgraph ScaleOut["Scale-Out 层(跨 Pod / 跨机柜)"]
NET[InfiniBand / RoCEv2 网络]
NET --> NODE1[计算节点 A]
NET --> NODE2[计算节点 B]
NET --> NODE3[计算节点 C]
end
ScaleUp --> ScaleOut
| 层次 | 技术 | 延迟 | 带宽 | 适用规模 |
|---|---|---|---|---|
| Scale-Up | NVLink 5 / UALink / PCIe Switch | ns 级 | TB/s 级 | 8-1024 XPU |
| Scale-Out | IB NDR / RoCEv2 / UALink(未来) | μs 级 | 400-800 Gbps/端口 | 数万 XPU |
两层不能合并的原因:
1 | |
UALink 联盟(AMD + Google + Intel + Meta + Microsoft,115+ 成员)正在做的,就是用开放标准填补 Scale-Up 这一层——对标 NVIDIA NVLink 的封闭生态。
双层 Scale-Out 方案:Tomahawk 6 支撑 128K XPU
咱要讲的这个方案,来自 2026 年微软的生产实践,数据相当硬核。
解聚合 Spine(Disaggregated Spine)的由来
微软在 OCP 2026 EMEA 峰会公开了一件事:把传统机箱式 Tier-2 交换机拆开,分成 Upper-T2(UT2)和 Lower-T2(LT2)两种不同芯片的固定形态设备。
graph TB
RNG[区域网络网关 RNG<br/>100km 范围聚合多个 DC]
RNG --> UT2[Upper-T2<br/>Broadcom DNX 系列<br/>Q3D 25.6T / Q4D 51.2T<br/>支持 ZR 长距光 + MACSec]
UT2 --> LT2[Lower-T2<br/>Broadcom XGS 系列<br/>TH5-512 51.2T / TH6-P 102.4T<br/>高 Radix + 低延迟 + 低功耗]
LT2 --> T1[Tier-1 交换机]
T1 --> T0[ToR / Leaf]
T0 --> GPU[GPU 节点]
为什么拆? 微软用 30 天 Sflow 数据分析发现:机箱内 85% 的流量是数据中心内部流量,只有 15% 是跨 DC 的 WAN 流量。把两种功能混在一个机箱里——用同一块 ASIC 既处理 ZR 长距光又处理高密度本地 Fabric——是严重的资源浪费。
量化收益
| 部署方案 | UT2 芯片 | LT2 芯片 | 功耗对比机箱 |
|---|---|---|---|
| 400G 基准机箱 | 机箱混用 | 机箱混用 | 100%(179.7 kW) |
| 400G 解聚合 | Q3D | TH5-512 | 节省 30%(116.5 kW) |
| 400G 解聚合 + TH6-P | Q3D | TH6-P 102.4T | 节省 43% |
| 800G 解聚合 | Q4D | TH6-P 102.4T | 节省 47.3% |
来源:微软 OCP 2026 EMEA 幻灯片《From Modular Chassis to Modular Network Spine》
TH6-P 的角色
在这个方案里,Tomahawk 6(TH6-P)专职 LT2——负责数据中心内部的高密度 Fabric 连接:
1 | |
UT2/LT2 互联用 LPO AOC
两者之间的互联不用昂贵的 ZR,而是用低功耗 LPO AOC(Active Optical Cable with Linear-drive Pluggable Optics):
1 | |
延迟与光成本降低
1 | |
一些查询命令
1 | |
拓扑设计的几个权衡
1 | |
万卡级集群拓扑设计要 1-2 月——不是简单的”买交换机连起来”。
实战清单
1 | |
小结
- 经典三层已淘汰,Spine-Leaf 是事实标准
- Fat-Tree 在超大规模仍有价值
- AI 集群推 Rail-Optimized——8 GPU = 8 个独立 Rail
- HPC 用 Dragonfly 节省线缆
- VXLAN + EVPN 是多租户标配
- ECMP 单流瓶颈靠 Adaptive Routing 解决
- 现代数据中心 L3 + BGP,VLAN 只在 ToR
- AI 工厂的关键分层:Scale-Up(NVLink/UALink,ns 级)与 Scale-Out(IB/RoCE,μs 级)必须分开设计
- **解聚合 Spine(UT2 + LT2)**是微软验证的方向:800G 部署节省 47.3% 功耗,TH6-P 支撑 128K XPU 规模
- LPO AOC 替代 ZR 做 DC 内互联,降低光成本和功耗 70%+
下一篇讲交换机本身——商用 vs 白盒、SONiC 生态。
内容深度由贤狼赫萝于 2026-06-15 增补,引用来源:OCP 2025/2026 幻灯片、Broadcom 技术访谈。