1. 程式人生 > >關於CLOS架構的舉例 網絡級 設備級 FATTREE網絡 網絡級CLOS 以及CLOS涉及的調度算法RR

關於CLOS架構的舉例 網絡級 設備級 FATTREE網絡 網絡級CLOS 以及CLOS涉及的調度算法RR

分享 這一 attr img 方式 適應 進行 想象 基本

1、概述

CLOS來自於傳統電路交換概念,這個概念年代太久遠,在當前數據通信網絡中,內涵有所變化。本文主要談的是實際上賦予的與原來略微有所差異的內涵。

CLOS架構本身概念比較寬泛,有設備級的CLOS,也有網絡級的CLOS。

網絡級CLOS

這個概念實際上與當前矽谷流行的FAT TREE網絡結構很相似,甚至可以認為是一回事,主要是通過組網來形成非常大規模的網絡結構,本質是希望無阻塞。

網絡級CLOS,一般來說是非嚴格CLOS的(關於嚴格與非嚴格,後面會進一步講述)。

設備級CLOS

設備級,又分為嚴格CLOS和非嚴格CLOS。

CLOS的無阻塞也有不同,如名義上的無阻塞(非嚴格CLOS算是此類)和完全無阻塞(嚴格CLOS算是此類)。在以往的交流中,發現搞測試的人對於這個概念很容易接受,因為對於每種情況大家立馬能夠想象出或構造出理論上的測試方法來證明。

2、FAT TREE網絡與網絡級CLOS

要說FAT TREE概念,可以先從Infiniband[註釋1]交換機的架構入手。Infiniband交換機動輒有288個端口(端口速率10G/20G/40G),其芯片就是通過一種FAT TREE的方式來搭建高密端口交換機的。


註釋1:InfiniBand架構是一種支持多並發鏈接的“轉換線纜”技術,在這種技術中,每種鏈接都可以達到2.5 Gbps的運行速度。這種架構在一個鏈接的時候速度是500 MB/秒,四個鏈接的時候速度是2 GB/秒,12個鏈接的時候速度可以達到6 GB /秒。

InfiniBand技術主要是針對服務器端的連接問題的。因此,將會被應用於服務器與服務器(比如復制,分布式工作等),服務器和存儲設備(比如SAN和直接存儲附件)以及服務器和網絡之間(比如LAN, WANs和the Internet)的通信。

舉個例子,一個Infiniband芯片如果有24個端口( 10G/20G/40G),如圖1所示。如何構造一個288端口(12槽位,每槽位24端口)的機架式交換機呢?

技術分享圖片

圖1 24端口Infiniband芯片示意

如圖2所示,這個交換機內部采用36片同款芯片,以一種FAT TREE(中文稱為胖樹)的結構實現了高密的高速端口。曾經有家以做高密高速萬兆為基本產品的芯片廠家,提出過類似的以太網交換機方案 (當時還不是很理解這個模型,只是覺得思路很好)。

技術分享圖片

圖2 FAT TREE的Infiniband交換機內部架構

在很多高性能計算環境中,Infiniband交換機之間也有這樣組網的,並且經常采用同一款交換機來組網,網絡拓撲和原理同圖2(Infiniband在不同帶寬之間轉換,會引起時延增大,並影響高性能計算效率)。

在2010年初的時候,曾與一位來自Cisco的同行A討論網絡設計。A提出了CLOS網絡結構的概念。

技術分享圖片

3CLOS”網絡結構

如圖3所示一個5000個千兆的服務器集群網絡,用4臺12500+125臺5800可構成一個5000個千兆的帶寬上無阻塞網絡。5800使用40個千兆接服務器,4個萬兆分別上聯不同的12500。當時12500還不能支持4臺IRF,所以需要全網使能OSPF路由。現在則無所謂了,4臺12500 IRF後,全網可實現帶寬上無阻塞的二層網絡。註意,這裏使用的是“帶寬上無阻塞”,A要求的CLOS是任意服務器之間通信沒有帶寬差異,都是1G。但是,他還給網絡提了要求,就是接入上行的4條鏈路以round robin[註釋2]輪轉方式進行流量負載分擔,並且要求服務器吞吐的報文字節等長,均為1500字節,以及服務器進行報文亂序的糾錯。所有這些要素都加上,這個特定網絡就是完全無阻塞CLOS的了。


註釋2:輪轉調度(Round Robin Scheduling)算法就是以輪轉的方式依次將請求調度不同的服務器,即每次調度執行i = (i + 1) mod n,並選出第i臺服務器。算法的優點是其簡潔性,它無需記錄當前所有連接的狀態,所以它是一種無狀態調度。

因為我們的12500當時就是CLOS概念,所以我們也並不好奇這個網絡需求,只是基本所有的接入交換機都無法做到round robin的負載分擔。

考考各位,如果增加一層匯聚層,使用24個萬兆的盒子,如何來構建更大規模的帶寬無阻塞網絡(1萬-2萬千兆端口)?(見[註釋3])


註釋3:答案簡單,增加一層匯聚的萬兆box,一半端口下掛接入交換機,一半端口上行接核心交換機(每個上行端口接一臺核心)

去年底HP和我們討論FAT TREE的網絡結構,使用一個64端口的萬兆設備來構建2000個萬兆的無阻塞網絡方案,使用的實際上是類似圖2的方案,只是將堆積的芯片換成盒式交換機。

現在來說這個網絡會有什麽不足,為什麽不是嚴格CLOS?

CLOS的核心精神是完全無阻塞或嚴格無阻塞,這樣的網絡結構,無論是“CLOS”結構還是FAT TREE結構,只是在帶寬上看起來無阻塞,如接入層上下帶寬相等,但是數據流如何分布到不同的上行鏈路呢?

如果是采用round robin方式,因為報文大小的差異,會使得不同鏈路實際上流量不均,而且是可構造測試例證明的;

如果是HASH算法,不論是鏈路聚合還是等價路由,也不可能完全均分,比如某個單條流就只能HASH到一條路徑,如果存在單條大流量,如千兆TCP單流,則會使得上行鏈路流量不均。

所以,當前技術下,網絡的CLOS結構並非嚴格CLOS。

3、設備級CLOS

設備級CLOS也是分嚴格無阻塞CLOS和非嚴格CLOS

S12500的具體體系架構,IP領航相關文章已經進行過介紹,這裏不再贅述。

S12500除了CLOS架構,還具備cell級的交換,也就是報文在交換機內是經過切片、等長交換的,而且交換機內是每個端口通過credit模式[註釋4]通信達到內部lossless,因此12500是嚴格CLOS、完全無阻塞的。(往往主要關註點在CLOS架構、超大緩存上,而忽略了這樣一些關鍵細節)。並且,這也是經過了極其嚴格的Tolly測試的。

註釋4:參考http://blog.sina.com.cn/s/blog_61bd83dc0100yir3.html

技術分享圖片4 12500的多級架構

再來看一個問題:有網友問,關於CLOS架構,實際應用中就是一個主控板加獨立交換路由業務板嗎?

從大的範圍來看,CLOS是多級、多路徑交換的一種方式,其實與主控板、獨立交換等沒有直接聯系,只是在設計這樣一個CLOS系統下,將主控與交換分離,更有助於提升系統的可靠性,以及架構將來的擴展性。因此在這個層面上來看,實際應用中確實是主控板+獨立的交換路由業務板。

但只有主控與交換分離還是遠遠不夠的,還要看是否能夠達到完全無阻塞交換,流量如何上多個交換網,內部如何實現流量調度(內部lossless)以及VOQ能力等。

此外,使用多級crossbar的交換網,也能夠搭出一個CLOS架構,但這不是嚴格CLOS,因為crossbar是逐流進行交換的。例如,Cisco明確指出N7000是crossbar架構(參見Cisco Live2010 N7000的架構材料,2011刪掉了這一頁),但是其線卡能力很強,單播報文通過round robin方式上交換網,組播通過HASH方式上交換網,可以看到交換網crossbar每端口帶寬23G,總的來說每個槽位分配的帶寬是非常高的,所以阻塞可能性非常之小,同時使用多包組合的superframing技術來提升轉發效率,行為上與12500很接近了。

設備級的CLOS不同廠家實現方式不一樣,H3C的實現是其中一種方式。

因此我們說某產品不是CLOS,正確的說法應該是“非嚴格CLOS”或“非嚴格完全無阻塞”。

實際上,CLOS、嚴格CLOS,或稱無阻塞、完全無阻塞,也都是比較相對的概念,只是強調產品的架構適應能力有差異而已,無需在概念上過於區分。對於特定的應用場景,特別是大流量重負載網絡環境,嚴格CLOS架構的設備業務承載能力顯然要強不少。

關於CLOS架構的舉例 網絡級 設備級 FATTREE網絡 網絡級CLOS 以及CLOS涉及的調度算法RR