算力网络---二层、三层CLOS组网
一、二层Spine-Leaf组网
最大组网规模计算公式
400G口接入规模计算=Spine的端口数量*Leaf的端口数量/2
Leaf设备需求数量
Leaf数量=GPU网卡数量/Leaf下行端口数
Spine设备需求数量
Spine数量=GPU网卡数量/Spine下行端口数(Spine的数量,大于计算结果的2的N次方)
二、路由规划
-
路由协议选择----EBGP
Underlay路由协议建议选择EBGP,
-
(V)EBGP使用AS-path防止环路,保障单节点无次优路由,就可降低故障后,路由收敛瞬间环路风险,且EBGP可支持更大规模的组网。
-
(X)IBGP在同一AS内,使用水平分割原则,需要部署RR反射器来模拟EBGP的行为。
-
(X)IGP路由协议容易产生故障后微环----严重的时候可能触发PFC死锁。
-
EBGP的AS规划
-
所有Spine使用相同的AS号;所有Leaf使用不同的AS号,比如使用100+Leaf号的方式规划。
-
智能参数网,对路由的需求:
Leaf之间正常发布接收网卡路由
-
Leaf的as不同,天然可被接收。
-
Leaf的as相同,需要配置peer spine allow-as-loop 1来防止因as相同被丢弃。
Leaf拒绝从Spine接收自己发布的路由
-
如果Leaf和Spine只有一根线,建立一个EBGP Peer,Spine从和Leaf的Peer接收路由后不会再发布回去;
-
如果Leaf和Spine有多根线,建立多个EBGP Peer,Spine从和Leaf的Peer1接收路由后,会从Peer2发布回去。-----------此时如果Leaf的AS号相同,就需要配置peer spine allow-as-loop 1,故Leaf将接收Spine返回来的路由,Leaf上会形成次优路由,故障收敛期间就可能造成瞬时环路;为了适配各种组网,Leaf的as要不同。
Spine拒绝途径其他Spine的路由
-
Spine的AS均相同,会丢弃这些途径其他Spine的路由,避免流量在网络中绕行。
-
EBGP的Peer配置
直连链路地址建立EBGP Peer,而不是环回口地址
首先,Spine本身无法直接打通到leaf的环回口地址,需要通过IGP打通,或者借用环回口地址建立EBGP Peer,增加了路由协议的复杂度,和配置复杂度;
其次,如图,通常为了带内管理,环回口地址路由也会发布到BGP Peer内,图中Spine1可以从Leaf1,Leaf2都学习到Leaf1的环回口地址LP1的路由,只是优选下一跳是Leaf1的。
而当Spine1和Leaf1的链路故障的时候,Spine1依然能学习到Peer建立的目的地址路由,导致长时间不能Peer down而撤销路由,导致整体故障收敛性能变差,丢包更多。
互联链路地址不建议发布到BGP路由中
比如Spine1和Leaf1,使用互联链路地址IP1和IP2建立EBGP Peer;
如果Leaf1将IP1发布到BGP内,那么其他设备也会学到IP1地址路由;
在Spine1和Leaf1链路故障的时候,Spine1因为可以从其他设备也学到IP1,故在收敛瞬间,会认为Peer依然可达,导致收敛变慢,丢包更多。
而且将Underlay链路互联地址发布到BGP内也不存在业务需求,故不建议。
一、Core-Spine-Leaf三层组网
-
通常是三层盒盒架构,有两种组网形态,最大的差异性在GPU服务器接入方式上有区别。
-
多POD组网,单个POD是一个Spine-Leaf多轨道接入网络,接入一定数量的服务器,涵盖所有的8张GPU卡。
-
多轨道组网,单个POD是一个Spine单轨道接入网络,共计8个POD,每个POD连接一个轨道的GPU卡。
-
-
最大规模的计算(两个组网相同)
接入规模=Core的端口数量*Spine的端口数量*Leaf的400G口数量/4
二、多POD三层组网
-
Kubernetes中最小的、最简单的可部署和管理的计算单元。它是一个由一个或多个紧密相关的容器组成的逻辑集合,这些容器共享存储、网络和运行上下文。
-
多POD三层组网优劣势
优势:初期投资小,可只建设一个POD,预留Spine上行端口,后期按需扩容到三层组网。
劣势:三层组网后,同轨道的GPU卡间跨POD流量需要上Core层,非最优。
-
POD数量
多POD组网因为POD数量不固定,所以先从POD的维度计算。
单个POD最大接入GPU卡数量计算公式:Spine的400G端口数量/2*Leaf的400G端口数量/2。
三、多轨道组网
-
多轨道三层组网优劣势
优势:同轨道的GPU卡间流量在同一个二层轨道Spine-Leaf内部交互,不跨Core,流量较优。
劣势:轨道数量固定,比如8卡服务器就是8个轨道,初期投资较大。
-
POD数量
比如8卡服务器,固定就是8个轨道,建设8组Spine-Leaf,和一个核心Core层。
Leaf设备需求数量
Leaf数量=GPU网卡数量/Leaf下行400G口数量:
Spine设备需求数量
Spine数量=GPU网卡数量/Spine下行400G口数量:
Spine的数量,建议是每个POD都是大于计算结果的2的N次方的数字。
Core设备需求数量
Core数量=GPU网卡数量/Core下行400G口数量:
Core数量都是大于计算结果的2的N次方的数字,这里取128台。
Core的分组规划
Spine上行64个端口,需要全连接到Core,而Core的数量是128台,所以需要将Core分组。
单个组内的Core的数量,需要是一个2的N次方数字,且需要小于等于Spine上行口数量64。
Core分组后,也需要将一个POD内的Spine分组,一个Spine组连接相同的一组Core。
四、路由规划建议
-
Underlay路由协议建议选择EBGP。
-
EBGP的AS规划建议
-
建议所有的Core使用相同的AS号。或者是同组的Core使用相同的AS号,不同组的Core使用不同的AS号。
-
此时,Leaf需要配置内容不同但长度相同的AS_PATH属性的路由能够形成BGP负载分担命令balance as-path-relax ebgp。
-
建议同一个POD或者同一个轨道的Spine使用相同的AS号,不同POD或者不同轨道的Spine使用不同的AS号。
-
建议所有的Leaf均使用不同的AS号。
-
EBGP的Peer配置建议
-
使用直连链路地址建立EBGP Peer,而不是环回口地址;互联链路地址不发布到BGP路由中。
-
更多推荐
所有评论(0)