數據中心網路架構淺談(二)
上一篇說了傳統三層網路架構,這一次來看看近些年開始流行的Fabric網路架構。
Fabric
Fabric一詞來源於網路交換機。網路交換機就是將輸入埠的數據,經過判斷,轉發到輸出埠。其架構大體如下圖所示:
交換機內部連接輸入輸出埠的是Switch Fabric。最簡單的Switch Fabric架構是crossbar模型,這是一個開關矩陣,每一個crosspoint(交點)都是一個開關,交換機通過控制開關來完成輸入到特定輸出的轉發。一個crossbar模型如下所示:
可以看出,這裡的開關矩陣類似於一塊布的纖維,所以交換機內的架構被稱為Switch Fabric(纖維)。這是Fabric一詞在網路中的起源。
Clos架構
Charles Clos曾經是貝爾實驗室的研究員。他在1953年發表了一篇名為「A Study of Non-blocking Switching Networks」的文章。文章里介紹了一種用多級設備來實現無阻塞電話交換的方法,這是Clos架構的起源。
簡單的Clos架構是一個三級互連架構,包含了輸入級,中間級,輸出級,如下圖所示:
圖中的矩形是規模小得多的轉發單元,相應的成本小得多。Clos架構的核心思想是:用多個小規模、低成本的單元構建複雜,大規模的架構。上圖中,m是每個子模塊的輸入埠數,n是每個子模塊的輸出埠數,r是每一級的子模塊數,經過合理的重排,只要滿足r2≥max(m1,n3),那麼,對於任意的輸入到輸出,總是能找到一條無阻塞的通路。
回到交換機架構,隨著網路規模的發展,交換機的埠數量逐漸增多。crossbar模型的交換機的開關密度,隨著交換機埠數量N呈 增長。相應的功耗,尺寸,成本也急劇增長。在高密度埠的交換機上,繼續採用crossbar模型性價比越來越低。大約在1990年代,Clos架構被應用到Switch Fabric。應用Clos架構的交換機的開關密度,與交換機埠數量N的關係是 ,所以在N較大時,Clos模型能降低交換機內部的開關密度。這是Clos架構的第二次應用。
Clos網路架構
由於傳統三層網路架構存在的問題,在2008年一篇文章A scalable, commodity data center network architecture,提出將Clos架構應用在網路架構中。2014年,在Juniper的白皮書中,也提到了Clos架構。這一回,Clos架構應用到了數據中心網路架構中來。這是Clos架構的第三次應用。
現在流行的Clos網路架構是一個二層的spine/leaf架構,如下圖所示。spine交換機之間或者leaf交換機之間不需要鏈接同步數據(不像三層網路架構中的匯聚層交換機之間需要同步數據)。每個leaf交換機的上行鏈路數等於spine交換機數量,同樣的每個spine交換機的下行鏈路數等於leaf交換機的數量。可以這樣說,spine交換機和leaf交換機之間是以full-mesh方式連接。
可前面不是說Clos架構是三級設備架構嗎?為什麼這裡只有兩層網路設備?這是因為前面討論Clos架構的時候,都是討論輸入到輸出的單向流量。網路架構中的設備基本都是雙向流量,輸入設備同時也是輸出設備。因此三級Clos架構沿著中間層對摺,就得到了二層spine/leaf網路架構。由於這種網路架構來源於交換機內部的Switch Fabric,因此這種網路架構也被稱為Fabric網路架構。
在spine/leaf架構中,每一層的作用分別是:
- leaf switch:相當於傳統三層架構中的接入交換機,作為TOR(Top Of Rack)直接連接物理伺服器。與接入交換機的區別在於,L2/L3網路的分界點現在在leaf交換機上了。leaf交換機之上是三層網路。
- spine switch:相當於核心交換機。spine和leaf交換機之間通過ECMP(Equal Cost Multi Path)動態選擇多條路徑。區別在於,spine交換機現在只是為leaf交換機提供一個彈性的L3路由網路,數據中心的南北流量可以不用直接從spine交換機發出,一般來說,南北流量可以從與leaf交換機並行的交換機(edge switch)再接到WAN router出去。
對比spine/leaf網路架構和傳統三層網路架構
可以看出傳統的三層網路架構是垂直的結構,而spine/leaf網路架構是扁平的結構,從結構上看,spine/leaf架構更易於水平擴展。
Facebook Fabric Datacenter
Fabric網路架構最具有代表性的就是Facebook在2014年公開的其數據中心架構:Introducing data center fabric, the next-generation Facebook data center network。Facebook使用了一個五級Clos架構,前面說過實際的網路設備即是輸入又是輸出,因此五級Clos架構對摺之後是一個三層網路架構,雖然這裡也是三層,但是跟傳統的三層網路架構完全是兩回事。對應於上面介紹的架構,Facebook將leaf交換機叫做TOR,間添加了一層交換機稱為fabric交換機。fabric交換機和TOR構成了一個三級Clos結構,如下圖所示,這與前面介紹的spine/leaf架構是一樣的。Facebook將一組fabric交換機,TOR和對應的伺服器組成的集群稱為一個POD(Point Of Delivery)。POD是Facebook數據中心的最小組成單位,每個POD由48個TOR和4個fabric交換機組成,下圖就是一個POD的示意圖。
在Facebook的Fabric架構中,spine交換機與多個fabric交換機連接,為多個POD提供連通性。其整體網路架構如下圖所示。下圖中用三種方式表示了同一種網路架構。最上層是spine交換機,中間是fabric交換機,最下面是TOR。
在Fabric架構中,存在著兩個切面,左右切面是一個個POD,前後切面被稱為Spine Plane。總共有4個Spine Plane,每個Spine Plane也是一個三級Clos架構。在Spine Plane中,leaf是Fabric交換機,Spine就是Spine交換機。每個Spine Plane中,由48個spine交換機和N個fabric交換機相連組成,N等於當前數據中心接入的POD數。Spine Plane的三級Clos架構和POD的三級Clos架構,共同構成了數據中心的五級Clos架構。因為在POD內,fabric交換機通過48個口與TOR連接,所以在Spine Plane的Clos架構中,fabric交換機的輸入輸出埠數都是48,對應上面的公式,m1=n3=48。根據Clos架構的特性,在Spine plane中,Spine交換機只要大於等於48個,不論N(POD數)等於多少,都可以保證網路架構無阻塞。當然實際中N還受限於spine交換機的埠密度。
由於每個POD有4個fabric交換機,所以總共有4個Spine Plane。完整的架構如下圖所示:
除了前面描述的POD和Spine Plane,上圖中還有黃色的Edge Plane,這是為數據中心提供南北向流量的模塊。它們與Spine交換機的連接方式,與二層的spine/leaf架構一樣。並且它們也是可以水平擴展的。
採用Clos架構的數據中心網路架構的優勢:
- 彈性可擴展。數據中心可以以POD為單位構建,隨著規模的增加,增加相應的POD即可。在Spine交換機埠數可承受的範圍內,增刪POD並不需要修改網路架構。
- 模塊化設計。不論是POD,Spine Plane還是Edge Plane,都是一個個相同的模塊,在水平擴展的時候,不需要新的設計,只是將原有的結構複製一份即可。
- 靈活。當對網路帶寬要求不高的時候,Spine交換機和Edge交換機可以適當減少。例如Facebook表示,在數據中心的初期,只提供4:1的東西向流量超佔比,這樣每個Spine Plane只需要12個Spine交換機。當需要更多帶寬時,再增加相應的Spine交換機即可。同樣的模式也適用於Edge交換機。這符合「小規模啟動,最終適用大規模」的思想。
- 硬體依賴性小。傳統三層網路架構中,大的網路規模意味著高端的核心匯聚交換機。但是在Fabric架構中,交換機都是中等交換機,例如所有的fabric交換機只需要96個埠,中等規模的交換機簡單,穩定,成本低,並且大多數網路廠商都能製造。
- 高度高可用。傳統三層網路架構中,儘管匯聚層和核心層都做了高可用,但是匯聚層的高可用由於是基於STP(Spanning Tree Protocol),並不能充分利用多個交換機的性能,並且,如果所有的匯聚層交換機(一般是兩個)都出現故障,那麼整個匯聚層POD網路就癱瘓。但是在Fabric架構中,跨POD的兩個伺服器之間有多條通道(4*48=192),除非192條通道都出現故障,否則網路能一直保持連通,下圖是一個跨POD伺服器之間多通道示意圖。
需要指出的是,這種網路架構並非Facebook獨有(是不是原創無從考證),例如Cisco的Massively Scalable Data Center (MSDC),Brocade的Optimized 5-Stage L3 Clos Topology都是類似的5級Clos架構。其中一些組成元素,各家叫法不一樣,不過原理都是類似的。
最後
技術發展的過程中,有一些技術提出,應用,流行,消逝,過了一段時間,在新的領域,被人又重新提出,應用,流行,這本身就是一種非常有意思的現象。Clos架構就是這麼一種技術,從最開始的電話交換架構,到交換機內部模型,到現在的網路架構,它在不同的領域解決著同樣的問題。
推薦閱讀:
※沒有電腦的時候,銀行櫃員是如何處理顧客的存取款業務的?
※如何在一場潑婦罵街式的網路罵戰中以一敵百七進七出大獲全勝?
※淺析TCP(上)
※有哪些具有前景的無線連接方式?
※路由帶機量,多級路由,胖瘦AP,最大帶機量 最大終端數量,DHCP是否影響帶機量?