1、數(shù)據(jù)中心網(wǎng)絡(luò)架構(gòu)挑戰(zhàn)
隨著技術(shù)的發(fā)展,,數(shù)據(jù)中心的規(guī)模越來越大,,一個數(shù)據(jù)中心的服務(wù)器容量從幾年前的幾千臺服務(wù)器發(fā)展到今天的幾萬甚至幾十萬臺。為了降低網(wǎng)絡(luò)建設(shè)和運維成本,,數(shù)據(jù)中心網(wǎng)絡(luò)的設(shè)計者們也竭力將一個網(wǎng)絡(luò)模塊的規(guī)模盡可能擴大,。同時,數(shù)據(jù)中心網(wǎng)絡(luò)內(nèi)部東西向流量也日益增加,,在一些集群業(yè)務(wù)的需求驅(qū)動下,,數(shù)據(jù)中心網(wǎng)絡(luò)設(shè)計者們甚至開始討論一個網(wǎng)絡(luò)模塊內(nèi)10000臺千兆線速服務(wù)器的可能性。
常見的數(shù)據(jù)中心網(wǎng)絡(luò)模塊的典型架構(gòu)是雙核心交換機+TOR接入交換機兩級結(jié)構(gòu),,如下圖所示:
圖1 典型數(shù)據(jù)中心網(wǎng)絡(luò)模塊架構(gòu)
那么,,在這種更大規(guī)模數(shù)據(jù)中心的發(fā)展趨勢下,這樣的數(shù)據(jù)中心網(wǎng)絡(luò)架構(gòu)(其實另外一種典型的三層結(jié)構(gòu)也一樣)會面臨什么挑戰(zhàn)那,?
首先,,我們會看到單個網(wǎng)絡(luò)模塊的規(guī)模直接受限于核心交換機設(shè)備的端口密度。比如,,對應(yīng)10000臺千兆服務(wù)器1:1超載比接入的要求,,每臺核心交換機應(yīng)該提供至少500個線速無阻塞萬兆端口,這已經(jīng)在挑戰(zhàn)商業(yè)市場主流交換機產(chǎn)品的極限了,。如果需要更大規(guī)模的網(wǎng)絡(luò)那,?貌似只能等待廠商推出更高密度的產(chǎn)品了。
其次,,隨著核心交換機設(shè)備越來越龐大,,端口數(shù)量越來越多,核心交換機的功耗也據(jù)高不下,,很輕易的達到接近10kw的量級,。這個電源的要求雖然對很多財大氣粗的互聯(lián)網(wǎng)企業(yè)自建的數(shù)據(jù)中心來說是小菜一碟,,但對于大部分企業(yè)來說,,這意味著2~3個月以上的機架電源改造周期,要知道,,在國內(nèi)大多數(shù)IDC機房,,單機架的供電能力僅3kw左右,。
于是,數(shù)據(jù)中心網(wǎng)絡(luò)設(shè)計工作者開始研究是否有其它的架構(gòu)設(shè)計方案,。
2,、CLOS網(wǎng)絡(luò)架構(gòu)登場
在討論正題之前讓我們一起看看業(yè)內(nèi)人士經(jīng)常掛在嘴邊的CLOS到底是何方神圣。CLOS是一種多級交換架構(gòu),,目的是為了在輸入輸出增長的情況下盡可能減少中間的交叉點數(shù),。典型的對稱3級CLOS架構(gòu)如下圖所示:
圖2 對稱3級CLOS交換網(wǎng)絡(luò)
事實上CLOS架構(gòu)并不是什么新鮮的東西,早在1953年,,貝爾實驗室Charles Clos博士在《無阻塞交換網(wǎng)絡(luò)研究》論文中提出這種架構(gòu),,后被廣泛應(yīng)用于TDM網(wǎng)絡(luò)(多半是程控交換機),為紀念這一重大成果,,便以他的名字CLOS命名這一架構(gòu),。
現(xiàn)在我們再回到數(shù)據(jù)中心網(wǎng)絡(luò)設(shè)計的話題。實際上,,前面提到的嚴重依賴廠商產(chǎn)品端口密度的架構(gòu)設(shè)計方法讓很多設(shè)計者們?nèi)珲喸诤?,讓他們找到了挑?zhàn)的興奮點。猶如Linux 社區(qū)的開源之風(fēng)一般,,他們更希望的是擺脫廠商產(chǎn)品限制,,找到一種架構(gòu)設(shè)計方法,最好是可以使用廉價,、普通的小盒子設(shè)備來搭建一個規(guī)??梢苑浅}嫶蟮木W(wǎng)絡(luò)。
在美國加利福尼亞大學(xué)計算機科學(xué)與工程系以Mohammad Al-Fares為代表的幾位教授的研究下,,這種思路達到了登峰造極的程度,。
在他們于2008年發(fā)表于SIGCOMM的論文《A Scalable, Commodity Data Center Network Architecture》中,明確提出了一種三級的,,被稱之為胖樹(Fattree)的CLOS網(wǎng)絡(luò)架構(gòu),。利用這種架構(gòu)方法,可以采用一種固定數(shù)量端口的盒式交換機搭建一個大規(guī)模服務(wù)器接入的網(wǎng)絡(luò),。具體的說,,當(dāng)采用端口數(shù)為k的交換機時,核心交換機數(shù)量為(k/2)2個,,共有k個Pod,,每個Pod各有(k/2)個匯聚和接入交換機,可接入的服務(wù)器數(shù)量為k3/4,。并且這種架構(gòu)可以保證接入,、匯聚、核心的總帶寬一致,,保證服務(wù)器接入帶寬1:1的超載比,。下圖所示的是該架構(gòu)當(dāng)k=4的示例,。
圖3 k=4時的胖樹CLOS網(wǎng)絡(luò)
顯然,當(dāng)k=48,,即采用48端口千兆盒式交換機時,,這個架構(gòu)的核心交換機數(shù)量為576個,一共有48個Pod,,每個Pod有24臺匯聚交換機和24臺接入交換機,,共2880個交換機,可以支持到27648臺千兆服務(wù)器的1:1超載比接入,。設(shè)備的數(shù)量雖然看上去很驚人,,但毫無疑問的確是一種可擴展的架構(gòu),而且似乎對設(shè)備沒有特別的要求,。
更令人鼓舞的是,,這幾位教授除了紙上談兵外,還非常注重實戰(zhàn),,論文中詳細的對IP地址劃分,、路由策略、流量調(diào)度算法等進行了詳細設(shè)計,,也和傳統(tǒng)的設(shè)計方法進行了成本和功耗方面的對比,。更匪夷所思的是,大概這幾位老大也意識到交換機數(shù)量龐大帶來的設(shè)備擺放和互聯(lián)線纜問題,,甚至還給出了設(shè)備打包和機架安排方案,。一言以蔽之,只要你嚴格按照這篇論文進行設(shè)計,,一個幾萬臺1:1帶寬超載比的千兆服務(wù)器數(shù)據(jù)中心網(wǎng)絡(luò)就呼之欲出,,幾乎所有重要的問題都被周密的考慮到了。
另外,,也可以將上述方案做一些變化,,比如,將匯聚和核心設(shè)備換成全萬兆端口的交換機,,如現(xiàn)在流行的64端口萬兆交換機,,接入換成萬兆上聯(lián)的交換機,如現(xiàn)在流行的4萬兆+48千兆的交換機,,這樣同樣規(guī)模的網(wǎng)絡(luò)情況下,,設(shè)備和互聯(lián)鏈路的數(shù)量可以大大減少。更具體的設(shè)計情況大家可以照貓畫虎自己研究一下:)
3,、迷霧重重
到這里,,似乎問題都解決了,數(shù)據(jù)中心網(wǎng)絡(luò)的設(shè)計工作者們多了一個選擇,對業(yè)界主流廠商設(shè)備端口密度也不那么饑渴了,。
喜愛鉆研的設(shè)計者很快發(fā)現(xiàn),其實CLOS網(wǎng)絡(luò)架構(gòu)是采用一個等價于三級CLOS的部分替代了傳統(tǒng)設(shè)計的兩臺核心設(shè)備,,如下圖所示:
圖4 傳統(tǒng)網(wǎng)絡(luò)架構(gòu)和CLOS網(wǎng)絡(luò)架構(gòu)
或者進一步說,,是采用一個三級CLOS的部分替代一臺核心設(shè)備。為什么說是一個三級CLOS的部分,,因為匯聚和核心都是雙向通信,,等價于一個標(biāo)準的三級CLOS折疊以后把輸入、輸出單元合并的情況,。
主流廠商的核心設(shè)備被一堆廉價的小盒子替代了,,這是一個令人振奮的消息,同時令人迷惑,。
首先是無阻塞的問題,。大家都知道網(wǎng)絡(luò)核心無阻塞的重要性。商業(yè)市場的主流核心設(shè)備通常都較為復(fù)雜,,為了實現(xiàn)無阻塞,,交換矩陣都有一定的加速比,還采用VoQ等技術(shù),,還要有調(diào)度仲裁或自路由的設(shè)計,。那么,一堆廉價的小盒子如何實現(xiàn)無阻塞那,?
其次,,緊接著的一個很明顯的問題,CLOS網(wǎng)絡(luò)架構(gòu)上下行的帶寬一致,,是否就可以實現(xiàn)無阻塞,?
還有,交換機的輸入輸出緩存設(shè)計一直都是各主流設(shè)備廠家各執(zhí)一詞的,,在CLOS網(wǎng)絡(luò)架構(gòu)中這部分如何體現(xiàn)的,?
再有,CLOS網(wǎng)絡(luò)架構(gòu)的多條等價路徑如何做到負載均衡,?HASH算法是基于流的,,不同流的差異無法解決;數(shù)據(jù)包是變長的,,即便輪詢也難以均衡,。要知道,核心交換機通常內(nèi)部都會用定長的信元把數(shù)據(jù)包重新封裝以便于盡可能的均衡分布,。那么CLOS網(wǎng)絡(luò)架構(gòu)是否需要一個集中的控制系統(tǒng)做流量調(diào)度,?
繼續(xù)思考下去,就可能會發(fā)現(xiàn)更多不容易回答的問題。
似乎CLOS網(wǎng)絡(luò)架構(gòu)也并不是那么簡單了,。
4,、如何實現(xiàn)無阻塞
首先我們看看什么是有阻塞無阻塞。
·內(nèi)部阻塞(Blocking),。若出,、入線空閑,但因交換網(wǎng)絡(luò)級間鏈路被占用而無法接通的現(xiàn)象,,稱為多級交換網(wǎng)絡(luò)的內(nèi)部阻塞,。
·無阻塞(Non-blocking)。不管網(wǎng)絡(luò)處于何種狀態(tài),,任何時刻都可以在交換網(wǎng)絡(luò)中建立一個連接,,只要這個連接的起點、終點是空閑的,,而不會影響網(wǎng)絡(luò)中已建立起來的連接,。
·可重排無阻塞(Re-arrangeable non-blocking)。不管網(wǎng)絡(luò)處于何種狀態(tài),,任何時刻都可以在交換網(wǎng)絡(luò)中直接或?qū)σ延械倪B接重選路由來建立一個連接,,只要這個連接的起點、終點是空閑的,,而不會影響網(wǎng)絡(luò)中已建立起來的連接,。
·廣義無阻塞(Scalable non-blocking)。指一個給定的網(wǎng)絡(luò)存在著固有的阻塞可能,,但又可能存在著一種精巧的選路方法,,使得所有的阻塞均可避免,而不必重新安排網(wǎng)絡(luò)中已建立起來的連接,。
那么CLOS網(wǎng)絡(luò)架構(gòu)的阻塞情況如何那,?根據(jù)數(shù)據(jù)中心的網(wǎng)絡(luò)架構(gòu),我們研究之前圖2中的對稱3級結(jié)構(gòu)的CLOS網(wǎng)絡(luò)的情況就可以了,。
這種對稱3級CLOS網(wǎng)絡(luò),,第一級的入線和第三級出線均為n,第二級的單元數(shù)量為m,。為了確保鏈路無阻塞,,完成a到b的信息交換,至少還應(yīng)該存在一條空閑鏈路,,即中間級交換單元要有(n-1) (n-1) 1 = 2n-1個,,因此無阻塞的條件為:m>=2n-1。如下圖所示:
圖5 對稱3級CLOS網(wǎng)絡(luò)無阻塞條件為m>=2n-1
另外,,Slepian-Duguid定理也證明了,,當(dāng)m=n的時候,,對稱3級CLOS網(wǎng)絡(luò)為可重排無阻塞??芍嘏艧o阻塞意味著要對交換網(wǎng)絡(luò)做端到端的調(diào)度,。
這也就直接證明了CLOS網(wǎng)絡(luò)中無阻塞的設(shè)計,匯聚到核心的帶寬應(yīng)該至少是接入到匯聚的帶寬的(2n-1)/n=2-1/n倍,,接近2倍,。
實際上,加利福尼亞大學(xué)那幾位教授也在他們的論文中明確的指出了設(shè)計采用帶寬超載比1:1的胖樹CLOS架構(gòu)是可重排無阻塞的,,需要采用合適的調(diào)度算法盡可能滿足可重排條件。
那是不是滿足m>=2n-1的條件,,就可以高枕無憂,,肯定可以避免端到端的阻塞了那?當(dāng)然不是,,我們可以看到這時候無阻塞的模型前提是入向,、出向信息均勻分布,如果分布不均勻就可能導(dǎo)致入向或出向阻塞,。這時候我們就需要考慮入向,、出向緩存以及加速比的情況。
5,、玄妙的加速比Speedup
加速比的概念很直接,,它是一種降低輸入-輸出阻塞的方法。如果一個交換網(wǎng)絡(luò)可以在一個信元時間內(nèi)將一個輸入端口的N個信元傳輸至輸出,,則這個交換網(wǎng)絡(luò)的加速比S=N,。通俗的說,加速比是交換網(wǎng)絡(luò)在“多打一”的情況下的處理能力,。加速比越大,,交換網(wǎng)絡(luò)的中間單元數(shù)越多,成本越高,。
我們很容易就可以算出,,前面我們研究的交換網(wǎng)絡(luò),對稱3級CLOS架構(gòu),,在無阻塞條件m>=2n-1時,,加速比S=(2n-1)/n=2-1/n,接近于2,。而在可重排無阻塞條件m=n時,,加速比為1。
在加速比為1時,,為了避免入向的阻塞即所謂的“頭端阻塞”,,我們需要在交換網(wǎng)絡(luò)的入方向有足夠大的緩存,,此時端到端的延遲將變得不可控,或者可能會非常大,。如下圖所示:
圖6 入方向緩存的交換模型,,S=1
隨著加速比的增加,入方向的阻塞可能性越來越小,,但出方向的阻塞可能性卻越來越大,,因此,在加速比比1大的時候,,我們需要在交換網(wǎng)絡(luò)的出方向有足夠大的緩存,。當(dāng)S=N(N為入方向端口總數(shù))時,入方向無需緩存,,僅需要出方向的緩存,,此時,交換網(wǎng)絡(luò)的成本最為昂貴,,但延遲最小,。如下圖所示:
圖7 出方向緩存的交換模型,S=N
因此,,加速比讓交換網(wǎng)絡(luò)設(shè)計者們既愛又恨,,但他們把愛和恨都轉(zhuǎn)化成了一個問題,那就是,,有沒有可能進行巧妙的設(shè)計,,在加速比1<S<<N的情況下,獲得接近S=N的性能和接近S=1的成本,。
答案是有可能的,。經(jīng)過努力,業(yè)界人士得到的結(jié)論是,,2<S<5的范圍是比較合理的,,通過匹配適當(dāng)?shù)娜胂颉⒊鱿蚓彺?,采用合適的調(diào)度算法,,可以獲得性能和成本較為均衡的一個交換網(wǎng)絡(luò)。
據(jù)小道消息,,業(yè)界部分產(chǎn)品的交換矩陣的加速比如下(無官方確認,,僅供參考):
Cisco
· Cat6500:4
· Nexus7000:3.x
· CRS-1: 2.5
H3C
· S12500: 1.8
Juniper
· T /MX Series: S=2.25
好了,繞了一大圈,,我們再回過來看看對于我們的CLOS網(wǎng)絡(luò)架構(gòu),,加速比如何選擇比較合適。
還是先看加利福尼亞大學(xué)那幾位教授的設(shè)計方案,。這個方案在加速比為1的情況下,,采用了全局集中的流量調(diào)度系統(tǒng)FlowScheduler直接控制匯聚和核心設(shè)備的路徑選擇,,以獲得較好的流量分布,同時在每個接入交換機都內(nèi)置FlowReporter收集流信息,。即便如此,,在隨機流的測試中網(wǎng)絡(luò)的帶寬利用率也不超過75%。顯然這個方案并不完美,,并且難以在普通商業(yè)產(chǎn)品上實施,,對于大多數(shù)希望采用CLOS架構(gòu)的設(shè)計者來說,這是一個難以實現(xiàn)的方案,。也許隨著OpenFlow等SDN技術(shù)的發(fā)展,,這方面可以取得更大進展。Juniper的QFabric從某種程度來看,,也類似一個有集中控制和調(diào)度的CLOS網(wǎng)絡(luò)架構(gòu),,目前很多設(shè)計細節(jié)還未披露,實際使用的效果如何也有待大規(guī)模商用的考驗,。
按照之前的分析,,如果沒有流量調(diào)度系統(tǒng),,在實際的情況下是無法避免入向或出向的阻塞的,,只能盡可能降低阻塞的可能性??紤]到多條等價路徑負載均衡的不完美,,以及廉價盒式設(shè)備具備少許的輸入輸出緩存,但無法全局統(tǒng)籌調(diào)配使用,,顯然一定的加速比是需要的,。兼顧成本因素,選擇加速比為2~3也許是一個較為理想的選擇,。準確的加速比選擇,,需要進一步的實驗室測試和驗證,和設(shè)備選型也有關(guān),。
6,、總結(jié)
在數(shù)據(jù)中心網(wǎng)絡(luò)中,可以采用商用市場普通盒式交換機搭建胖樹CLOS網(wǎng)絡(luò)架構(gòu),,實現(xiàn)可擴展,、不依賴特定廠商產(chǎn)品的網(wǎng)絡(luò)架構(gòu)。但如果沒有全局集中的流量調(diào)度和仲裁機制,,也沒有全局的入向和出向緩存供調(diào)配使用,,將難以實現(xiàn)目前商業(yè)市場核心設(shè)備的無阻塞轉(zhuǎn)發(fā)能力,在網(wǎng)絡(luò)發(fā)生阻塞時對應(yīng)用的性能會產(chǎn)生一定的影響,。通過適當(dāng)?shù)募铀俦冗x擇,,如建議的2~3,,可以減少阻塞。CLOS網(wǎng)絡(luò)架構(gòu)的設(shè)計需要進一步的研究,、測試和驗證,,在將來通過SDN來共同實現(xiàn)可能更為理想。
|