葉脊拓樸(leaf-spine topology)
想像一座機場,它不是讓所有人都得穿過一座巨大的中央航廈,而是有一排登機門群(葉,leaf)和一排快速單軌(脊,spine),佈線方式讓每個登機門群都連到每一條單軌。要從任一登機門到另一登機門,你恰好搭一段單軌——不多也不少。任兩個葉之間的每趟行程長度都一樣短,而且有多少條單軌就有多少條並排路線。這種規律的兩層網狀結構,就是葉脊網路。
具體來說,葉交換器是伺服器插上的機架頂端交換器;脊交換器構成上層;而關鍵在於每個葉都連到每一個脊,但葉之間從不直接相連、脊之間也從不相連。所以從某機架一台伺服器到另一機架一台伺服器的封包,永遠走相同的跳數:葉、往上到某個脊、再往下到目的地的葉——穿過結構恰好兩跳。因為每個葉有多個脊可選,就有許多等價路徑,ECMP 把資料流分散其上。要擴充容量,就加更多脊;要增加伺服器,就加更多葉。這其實就是一個兩層(對折)的 Clos/胖樹,也是當今主流的資料中心設計。
為什麼重要:葉脊用小型商用交換器就能給出可預測、均勻的延遲(每一對伺服器距離相等)與高對分頻寬,修正了三層式模型那超額認購、延遲不定的核心。誠實的極限在於脊的埠數:單一葉脊層只能長到一定寬度,再寬就用盡脊的埠,這時營運者會把多個葉脊「莢艙(pod)」堆疊成更大的多層 Clos 結構。和任何 ECMP 結構一樣,理論上不超額認購的頻寬,只有在流量被均勻分散到各脊時才能實現。
有 4 台脊交換器時,機架 A 上的伺服器要到機架 B 上的伺服器,就有 4 條等價路徑——每條經過一個脊。ECMP 用雜湊把這條資料流分到其中一條。無論來源與目的地是緊鄰、還是隔著整個機房遙遙相望,路徑都恰好是兩個結構跳數,所以延遲是均勻的。
每趟葉到葉的行程都是兩跳;脊提供了並排路徑。
葉脊就是一個兩層胖樹,所以它的優點與提醒和胖樹相同:均勻延遲與高對分頻寬,但前提是 ECMP 真的把資料流平衡開來,而且規模只能長到可用脊埠所設的上限,再大就得加更多層。