到底什麼是葉脊網路?
- 2020 年 2 月 26 日
- 筆記
今天這個故事,要從67年前開始說起。
1953年,貝爾實驗室有一位名叫Charles Clos的研究員,發表了一篇名為《A Study of Non-blocking Switching Networks》的文章,介紹了一種「用多級設備來實現無阻塞電話交換」的方法。
自從1876年電話被發明之後,電話交換網路歷經了人工交換機、步進位交換機、縱橫制交換機等多個階段。20世紀50年代,縱橫制交換機處於鼎盛時期。
縱橫交換機的核心,是縱橫連接器。如下圖所示:

縱橫制接線器

縱橫連接器交叉點示意圖
這種交換架構,是一種開關矩陣,每個交點(Crosspoint)都是一個開關。交換機通過控制開關,來完成從輸入到輸出的轉發。

開關矩陣(交點數量=N2)
可以看出,開關矩陣很像一塊布的纖維。所以,交換機的內部架構,被稱為Switch Fabric。Fabric,就是「纖維、布料」的意思。
Fabric這個詞,我相信所有核心網工程師和數通工程師都非常熟悉。「Fabric平面」、「Fabric匯流排」等概念,經常出現在工作中。
隨著電話用戶數量急劇增加,網路規模快速擴大,基於crossbar模型的交換機在能力和成本上都無法滿足要求。於是,才有了文章開頭Charles Clos的那篇研究文章。

Charles Clos(右一)
Charles Clos提出的網路模型,核心思想是:用多個小規模、低成本的單元,構建複雜、大規模的網路。例如下圖:

圖中的矩形,都是低成本的轉發單元。當輸入和輸出增加時,中間的交叉點並不需要增加很多。
這種模型,就是後來產生深遠影響的CLOS網路模型。
到了80年代,隨著電腦網路的興起,開始出現了各種網路拓撲結構,例如星型、鏈型、環型、樹型。
樹型網路逐漸成為主流,大家也非常熟悉。

樹型網路
傳統的樹型網路,頻寬是逐級收斂的。什麼是收斂呢?物理埠頻寬一致,二進一出,不就1:2的收斂了嘛。

2000年之後,互聯網從經濟危機中復甦,以Google和亞馬遜為代表的互聯網巨頭開始崛起。他們開始推行雲計算技術,建設大量的數據中心(IDC),甚至超級數據中心。
面對日益龐大的計算規模,傳統樹型網路肯定是不行的了。於是,一種改進型樹型網路開始出現,它就是胖樹(Fat-Tree)架構。
胖樹(Fat-Tree)就是一種CLOS網路架構。
相比於傳統樹型,胖樹(Fat-Tree)更像是真實的樹,越到樹根,枝幹越粗。從葉子到樹根,網路頻寬不收斂。

胖樹架構的基本理念是:使用大量的低性能交換機,構建出大規模的無阻塞網路。對於任意的通訊模式,總有路徑讓他們的通訊頻寬達到網卡頻寬。
胖樹架構被引入到數據中心之後,數據中心變成了傳統的三層結構:

接入層:用於連接所有的計算節點。通常以機櫃交換機(TOR,Top of Rack,櫃頂交換機)的形式存在。
匯聚層:用於接入層的互聯,並作為該匯聚區域二三層的邊界。各種防火牆、負載均衡等業務也部署於此。
核心層:用於匯聚層的的互聯,並實現整個數據中心與外部網路的三層通訊。

在很長的一段時間裡,三層網路結構在數據中心十分盛行。在這種架構中,銅纜布線是主要的布線方式,使用率達到了80%。而光纜,只佔了20%。
用著用著,人們發現,傳統三層架構有很多的缺點。
首先,是資源的浪費。
傳統三層結構中,一台下層交換機會通過兩條鏈路與兩台上層交換機互連。

由於採用的是STP協議( Spanning Tree Protocol,生成樹協議),實際承載流量的只有一條。其它上行鏈路,是被阻塞的(只用於備份)。這就造成了頻寬的浪費。
其次,是故障域比較大。
STP協議由於其本身的演算法,在網路拓撲發生變更時需要重新收斂,容易發生故障,從而影響整個VLAN的網路。
第三點,也是最重要的一點——隨著時間推移,數據中心的流量走向發生了巨大變化。
2010年之後,為了提高計算和存儲資源的利用率,所有的數據中心都開始採用虛擬化技術。網路中開始出現了大量的虛擬機(VM,Virtual Machine)。

與此同時,微服務架構開始流行,很多軟體開始推行功能解耦,單個服務變成了多個服務,部署在不同的虛擬機上。虛擬機之間的流量,大幅增加。
這種平級設備之間的數據流動,我們稱之為「東西向流量」。

相對應的,那種上上下下的垂直數據流動,稱為「南北向流量」。這個很容易理解,「上北下南,左西右東」嘛。
東西向流量,其實也就是一種「內部流量」。這種數據流量的大幅增加,給傳統三層架構帶來了很大的麻煩——因為伺服器和伺服器之間的通訊,需要經過接入交換機、匯聚交換機和核心交換機。

數據流向舉例
這意味著,核心交換機和匯聚交換機的工作壓力不斷增加。要支援大規模的網路,就必須有性能最好、埠密度最大的匯聚層核心層設備。這樣的設備成本高,價格非常昂貴。
於是乎,網路工程師們提出了「Spine-Leaf網路架構」,也就是我們今天的主角——葉脊網路(有時候也被稱為脊葉網路)。Spine的中文意思是脊柱,Leaf是葉子。
葉脊網路架構,和胖樹結構一樣,同屬於CLOS網路模型。
相比於傳統網路的三層架構,葉脊網路進行了扁平化,變成了兩層架構。如下圖所示:

葉交換機,相當於傳統三層架構中的接入交換機,作為 TOR(Top Of Rack)直接連接物理伺服器。葉交換機之上是三層網路,之下都是個獨立的 L2 廣播域。如果說兩個葉交換機下的伺服器需要通訊,需要經由脊交換機進行轉發。
脊交換機,相當於核心交換機。葉和脊交換機之間通過ECMP(Equal Cost Multi Path)動態選擇多條路徑。
脊交換機下行埠數量,決定了葉交換機的數量。而葉交換機上行埠數量,決定了脊交換機的數量。它們共同決定了葉脊網路的規模。

葉脊網路的優勢非常明顯:
1、頻寬利用率高
每個葉交換機的上行鏈路,以負載均衡方式工作,充分的利用了頻寬。
2、網路延遲可預測
在以上模型中,葉交換機之間的連通路徑的條數可確定,均只需經過一個脊交換機,東西向網路延時可預測。
3、擴展性好
當頻寬不足時,增加脊交換機數量,可水平擴展頻寬。當伺服器數量增加時,增加脊交換機數量,也可以擴大數據中心規模。總之,規劃和擴容非常方便。
4、降低對交換機的要求
南北向流量,可以從葉節點出去,也可從脊節點出去。東西向流量,分布在多條路徑上。這樣一來,不需要昂貴的高性能高頻寬交換機。
5、安全性和可用性高
傳統網路採用STP協議,當一台設備故障時就會重新收斂,影響網路性能甚至發生故障。葉脊架構中,一台設備故障時,不需重新收斂,流量繼續在其他正常路徑上通過,網路連通性不受影響,頻寬也只減少一條路徑的頻寬,性能影響微乎其微。

思科的Nexus 9396PX,適合作為葉交換機
我們來結合一個案例模型,分析一下葉脊網路的支援能力。
假設一個這樣的資源條件:
脊交換機數量:16台
每個脊交換機的上聯埠:8個 × 100G
每個脊交換機的下聯埠:48個 × 25G
葉交換機數量:48台
每個葉交換機的上聯埠:16個 × 25G
每個葉交換機的下聯埠:64個 × 10G
在理想情況下,這樣的葉脊網路總共可支援的伺服器數量為:48×64=3072台。(注意,葉脊交換機北向總頻寬一般不會和南向總頻寬一致,通常大於1:3即可。上例為400:640,有點奢侈了。)
從這個例子也可以看出,葉脊網路帶來了一個趨勢,那就是對光模組的數量需求大幅增加。
下圖就是傳統三層架構和葉脊架構所使用光模組數量的對比案例,差別可能達到15-30倍之多。

(來自國泰君安證券研究)
正因為如此,資本市場對葉脊網路非常關注,希望藉此帶動光模組市場的增長,尤其是100G、400G這樣的高速率光模組。

光模組出貨量及生命周期預測(2018)
葉脊拓撲網路從2013年左右開始出現,發展速度驚人,很快就取代了大量的傳統三層網路架構,成為現代數據中心的新寵。
最具有代表性的,是Facebook在2014年公開的數據中心架構。Facebook使用了一個五級CLOS架構,甚至是一個立體的架構。大家有興趣可以研究一下。

Facebook數據中心架構
除了Facebook之外,Google公司的第五代數據中心架構Jupiter也大規模採用了葉脊網路,其可以支援的網路頻寬已經達到Pbps級。Google數據中心中10萬台伺服器的每一個,都可以用任意模式以每秒10千兆比特的速度互相通訊。

Google數據中心
好啦,關於葉脊網路的介紹,今天就到這裡。
感謝大家的耐心觀看,我們下期再見!
參考文獻:
1、葉脊網路拓撲下全三層網路設計與實踐,eponia,CSDN
2、光通訊的再思考:5G流量爆發下的數據密度革命,國盛證券
3、數據中心網路架構淺談,肖宏輝,知乎
4、葉脊架構如何滿足新型數據中心流量需求,Paul Korzeniowski
5、是時候考慮葉脊網路架構,Andrew Froehlich
6、IDC葉脊架構如何推動高端光模組爆發,國君通訊
7、數據中心spine leaf網路架構,雲宏大講壇