在傳統的大型數據中心,網絡通常是三層結構。通常被稱為:分級的網際網路模型(hierarchical inter-networking model)。這個模型包含了以下三層:
Access Layer(接入層):有時也稱為Edge Layer。接入交換機通常位於機架頂部,所以它們也被稱為TOR(Top of Rack)交換機,它們物理連接伺服器。
Aggregation Layer(匯聚層):有時候也稱為Distribution Layer。匯聚交換機連接Access交換機,同時提供其他的服務,例如防火牆,SSL offload,入侵檢測,網絡分析等。
Core Layer(核心層):核心交換機為進出數據中心的包提供高速的轉發,為多個匯聚層提供連接性,核心交換機為通常為整個網絡提供一個彈性的L3路由網絡。
一個三層網絡架構示意圖如下所示:
通常情況下,匯聚交換機是L2和L3網絡的分界點,匯聚交換機以下的是L2網絡,以上是L3網絡。每組匯聚交換機管理一個POD(Point Of Delivery),每個POD內都是獨立的VLAN網絡。伺服器在POD內遷移不必修改IP位址和默認網關,因為一個POD對應一個L2廣播域。匯聚交換機和接入交換機之間通常使用生成樹協議,STP(Spanning Tree Protocol)。STP使得對於一個VLAN網絡只有一個匯聚層交換機可用,這就意味著大量二層交換機的埠被浪費。
大二層網絡由於傳統的數據中心伺服器利用率太低,平均只有10%~15%,浪費了大量的電力能源和機房資源。所以出現了伺服器虛擬化技術,為了使得計算資源可以任意分配,需要一個大二層的網絡架構。即整個數據中心網絡都是一個L2廣播域,(相當於取消了匯聚層交換機)。這樣伺服器可以在任意地點創建,遷移,而不需要對IP位址或者默認網關做修改。大二層網絡架構,L2/L3分界在核心交換機,核心交換機以下,也就是整個數據中心,是L2網絡(當然,可以包含多個VLAN,VLAN之間通過核心交換機做路由進行連通)。大二層的網絡架構如下圖所示:
大二層網絡架構雖然使得虛機網絡能夠靈活創建,但是帶來的問題也是明顯的。共享的L2廣播域帶來的廣播風暴隨著網絡規模的增加而明顯增加,最終將影響正常的網絡流量,而且拓撲節點增多後,生成樹協議不容易收斂
CLOS架構CLOS架構,誕生於1952年,源自一位叫Charles Clos的人提出的Cross Bar結構,這個架構主要描述了一種多級電路交換網絡的結構。Clos最大的優點就是對Crossbar結構的改進,通過Clos架構可以提供無阻塞的網絡。這個結構有點像《三體》裡周文王的黃豆算盤計算機,或者FPGA的Logic Unit。
交換機內部連接輸入輸出埠的是Switch Fabric。最簡單的Switch Fabric架構是Crossbar模型,這是一個開關矩陣,每一個Crosspoint(交點)都是一個開關,交換機通過控制開關來完成輸入到特定輸出的轉發。一個Crossbar模型如下所示:
展開討論之前,先說明一個簡單的概念,如果N Inputs, N Outputs想實現無阻塞轉發,那麼交叉拓撲結構將會是一個全聯接的Full Mesh結構,也就是N*N個交叉點,而且一對輸入輸出之間,只有一條可行路徑,實際網絡這麼設計是非常不靈活的。
怎麼辦呢?
後來有人搞出來了CLOS架構,其實就是在Input Layer 和Output Layer之間加了一個Switch Layer作為中繼,這一層可以有好幾臺交換機。最後需要的交叉節點數就不是N^2了,而變成了下圖的公式。
CLOS架構被廣泛應用在現代的數據中心,因為它提供了數據中心的水平擴展能力和大規模數據中心所需要的穩定和簡單。下圖就是一個最基本的CLOS單元,Spine和Leaf交換機共同組成數據中心網絡,其中Leaf交換機作為TOR交換機,連接伺服器;Spine交換機,為Leaf交換機提供網絡連接。
我們也可以增加CLOS架構的層級數。上面圖中都是3-stages CLOS架構,雖然只有兩層交換機,但是因為對應CLOS的理論,是一個對摺了的架構,所以被稱為3-stages。
甚至在現有的spine-leaf基礎上,再增加一層super-spine交換機,就可以構成一個5-stages CLOS架構。如下圖所示,增加了一層super-spine交換機,數據中心規模也水平擴大了一倍,可謂無限之套娃。
Facebook公司數據中心的Fabric架構就採用了CLOS,這樣用一堆二三線廠家的低端交換機和路由器,就可以得到主流廠家核心交換機的效果。但是因為Fabric架構有更多的交換機互聯鏈路,所以需要更多的光模塊,以及更多的機架。但是隨著100G光模塊價格的下降,數據中心向400G演進,光模塊的成本越來越不是問題。