樊自甫,伍春玲,王金紅
(重慶郵電大學(xué)電子商務(wù)與現(xiàn)代物流重點實驗室 重慶 400065)
云計算、大數(shù)據(jù)等應(yīng)用促使互聯(lián)網(wǎng)上的應(yīng)用、計算和存儲資源不斷地向數(shù)據(jù)中心遷移[1],使數(shù)據(jù)中心成為信息交互的中心,而數(shù)據(jù)中心網(wǎng)絡(luò)(data center network,DCN)是一個連接了數(shù)萬級、十萬級甚至百萬級的大規(guī)模服務(wù)器群,作為分布式存儲和計算的橋梁,它的性能直接影響到云計算、大數(shù)據(jù)等業(yè)務(wù)的發(fā)展。為了滿足數(shù)據(jù)中心網(wǎng)絡(luò)性能的新需求,對新型數(shù)據(jù)中心網(wǎng)絡(luò)體系架構(gòu)的研究成為了當(dāng)前研究的熱點。
數(shù)據(jù)中心網(wǎng)絡(luò)的新需求促進了軟件定義網(wǎng)絡(luò)(software defined networking,SDN)技術(shù)的迅速發(fā)展,在2012年Gartner發(fā)布的未來5年全球IT十大關(guān)鍵技術(shù)中,SDN位列第二。SDN的核心在于數(shù)據(jù)轉(zhuǎn)發(fā)與路由控制的分離,相較于傳統(tǒng)網(wǎng)絡(luò),SDN通過集中控制器取代了原來的路由協(xié)議自協(xié)商方式,極大地提升了網(wǎng)絡(luò)的管控效率和開放程度。在現(xiàn)代具有大規(guī)模服務(wù)器和帶寬密集型數(shù)據(jù)中心網(wǎng)絡(luò)中,SDN技術(shù)可以提供大規(guī)模、高拓展性、靈活資源調(diào)度和高帶寬等網(wǎng)絡(luò)需求,表現(xiàn)出了天然適用于新型數(shù)據(jù)中心網(wǎng)絡(luò)的特性。
在每個網(wǎng)絡(luò)中,路由至關(guān)重要,對網(wǎng)絡(luò)性能具有重要的影響,并隨著新需求和新技術(shù)的產(chǎn)生而不斷發(fā)展。在采用了SDN技術(shù)的數(shù)據(jù)中心網(wǎng)絡(luò)中,新的體系架構(gòu)和更高的網(wǎng)絡(luò)服務(wù)質(zhì)量需求給路由算法性能帶來許多新的挑戰(zhàn),需要結(jié)合現(xiàn)代數(shù)據(jù)中心的網(wǎng)絡(luò)特征和SDN技術(shù)特點加以改進,以適應(yīng)多路徑、大規(guī)模和節(jié)能等需求。本文以此為研究出發(fā)點,通過對現(xiàn)代數(shù)據(jù)中心網(wǎng)絡(luò)和SDN技術(shù)特征的分析,提出了SDN在數(shù)據(jù)中心網(wǎng)絡(luò)中的應(yīng)用架構(gòu),并對面向數(shù)據(jù)中心網(wǎng)絡(luò)的SDN路由性能需求進行了深入剖析,以便對未來在構(gòu)建基于SDN的數(shù)據(jù)中心網(wǎng)絡(luò)時如何設(shè)計路由提供借鑒。
數(shù)據(jù)中心網(wǎng)絡(luò)是數(shù)據(jù)中心內(nèi)部通過高速鏈路和交換機連接大量服務(wù)器的網(wǎng)絡(luò)[2]。在傳統(tǒng)數(shù)據(jù)中心網(wǎng)絡(luò)中,普遍采用三層樹型結(jié)構(gòu),即接入層交換機、匯聚層交換機和核心層交換機的三層交換機互聯(lián)。在很長一段時間內(nèi),傳統(tǒng)網(wǎng)絡(luò)架構(gòu)支撐了各種類型的數(shù)據(jù)中心網(wǎng)絡(luò),但其層次結(jié)構(gòu)使得網(wǎng)絡(luò)規(guī)模及性能受限于根節(jié)點,在很大程度上影響了網(wǎng)絡(luò)的拓展性。隨著虛擬化、云計算及相關(guān)新型業(yè)務(wù)的迅速發(fā)展,互聯(lián)網(wǎng)上的應(yīng)用、計算和存儲資源不斷向數(shù)據(jù)中心遷移,促使數(shù)據(jù)中心規(guī)模迅速膨脹和計算模式發(fā)生深刻變化[3],僅僅使用傳統(tǒng)的數(shù)據(jù)中心網(wǎng)絡(luò)技術(shù)已經(jīng)越來越無法適應(yīng)新業(yè)務(wù)發(fā)展的需要,從而促進了對新型數(shù)據(jù)中心網(wǎng)絡(luò)體系架構(gòu)的探索,使其成為近來學(xué)術(shù)界和工業(yè)界關(guān)注的熱點。面向云計算等新型計算模式的數(shù)據(jù)中心呈現(xiàn)出許多新的特點見表1。
SDN是一種新型的基于軟件的網(wǎng)絡(luò)架構(gòu)及技術(shù),其核心在于控制平面與數(shù)據(jù)平面相分離、靈活的編程接口開放[8]。SDN的典型架構(gòu)共分3層,如圖1所示,自上而下劃分為:應(yīng)用層、控制層和基礎(chǔ)設(shè)施層。其中,基礎(chǔ)設(shè)施層僅負責(zé)單純的數(shù)據(jù)高速轉(zhuǎn)發(fā)和網(wǎng)絡(luò)狀態(tài)收集,不具備任何智能性,只需關(guān)注硬件性能;中間控制層集中控制所有網(wǎng)元,根據(jù)應(yīng)用需求計算數(shù)據(jù)轉(zhuǎn)發(fā)路徑,并將計算結(jié)果下發(fā)給基礎(chǔ)設(shè)施層;控制器向上對應(yīng)用層提供可編程接口,通過軟件級的更新,新的協(xié)議和應(yīng)用在控制器上可快速部署。SDN大大降低了網(wǎng)絡(luò)的復(fù)雜度,使其具有較大的靈活性,可以有效解決當(dāng)前網(wǎng)絡(luò)所面臨的許多問題。
OpenFlow是當(dāng)前SDN控制器與轉(zhuǎn)發(fā)設(shè)備的主流通信接口協(xié)議,包含了OpenFlow controller(控制器)和OpenFlow switch(交換機)兩個網(wǎng)絡(luò)元素[9]。如圖2所示,一個OpenFlow交換機內(nèi)包含一至多張流表(flow table,即轉(zhuǎn)發(fā)表),流表由流表項(flow entry)組成,每一流表項對應(yīng)網(wǎng)絡(luò)中傳輸?shù)囊粭l流,流表項決定了屬于該條流的數(shù)據(jù)分組如何轉(zhuǎn)發(fā)或處理。
在一條流的第一個數(shù)據(jù)分組剛進入SDN時,交換機將該數(shù)據(jù)分組或數(shù)據(jù)分組頭上傳到控制器,控制器通過路由計算及策略管理將該數(shù)據(jù)分組所屬的流的處理方法下發(fā)給交換機存儲在流表內(nèi)。數(shù)據(jù)分組在交換機內(nèi)的處理過程為:數(shù)據(jù)分組到達交換機,首先進行分組頭內(nèi)容提取,然后與流表項匹配域進行匹配,若匹配到合適的流表項,則采用與該流表項相關(guān)聯(lián)的指令進行處理;若沒有匹配到相應(yīng)的流表項,數(shù)據(jù)分組按默認流表項(table miss)進行處理,丟棄、轉(zhuǎn)發(fā)到下一級流表或上傳到控制器處理。
表1 新型數(shù)據(jù)中心的特點
圖1 傳統(tǒng)網(wǎng)絡(luò)架構(gòu)和SDN網(wǎng)絡(luò)架構(gòu)
由于SDN集中控制的良好拓展性和靈活性天然符合數(shù)據(jù)中心網(wǎng)絡(luò)發(fā)展的需求,在數(shù)據(jù)中心網(wǎng)絡(luò)采用SDN技術(shù)的研究得到了廣泛關(guān)注,而迫切需要改革的數(shù)據(jù)中心網(wǎng)絡(luò)也成為了SDN的首要應(yīng)用場景,推動SDN的發(fā)展。2010年1月,Google開始采用SDN和OpenFlow;2012年 初,Google全部數(shù)據(jù)中心骨干連接都已采用這種架構(gòu),網(wǎng)絡(luò)利用率提升到95%,其他企業(yè)如Facebook、德國電信和NTT等企業(yè)和電信運營商也已經(jīng)開始將SDN部署在數(shù)據(jù)中心。圖2所示是采用SDN技術(shù)的數(shù)據(jù)中心網(wǎng)絡(luò)可能的應(yīng)用框架,網(wǎng)絡(luò)主要由基礎(chǔ)設(shè)施層、局部控制器和全局控制器構(gòu)成:基礎(chǔ)設(shè)施層由局部控制器進行集中管理,可適應(yīng)任意拓撲結(jié)構(gòu),這里采用數(shù)據(jù)中心網(wǎng)絡(luò)中較為流行的fat-tree[10]結(jié)構(gòu);局部控制器除了管理本域內(nèi)的交換機外,還需要將本域網(wǎng)絡(luò)狀態(tài)信息上傳到全局控制器;全局控制器通過局部控制器對全網(wǎng)進行狀態(tài)收集和管理,提供全網(wǎng)的網(wǎng)絡(luò)狀態(tài)信息視圖。框架中的全局控制器不是必要的,局部控制器也可通過東西接口直接與其他控制域連接,進行信息交換。
圖2 基于SDN技術(shù)的數(shù)據(jù)中心網(wǎng)絡(luò)應(yīng)用框架
基于SDN技術(shù)的數(shù)據(jù)中心網(wǎng)絡(luò)有許多的優(yōu)勢。首先,SDN可管可控,網(wǎng)絡(luò)運營者可及時獲取全網(wǎng)狀態(tài)信息,包括拓撲、鏈路、網(wǎng)絡(luò)擁塞、服務(wù)質(zhì)量和網(wǎng)絡(luò)故障等,也可集中地進行設(shè)備配置、策略發(fā)放和新應(yīng)用服務(wù)投入運行,從而獲得大規(guī)模數(shù)據(jù)中心網(wǎng)絡(luò)的高效運維和管理。其次,SDN技術(shù)可以有效提高網(wǎng)絡(luò)資源利用率,在保障網(wǎng)絡(luò)服務(wù)質(zhì)量前提下,通過高效實施流量工程提高數(shù)據(jù)中心內(nèi)鏈路帶寬利用率和吞吐量,節(jié)約建網(wǎng)成本,同時滿足快速頻繁的資源調(diào)度和實時配置的需求。再者,SDN能夠?qū)崿F(xiàn)虛擬機管理自動化,可以有效管理云計算使用的海量虛擬機,同時通過與VM服務(wù)器的配合可以很好地實現(xiàn)自動化虛擬機部署及快速遷移。此外,SDN還有適用于組網(wǎng)靈活和多路徑轉(zhuǎn)發(fā)的環(huán)境,僅涉及軟件更新的快速應(yīng)用部署和網(wǎng)絡(luò)升級等特性,這些特性都能很好地適應(yīng)數(shù)據(jù)中心網(wǎng)絡(luò)的建設(shè)開發(fā)。
網(wǎng)絡(luò)路由一直是網(wǎng)絡(luò)的關(guān)鍵問題,路由算法層出不窮,目的都是為了尋找最佳路徑(或者滿足要求的路徑)來傳遞信息,提高服務(wù)質(zhì)量,同時提高網(wǎng)絡(luò)整體資源利用率。在傳統(tǒng)網(wǎng)絡(luò)中,各個節(jié)點通過局部網(wǎng)絡(luò)狀態(tài)進行分布式路由計算,難以發(fā)揮算法的最佳性能。然而,具有全網(wǎng)視圖的SDN可以在很大程度上提高路由算法性能,增加網(wǎng)絡(luò)吞吐率,主要原因如下:
·在集中控制的SDN中控制平面具有全網(wǎng)拓撲,可以優(yōu)化路由算法性能而不需要考慮算法的收斂性;
·控制平面維護了全局網(wǎng)絡(luò)信息(包括流量信息、鏈路信息、路由限制等),根據(jù)網(wǎng)絡(luò)能力,可按照不同流量的服務(wù)需求計算路由,有效地管理和調(diào)度流量;
·轉(zhuǎn)發(fā)平面實時上報網(wǎng)絡(luò)信息到控制平面進行流量及網(wǎng)絡(luò)狀態(tài)分析,及時調(diào)整路由并統(tǒng)一下發(fā)流表更改路徑,靈活、動態(tài)地調(diào)度流量,可以實現(xiàn)網(wǎng)絡(luò)性能優(yōu)化、提高網(wǎng)絡(luò)鏈路利用率及負載均衡等目的。
結(jié)合現(xiàn)代數(shù)據(jù)中心網(wǎng)絡(luò)的流量特征和業(yè)務(wù)模式,對基于SDN架構(gòu)的數(shù)據(jù)中心網(wǎng)絡(luò),在面對云計算和大數(shù)據(jù)等新型業(yè)務(wù)時的路由算法性能需求進行了全面分析,提出在未來數(shù)據(jù)中心網(wǎng)絡(luò)建設(shè)與部署中應(yīng)重點關(guān)注以下6個方面的路由性能。
(1)負載均衡性能
數(shù)據(jù)中心網(wǎng)絡(luò)屬于高帶寬網(wǎng)絡(luò),通過單純增加網(wǎng)絡(luò)鏈路來提高帶寬,不僅增加了網(wǎng)絡(luò)成本也使網(wǎng)絡(luò)結(jié)構(gòu)更加復(fù)雜,而最短路徑路由算法總會選擇代價最小的路徑使得流量集中于相同鏈路,并沒有有效利用所增加的帶寬,使得實際上提高的吞吐量并不理想。由于使用SDN技術(shù)的數(shù)據(jù)中心網(wǎng)絡(luò)具有全網(wǎng)視圖,可獲取鏈路利用率及剩余容量等網(wǎng)絡(luò)信息,有效計算基于負載均衡的路由,對全網(wǎng)流量進行分配,從而提高鏈路利用率和網(wǎng)絡(luò)吞吐量,滿足高帶寬需求。
基于負載均衡的路由算法主要利用了網(wǎng)絡(luò)多路徑特性,即源—目的對之間可能存在多條可用路徑的特性,將網(wǎng)絡(luò)流量分配到滿足服務(wù)需求的空閑路徑上,避免節(jié)點總是選擇最短路徑,提高鏈路利用率。實時的網(wǎng)絡(luò)狀態(tài)是確保路由有效性的關(guān)鍵,在傳統(tǒng)網(wǎng)絡(luò)中,一個節(jié)點需要保存所有網(wǎng)絡(luò)節(jié)點信息,可能會導(dǎo)致路由的擴展性較差,而在SDN中全網(wǎng)視圖可以很好地解決路由的可擴展性問題。
在路徑的選擇方式上主要有以下兩種:一是在多條可用路徑中,根據(jù)網(wǎng)絡(luò)狀態(tài)信息,在網(wǎng)絡(luò)性能約束條件下,選擇相對空閑的一條路徑進行傳輸或者選擇兩條作為主備路徑,備用路徑僅在主路徑失效后啟用;二是選取源—目的對之間的多條路徑按比例共同承載數(shù)據(jù)流。其中,第一種方式可以減少路徑查找和安裝的時延,路由更具穩(wěn)定性,但因僅存一條路徑,因此在網(wǎng)絡(luò)狀態(tài)發(fā)生變化時不能快速反應(yīng),雖然可以通過使用主備路徑的方法來解決,但是備用路徑存在可能已經(jīng)過時的問題,同時也會增加交換機的維護路徑開銷;第二種方式由于在目的端接收的數(shù)據(jù)分組是亂序的,一定程度上影響了數(shù)據(jù)傳輸效率,但是由于多條路徑的存在可以更有效地使用帶寬,提高了端到端的可靠性,在網(wǎng)絡(luò)狀態(tài)發(fā)生改變的情況下可以有效地避免擁塞。
在多路徑并行傳輸方式中,需要考慮選擇多少條路徑、如何選擇這些路徑、流量在每條路徑上的分配問題,相對較為復(fù)雜,目前研究和關(guān)注較少,主要還是集中在單路徑傳輸路由算法上。在單路徑傳輸路由算法中,重點要考慮路徑的查找和選擇,目前主要有兩種方式:一是基于負載均衡選擇最優(yōu)路徑,例如,首先找出多條具有最小跳數(shù)或滿足服務(wù)需求性能的候選路徑,通過SDN監(jiān)測并計算這些路徑上的鏈路利用率之和作為開銷,選擇開銷最小的路徑,如果有相同的最小開銷路徑,則優(yōu)先選擇剩余可用容量最大的路徑[11];另一種則并不總是選擇最優(yōu)路徑,可以通過概率方式進行選擇,如基于隨機效用理論模型——MNL(multinominal logit,多項羅吉特)模型[12]的輕量級路由算法就是出于大規(guī)模數(shù)據(jù)中心存在頻繁的網(wǎng)絡(luò)狀態(tài)更新并不適合使用計算量太大的路由算法的考慮,通過概率進行路徑選擇的路由算法。個體從可選路徑集N={1,2,…,n}中選擇一個選項時,會選擇對其效用最大的選項,MNL模型根據(jù)該理論,給出了路徑i被選中的概率,如式(1)所示:
Vj是選擇j時的效用,γ若用路徑開銷C作為選路效用,則Vj=C,式(1)可化為:
其中,o為源節(jié)點,d為目的節(jié)點,Φod為源節(jié)點o到目的節(jié)點d的可選路徑集,r為其中一條路徑,Crod為路徑r的開銷,prod為選擇路徑r的概率[13]。計算出各個路徑的概率后,數(shù)據(jù)分組到達節(jié)點時即可根據(jù)p隨機選擇路徑,同一條流的分組選擇相同的路徑,以減小TCP控制對流量吞吐量的影響,這種通過概率選取路徑的方式可避免節(jié)點總是選擇最短路徑,提高鏈路利用率,同時控制器可周期更新開銷重新計算p,進一步最大化利用網(wǎng)絡(luò)。
(2)動態(tài)路由性能
由于數(shù)據(jù)中心網(wǎng)絡(luò)中的流量具有高動態(tài)性,基于網(wǎng)絡(luò)流初始化階段的狀態(tài)來進行的路由計算并不能保障在數(shù)據(jù)傳輸過程中動態(tài)網(wǎng)絡(luò)的負載均衡。為此,需要對基于SDN架構(gòu)的數(shù)據(jù)中心網(wǎng)絡(luò)進行周期性實時監(jiān)測以更新網(wǎng)絡(luò)狀態(tài),將負載過重的鏈路上的流量進行路徑轉(zhuǎn)換或重新路由,從而使網(wǎng)絡(luò)達到動態(tài)的負載均衡。檢測負載是否過重的時間點可以使用周期性觸發(fā)、門限觸發(fā)和二者協(xié)同觸發(fā)的方式。在判斷負載是否過重時,既可以根據(jù)鏈路負載超過所占的鏈路容量比重(如75%)決定是否進行重新路由[14],也可以通過對全網(wǎng)設(shè)置一個負載均衡參數(shù)進行判斷,例如,負載均衡參數(shù)δ(t)如式(3)所示:
式中,loadi,j(t)為在時刻t時節(jié)點i和j之間已占用的帶寬,N為網(wǎng)絡(luò)中所有鏈路,當(dāng)δ(t)>δ*時(δ*為針對該網(wǎng)預(yù)先測量的閾值),則啟動動態(tài)負載路由算法,對網(wǎng)絡(luò)中影響負載均衡的最大流進行調(diào)度,實現(xiàn)動態(tài)路由[15]。
動態(tài)路由算法需要考慮的另一個問題是:鏈路過載發(fā)生后,應(yīng)該對哪一條流進行重路由以使網(wǎng)絡(luò)快速地重新恢復(fù)負載均衡狀態(tài),因此需要對流進行區(qū)分。在數(shù)據(jù)中心網(wǎng)絡(luò)中混合了不同特征的流量,對大多數(shù)數(shù)據(jù)中心網(wǎng)絡(luò)來說,網(wǎng)絡(luò)流量表現(xiàn)出明顯的大象流和老鼠流的特征[3],即絕大部分的流均較小,而極少數(shù)的大流卻占據(jù)了絕大部分的數(shù)據(jù)流量。因此,在進行流量調(diào)度時,路由協(xié)議可根據(jù)流量大小動態(tài)區(qū)分出吞吐量敏感的大流量和時延敏感的小流量。考慮到小流量因為持續(xù)時間相對較短,改變其路徑極有可能會增加時延和開銷,應(yīng)通過遷移大流量實施流量調(diào)度,而在一般的路由協(xié)議如ECPM(等價多路徑)無法對此進行區(qū)分處理,但由于SDN是基于流的轉(zhuǎn)發(fā),可以很好地對流進行統(tǒng)計區(qū)分,為數(shù)據(jù)流的判別奠定了基礎(chǔ)。大象流的識別可以通過SDN數(shù)據(jù)統(tǒng)計機制來完成,每一條流都由其進入SDN時經(jīng)過的第一個交換機進行流量監(jiān)測,控制器每間隔一定時間(如5 s)就向交換機進行數(shù)據(jù)采集,流的大小分類可采取式(4)進行計算:
式中,ψt是根據(jù)時間對流量大小進行的估計,bt是交換機在時刻t接收到的該流的所有字節(jié)數(shù),p是統(tǒng)計的時間間隔,bt-p即交換機在時刻t-p接收到的該流字節(jié)數(shù)。通過對ψt進行界定即可區(qū)分大小流[14]。在啟用動態(tài)路由時,針對不同大小的流制訂相應(yīng)調(diào)度策略,如流量調(diào)度主要針對大流,可減少對小流的不必要干擾,有效實施負載均衡,提高動態(tài)路由性能。
(3)多播路由性能
數(shù)據(jù)中心網(wǎng)絡(luò)中存在大量集群通信應(yīng)用,如分布式文件存儲系統(tǒng)、MapReduce[16]集群計算和系統(tǒng)升級。集群通信模式是數(shù)據(jù)中心主要的通信模式,包括一對多、多對一和多對多[17]。大量的集群數(shù)據(jù)影響了數(shù)據(jù)中心網(wǎng)絡(luò)的性能,而傳統(tǒng)的點到點通信方式浪費了大量的網(wǎng)絡(luò)帶寬且效率較低,多播技術(shù)因為可以節(jié)約網(wǎng)絡(luò)帶寬和提高應(yīng)用的吞吐量,成為解決組通信的主流方法。IP多播是傳統(tǒng)網(wǎng)絡(luò)使用最多的多播協(xié)議,但它不僅在可靠性、安全性和可拓展性上存在許多問題,且因不能利用網(wǎng)絡(luò)多路徑特性導(dǎo)致鏈路利用率低,分布式計算限制了最佳多播路由樹的形成[18];SDN具有可控可認證等優(yōu)勢,可以很好地解決多播的安全性和多播成員的出入組管理問題,同時全網(wǎng)拓撲為高效多播路由提供了有效信息。
在多播路由中,找出多播路由樹是關(guān)鍵,初始狀態(tài)的路由樹應(yīng)該是最佳路由樹,但分布式計算顯然較難獲取最佳路由樹,同時,多播因為存在大量的成員頻繁出入多播組的情況[19],所以多播路由樹一直處于動態(tài),很少能夠達到穩(wěn)定,也難以維持最佳的路由樹,因此,如何優(yōu)化動態(tài)的多播路由樹也是多播路由計算的核心問題。傳統(tǒng)IP多播主要使用的是PIM-SM[20]協(xié)議,其核心是構(gòu)造并維護一顆單向共享樹,如圖3(a)所示,共享樹需要選擇PIM中某一路由器作為公共根節(jié)點,即匯聚節(jié)點(rendezvous point,RP),并根據(jù)RP形成多播共享樹,該路由樹并不是最佳路由樹。多播數(shù)據(jù)由源節(jié)點通過RP,沿著共享樹向接收者轉(zhuǎn)發(fā),圖3(a)中帶星號的為RP,每當(dāng)有新成員加入路由樹時,都要連接到一個特殊節(jié)點(RP或源節(jié)點),而不是連接到路由樹中與它距離最短的那個節(jié)點。因此,PIM多播效率并不高,且當(dāng)通信量增大時,使用共享樹將會出現(xiàn)流量集中到RP附近的瓶頸。
由于SDN具有全網(wǎng)拓撲可以提供更多的可用路徑和所需的鏈路狀態(tài),有效地提高了多播路由的效率。在多播路由樹建立初始,根據(jù)帶寬、時延、抖動等在SDN全網(wǎng)拓撲上可構(gòu)建最佳路由樹。一種基于全網(wǎng)拓撲構(gòu)建多播路由樹的方法是通過Steiner[21]樹問題來解決。Steiner樹問題是最短網(wǎng)絡(luò)的一種,最小生成樹是在給定的點集和邊中尋求最短網(wǎng)絡(luò)使所有點連通,而最小Steiner樹允許在給定點外增加額外的點,使生成的最短網(wǎng)絡(luò)開銷最小,因此,使用Steiner樹作為多播樹時,在給定源節(jié)點和多播組員時可以在整個網(wǎng)絡(luò)構(gòu)造多播路由樹,使得網(wǎng)絡(luò)開銷最小。在多播數(shù)據(jù)傳送過程中,當(dāng)有新節(jié)點加入時,同樣可通過全網(wǎng)拓撲尋找該節(jié)點到原組播路由樹的最短路徑,一種簡單的方法是通過迭代判斷其相鄰節(jié)點是否為多播樹成員來進行接入[22],如果是則接入相鄰節(jié)點,否則繼續(xù)判斷該相鄰節(jié)點的相鄰節(jié)點是否為多播樹成員,直到找到與新節(jié)點最近的多播樹成員,如圖3(b)所示,R3直接連接到與它距離最短的點,而不是直接連接源節(jié)點或公共根節(jié)點。通過優(yōu)化多播路由樹的動態(tài)變化過程,為多播路由提供更小開銷,節(jié)約網(wǎng)絡(luò)資源,也避免了性能瓶頸問題。
(4)多控制域間路由性能
數(shù)據(jù)中心網(wǎng)絡(luò)規(guī)模巨大,并且存在多個數(shù)據(jù)中心互聯(lián)的情況,若僅依賴于一個控制器來對整個網(wǎng)絡(luò)進行管理,由于控制器處理能力和控制通道帶寬的有限性,容易形成網(wǎng)絡(luò)性能瓶頸。使用多控制器進行分域管理是解決SDN拓展性問題的有效方法[23],即由一個獨立控制器所控制的交換機組成一個控制域,控制域間無交叉,多個控制域協(xié)同管理整個網(wǎng)絡(luò)。雖然多控制域可以實現(xiàn)大規(guī)模網(wǎng)絡(luò)的有效管理,但由于多個控制域的存在也增加了網(wǎng)絡(luò)復(fù)雜度,而控制器只能計算域內(nèi)的路由,也會大大降低路由效率,例如,域外數(shù)據(jù)分組到達后,控制器無法給出路由,只能通過泛洪的方式進行數(shù)據(jù)分組的傳輸,消耗大量的網(wǎng)絡(luò)資源,因此要求控制域間能夠共享各個域的網(wǎng)絡(luò)狀態(tài)信息,從而對域間路由算法提出了更高要求。多控制器的信息共享一般有兩種方案:一種是控制器間直接通過專用接口(即南北向接口)進行連接和信息共享,這會產(chǎn)生大量交互信息并影響信息的實時性與準(zhǔn)確性,所以可以采用另一種方案,使用控制器協(xié)同管理服務(wù)器(全局控制器)[24]對每個控制器進行信息采集,形成全網(wǎng)網(wǎng)絡(luò)狀態(tài)視圖,并為各個控制器提供全網(wǎng)路由信息。
圖3 多播路由樹
通常,多控制域間路由算法可采用分級路由和無級路由兩種路由方式,其中,在無級路由中,控制器對全網(wǎng)拓撲直接進行路由計算得到源—目的地間的最短路徑,在這個過程中,各個控制器需要提供大量的詳細網(wǎng)絡(luò)信息進行共享,在大型數(shù)據(jù)網(wǎng)絡(luò)中心中,增加了網(wǎng)絡(luò)控制信息開銷和全局控制器的處理負擔(dān);而分級路由則區(qū)分控制器域內(nèi)路由和域外路由,控制器間僅需交換域內(nèi)路由計算結(jié)果,不僅減少大量的信息交互,而且降低了域間路由計算復(fù)雜度。
因此,為了提升多控制域間管理性能,建議采用以下分級路由方案[25](如圖4所示):首先計算出每個控制域內(nèi)邊界交換機(圖中黑色圓點所示)間的最短路徑和其開銷,并將該路徑轉(zhuǎn)換為兩個邊界交換機直接相連的虛擬鏈路,如圖4(b)所示,此時,整個網(wǎng)絡(luò)拓撲得到簡化,控制器接收到域外數(shù)據(jù)分組后就可以根據(jù)簡化后的全網(wǎng)視圖進行域間路由計算,實現(xiàn)多控制域環(huán)境下的數(shù)據(jù)中心網(wǎng)絡(luò)路由。
(5)節(jié)能性能
現(xiàn)代大規(guī)模數(shù)據(jù)中心中擁有數(shù)以百萬計的服務(wù)器,設(shè)備密度大,能耗提高,電力及制冷等運營成本也隨之迅速增長[26]。與此同時,為了適應(yīng)服務(wù)需求,需提供高性能和高容錯性的路由,新型數(shù)據(jù)中心大量采用fat-tree、BCube、FiConn等“富連結(jié)”的網(wǎng)絡(luò)拓撲,引入了大量交換機參與路由,使得每對服務(wù)器間存在多條路徑。這樣雖然能提高網(wǎng)絡(luò)性能,但也會造成大量的能耗。
對于數(shù)據(jù)中心的能耗問題,一般可以從設(shè)備級和網(wǎng)絡(luò)級來考慮[27],設(shè)備級節(jié)能方式僅關(guān)注單個硬件設(shè)備的能耗設(shè)計問題,網(wǎng)絡(luò)級節(jié)能方式則需要對整個網(wǎng)絡(luò)進行規(guī)劃,需要解決的問題包括拓撲選取、網(wǎng)絡(luò)路由和流量調(diào)度等。在網(wǎng)絡(luò)路由方面,節(jié)能路由的核心思想是:在滿足網(wǎng)絡(luò)性能需求的條件下,根據(jù)網(wǎng)絡(luò)狀態(tài)的變化配置節(jié)能路由路徑,將業(yè)務(wù)流量集中在主要網(wǎng)絡(luò)鏈路上,并將空閑的網(wǎng)絡(luò)設(shè)備關(guān)閉或置于休眠模式,減少不必要的交換機及鏈路的使用,從而達到節(jié)能的目的,然而,關(guān)閉部分網(wǎng)絡(luò)設(shè)備后必然會對網(wǎng)絡(luò)的服務(wù)質(zhì)量造成一定影響,需要在網(wǎng)絡(luò)性能和能耗兩者之間做一定的權(quán)衡。節(jié)能路由機制涉及了網(wǎng)絡(luò)狀態(tài)的收集、流量調(diào)配和單點設(shè)備功耗模式切換等問題,這些在SDN集中控制的架構(gòu)下都可以得到非常好的支持。
在節(jié)能路由的計算中,可以根據(jù)網(wǎng)絡(luò)狀態(tài)變化進行路由選擇,也可根據(jù)網(wǎng)絡(luò)拓撲直接計算節(jié)能路徑。前者需要根據(jù)網(wǎng)絡(luò)流量的實時變化動態(tài)調(diào)整路由,主要思想為首先為每條流計算初始路徑,在路徑集合中按照一定的策略對滿足條件的節(jié)點和鏈路迭代地刪除[28],同時將流量調(diào)度到其他路徑,調(diào)度策略可根據(jù)流量大小、鏈路利用率、能耗、連接度等進行制訂。因為數(shù)據(jù)中心網(wǎng)絡(luò)屬于高動態(tài)網(wǎng)絡(luò),頻繁地更改路由會影響網(wǎng)絡(luò)的穩(wěn)定性,而且大量的重路由增加了控制器的計算量、控制器與交換機間的信息開銷和流量調(diào)度的復(fù)雜度,所以在采用SDN技術(shù)的數(shù)據(jù)中心網(wǎng)絡(luò),還需要考慮路由迭代計算周期。在根據(jù)網(wǎng)絡(luò)拓撲節(jié)能路由的方法中,SDN擁有全網(wǎng)拓撲可以很好地解決拓展性問題,算法根據(jù)全網(wǎng)拓撲直接計算路由,使用能耗作為路徑開銷,選取開銷最小的路徑,同時,可根據(jù)已存在的路徑進行路由計算,使得新的路由最大程度地重復(fù)利用已有路徑,從而集中流量,節(jié)省更多的網(wǎng)絡(luò)資源。節(jié)能路由過于集中的流量容易造成網(wǎng)絡(luò)性能的下降,需要根據(jù)實際的網(wǎng)絡(luò)性能需求決定提供服務(wù)的節(jié)點和鏈路數(shù)。確保實時、準(zhǔn)確的網(wǎng)絡(luò)狀態(tài)信息是節(jié)能路由選路的關(guān)鍵,SDN架構(gòu)的全局視圖可以很好地解決該問題。同時,SDN對全局的控制能力,使得節(jié)能路由算法可以以更小的代價獲得更加復(fù)雜的路由算法和更有效地完成流量調(diào)度任務(wù)。例如,節(jié)能路由將流量集中到了網(wǎng)絡(luò)主要鏈路,多條流會共享相同的鏈路和交換機,在這些節(jié)能路徑中,負載并不均衡,多條流在主要鏈路帶寬競爭激烈,而非主要鏈路相對空閑,浪費了大量傳輸能力,采用路徑獨占式路由方案[29],讓優(yōu)先級較高的流獨占一條鏈路進行傳輸,結(jié)束后再啟動優(yōu)先級較低的另一條流的傳輸,在同一時間、同一鏈路上僅有一條流傳輸,這樣使得流不需要進行帶寬競爭,且可將流量調(diào)度到較為空閑的鏈路上,提高鏈路利用率。
圖4 一個簡單的多控制域SDN
(6)失效快速恢復(fù)性能
由于數(shù)據(jù)中心網(wǎng)絡(luò)中廣泛采用了低成本的低端設(shè)備,從而存在鏈路失效、服務(wù)器失效和交換機失效等多種故障和差錯,而持續(xù)的可靠服務(wù)能力需要數(shù)據(jù)中心網(wǎng)絡(luò)提供高效的失效恢復(fù)策略和容錯機[1]。
在非SDN架構(gòu)的數(shù)據(jù)中心網(wǎng)絡(luò)中,鏈路失效恢復(fù)采用分布式的方法實施,即檢測到故障后,向各個交換機廣播消息,在大規(guī)模數(shù)據(jù)中心網(wǎng)絡(luò)中,一個小故障就會產(chǎn)生大量的控制消息,直接加大了管理開銷,SDN集中式控制能夠有效減少故障處理的開銷。
在基于SDN架構(gòu)的數(shù)據(jù)中心網(wǎng)絡(luò)中采用的失效恢復(fù)方式主要有以下兩種:一種是控制器主導(dǎo)的失效恢復(fù),即在鏈路失效消息發(fā)送到控制器后,暫停相關(guān)流的傳輸,對流重新進行路由計算,并在相應(yīng)交換機上安裝路徑將流調(diào)度到其他鏈路,因為需要重新安裝路由路徑,延緩了恢復(fù)時間;另一種是交換機主導(dǎo)的失效恢復(fù),在故障產(chǎn)生后,交換機立刻將流量切換到預(yù)先安裝在交換機上的冗余路徑[30],恢復(fù)過程中不需要控制器的參與,減少了信息傳遞、重路由計算和路徑安裝的時間,達到快速恢復(fù)路由的目的,但是該方法無法處理備用路徑也失效的情況,并且備用路徑提前安裝,增加了交換機流表項的存儲負擔(dān),同時由于沒有參考實時網(wǎng)絡(luò)狀態(tài),極可能將流路由到負載較重的鏈路上,而且數(shù)據(jù)中心網(wǎng)絡(luò)屬于高動態(tài)網(wǎng)絡(luò),因此目前大多數(shù)研究建議主要集中在控制器主導(dǎo)的失效恢復(fù)。
在控制器主導(dǎo)的失效恢復(fù)中,新路徑的安裝是影響路由恢復(fù)時間的主要因素,因此修改盡量少的交換機路由表項是縮短該步驟使用時間的核心。一般通過改善路徑安裝方式和重路由使得需要修改的交換機最少。通過重路由有兩種典型方案:一種是需找失效路由到目的地的最短路徑,另一種則僅進行局部的路由[31]。如圖5所示,當(dāng)交換機C和B之間的鏈路斷開后,只找C和B之間的迂回線路(C→A→D→B),雖然該路徑不是最短路徑,但大大減少了需要修改流表項的交換機數(shù)量。
圖5 局部重路由示意
隨著信息社會的進一步發(fā)展,大量不同類型的數(shù)據(jù)在數(shù)據(jù)中心內(nèi)進行交換,數(shù)據(jù)中心逐步成為整個信息網(wǎng)絡(luò)的中心,其爆炸式增長的信息處理使其對網(wǎng)絡(luò)性能的要求越來越高,而SDN技術(shù)是一種革新性的網(wǎng)絡(luò)架構(gòu),它對整個網(wǎng)絡(luò)的可管可控性非常適合數(shù)據(jù)中心網(wǎng)絡(luò)的新需求。與此同時,當(dāng)SDN應(yīng)用于數(shù)據(jù)中心網(wǎng)絡(luò)時,由于需求的多樣性給路由算法帶來了更多的挑戰(zhàn)。本文根據(jù)現(xiàn)代數(shù)據(jù)中心網(wǎng)絡(luò)的需求和SDN技術(shù)特點,對面向SDN架構(gòu)的數(shù)據(jù)中心網(wǎng)絡(luò)路由算法的主要性能需求進行了分析總結(jié),可以為未來數(shù)據(jù)中心網(wǎng)絡(luò)建設(shè)提供必要的借鑒和參考。當(dāng)然,本文所做的分析與建議不能代表所有基于SDN的數(shù)據(jù)中心網(wǎng)絡(luò)路由算法需求,在具體網(wǎng)絡(luò)建設(shè)中還需要根據(jù)實際需求進行針對性的選擇。
1 魏祥麟,陳鳴,范建華等.數(shù)據(jù)中心網(wǎng)絡(luò)的體系結(jié)構(gòu).軟件學(xué)報,2013,24(2):295~316Wei X L,Chen M,Fan J H,et al.Architecture of the data center network.Journal of Software,2013,24(2):295~316
2 Guo C X,Wu H T,Tan K,et al.Dcell:a scalable and fault-tolerant network structure for data centers.ACM SIGCOMM Computer Communication Review,2008,38(4):75~86
3 鄧罡,龔正虎,王宏.現(xiàn)代數(shù)據(jù)中心網(wǎng)絡(luò)特征研究.計算機研究與發(fā)展,2014(2):395~407 Deng G,Gong Z H,Wang H.Characteristics research on modern data center network.Journal of Computer Research and Development,2014(2):395~407
4 Chen K,Hu C C,Zhang X,et al.Survey on routing in data centers:insights and future directions.IEEE Network,2011,25(4):6~10
5 Benson T,Anand A,Akella A,et al.Understanding data center traffic characteristics.Proceedings of the 1st ACM SIGCOMM 2009 Workshop on Research on Enterprise Networking,Barcelona,Spain,2009:65~72
6 Ho Trong Viet,Deville Y,Bonaventure O,et al.Traffic engineering for multiple spanning tree protocol in large data centers.Proceedings of the 23rd International Teletraffic Congress(ITC23),San Francisco,USA,2011:23~30
7 Heller B,Seetharaman S,Mahadevan P,et al.ElasticTree:saving energy in data center networks.Proceedings of the 7th USENIX Symposium on Networked Systems Design and Implementation,NSDI 2010,San Jose,USA,2010:2~17
8 Hu F,Hao Q,Bao K.A survey on software-defined network and OpenFlow: from concept to implementation. IEEE Communications Surveys & Tutorials,2014,16(4):2181~2206
9 McKeown N,Anderson T,Balakrishnan H,et al.OpenFlow:enabling innovation in campus networks.ACM SIGCOMM Computer Communication Review,2008,38(2):69~74
10 Al-Fares M,Loukissas A,Vahdat A.A scalable commodity data center network architecture.ACM SIGCOMM Computer Communication Review,2008,38(4):63~74
11 Kanagavelu R,Lee B S,Felipe Miguel R,et al.Software defined network based adaptive routing for data replication in data centers.Proceedings of the 19th IEEE International Conference on Networks(ICON),Singapore,2013:1~6
12 Honma Y,Aida M,Shimonishi H,et al.A new multi-path routing methodology based on logit type assignment.Proceedings of the 2009 IEEE GLOBECOM Workshops,Honolulu,USA,2009:1~6
13 Shinohara Y,Chiba Y,Shimonishi H.An adaptive multipath routing algorithm for maximizing flow throughputs.Proceedings of the World Telecommunications Congress(WTC),Miyazaki,Japan,2012:1~6
14 Kanagavelu R,Mingjie L N,Khin MiMi,et al.OpenFlow based control for re-routing with differentiated flows in data center networks.Proceedings of the 18th IEEE International Conference on Networks(ICON),Singapore,2012:228~233
15 Long H,Shen Y,Guo M Y,et al.LABERIO:dynamic load-balanced routing in OpenFlow-enabled networks.Proceedings of the IEEE 27th International Conference on Advanced Information Networking and Applications(AINA),Barcelona,Spain,2013:290~297
16 Dean J,Ghemawat S.MapReduce:simplified data processing on large clusters.Communications of the ACM,2008,51(1):107~113
17 Guo C X,Lu G H,Li D,et al.BCube:a high performance,server-centric network architecture for modular data centers.Proceedings of the ACM SIGCOMM 2009 Conference on Applications,Technologies,Architectures,and Protocols for Computer Communications,Barcelona,Spain,2009:63~74
18 Sun S M,Li H,Cho Sungchol,et al.Performance optimization of media distribution in overlay networks using OpenFlow.Proceedings of the International Conference on Information Networking(ICOIN),Phuket,Thailand,2014:276~281
19 Marcondes C A C,Santos T P C,Godoy A P,et al.CastFlow:clean-slate multicast approach using in-advance path processing in programmable networks.Proceedings of IEEE Symposium on Computers and Communications(ISCC),Cappadocia,Turkey,2012:94~101
20 IETF RFC 4601.Protocol Independent Multicast-Sparse Mode(PIM-SM):Protocol Specification(Revised),2006
21 Ramanathan S.Multicast tree generation in networks with asymmetric links.IEEE/ACM Transactions on Networking,1996,4(4):558~568
22 Iyer A,Kumar P,Mann V.Avalanche:data center Multicast using software defined networking.Proceedings of the Sixth International Conference on Communication Systems and Networks(COMSNETS),Bangalore,India,2014:1~8
23 Shimonishi H,Ochiai H,Enomoto N,et al.Building hierarchical switch network using OpenFlow.Proceedings of the Intelligent Networking and Collaborative Systems(INCOS’09),Barcelona,Spain,2009:391~394
24 Phan Xuan Thien,Thoai Nam,Kuonen Pierre.A collaborative model for routing in multi-domains OpenFlow networks.Proceedings of 2013 International Conference on Computing,Management and Telecommunications(ComManTel),Ho Chi Minh City,Vietnam,2013:278~283
25 Egilmez H E,Civanlar S,Tekalp A M.A distributed QoS routing architecture for scalable video streaming over multi-domain OpenFlow networks.Proceedings of the 19th IEEEInternational Conference on Image Processing(ICIP),Orlando,USA,2012:2237~2240
26 Bruschi R,Lombardo A,Morabito G,et al.Green extension of OpenFlow.Proceedings of the 26th International Teletraffic Congress(ITC),Karlskrona,Sweden,2014:1~6
27 Shang Y F.Research on power-aware routing in data center networks.Dissertation of Tsinghua University,2013
28 Chiaraviglio L,Mellia M,Neri F.Reducing power consumption in backbone networks.Proceedings of the IEEE International Conference on Communications(ICC’09),Dresden,Germany,2009:1~6
29 Li D,Shang Y F,Chen C J.Software defined green data center network with exclusive routing.Proceedings of the INFOCOM,Toronto,Canada,2014:1743~1751
30 Ramos R M,Martinello M,Esteve Rothenberg C.SlickFlow:resilient source routing in data center networks unlocked by OpenFlow.Proceedings of IEEE the 38th Conference on Local Computer Networks(LCN),Sydney,Australia,2013:606~613
31 Li J,JongHwan Hyun,Jae-Hyoung Yoo,et al.Scalable failover method for data center networks using OpenFlow.Proceedings of Network Operations and Management Symposium(NOMS),Krakow,Poland,2014:1~6