本發(fā)明主要涉及到數(shù)據(jù)中心網(wǎng)絡(luò)技術(shù)領(lǐng)域,特指一種面向SDN數(shù)據(jù)中心網(wǎng)絡(luò)最大概率路徑流調(diào)度方法及裝置。
背景技術(shù):
不斷增長的數(shù)據(jù)中心網(wǎng)絡(luò)規(guī)模和業(yè)務(wù)需求對數(shù)據(jù)中心網(wǎng)絡(luò)負載均衡提出了嚴峻的挑戰(zhàn),而基于SDN新型網(wǎng)絡(luò)架構(gòu)的出現(xiàn)給負載均衡研究帶來新的思路和機遇。SDN網(wǎng)絡(luò)中的控制器能夠獲取全局網(wǎng)絡(luò)的拓撲、節(jié)點、鏈路以及流信息,進而可以對網(wǎng)絡(luò)流進行集中控制和調(diào)度。SDN網(wǎng)絡(luò)控制平面和轉(zhuǎn)發(fā)平面的解耦分離實現(xiàn)底層交換機資源的抽象和高速轉(zhuǎn)發(fā),并且控制器提供的北向接口可以方便開發(fā)人員根據(jù)業(yè)務(wù)需求開發(fā)新的功能和研究創(chuàng)新。利用SDN網(wǎng)絡(luò)架構(gòu)的特點可以實現(xiàn)網(wǎng)絡(luò)流量的靈活細粒度的集中控制,進而通過流管理和調(diào)度實現(xiàn)網(wǎng)絡(luò)負載均衡??紤]到數(shù)據(jù)中心網(wǎng)絡(luò)中大多數(shù)是小流而且僅占用10%左右的網(wǎng)絡(luò)帶寬,而少數(shù)的大流卻占用了90%的左右的網(wǎng)絡(luò)帶寬,所以對于數(shù)據(jù)中心網(wǎng)絡(luò)負載均衡的實現(xiàn)主要是考慮大象流的調(diào)度。
當前的大多數(shù)數(shù)據(jù)中心網(wǎng)絡(luò)研究主要集中在流量分析以及大象流發(fā)現(xiàn)方面,而對于大象流的調(diào)度研究較少并且存在鏈路帶寬使用碎片化的問題。帶寬碎片化問題可能導致多條路徑剩余帶寬之和能夠滿足當前流帶寬需求,而無其中任何一條路徑剩余帶寬能夠滿足流帶寬分配需求,這可能會造成潛在的網(wǎng)絡(luò)擁塞。流調(diào)度算法不但要考慮當前待調(diào)度的流路徑選擇問題而且要全局考慮網(wǎng)絡(luò)鏈路帶寬剩余碎片化問題,并且集中的剩余鏈路帶寬可以分配更多的大流,減少鏈路擁塞的發(fā)生,提高整體網(wǎng)絡(luò)帶寬利用率。
當前網(wǎng)絡(luò)流調(diào)度算法主要有以下幾種:
(1)使用ECMP算法進行流分配調(diào)度;
網(wǎng)絡(luò)流量合理的調(diào)度可以提高鏈路帶寬的利用率,緩解網(wǎng)絡(luò)擁塞,為應(yīng)用提供有效的帶寬支持進而可以保證服務(wù)質(zhì)量,滿足用戶的需求。傳統(tǒng)IP網(wǎng)絡(luò)中使用最短路徑優(yōu)先路由協(xié)議(如OSPF)進行鏈路間負載的分配,交換機之間通過交換靜態(tài)的鏈路權(quán)重計算出轉(zhuǎn)發(fā)的最短路徑,然而,基于權(quán)重的路由策略不能將流量分配到多個后續(xù)路徑上,無法有效地進行負載均衡。ECMP(Equal-Cost Multi-Path)通過對流的數(shù)據(jù)包頭部進行哈希取模運算,將數(shù)據(jù)流映射到不同的轉(zhuǎn)發(fā)路徑,采用類似于ECMP的流調(diào)度方案可以將到達同一個節(jié)點的不同流‘分散’到后續(xù)的多條‘等價’可用路徑。然而,該類流分配調(diào)度方案并沒有考慮流大小和鏈路帶寬剩余情況,可能多個不同大流分別被哈希分配到同一條鏈路上,就會導致鏈路擁塞,所以ECMP算法雖然效率很高但不能很好的進行負載均衡。
(2)基于SDN網(wǎng)絡(luò)的DLB調(diào)度算法;
針對多路徑的胖樹型網(wǎng)絡(luò)的動態(tài)負載均衡算法DLB(Dynamic Load Balancing),算法主要采用貪心策略的思想進行鏈路尋找。通過深度優(yōu)先遞歸的策略,DLB算法從源節(jié)點開始進行對比并選取與其相連的剩余鏈路帶寬最大的鏈路,并將鏈路的另一節(jié)點作為下一次搜尋的起點,通過不斷地遞歸遍歷確定一條路徑。通過仿真實驗作者驗證了DLB算法,并與傳統(tǒng)負載均衡算法進行了性能評估,對于胖樹網(wǎng)絡(luò)拓撲DLB算法在帶寬利用率和網(wǎng)絡(luò)傳輸延遲方面表現(xiàn)出很高的性能。DLB算法只是根據(jù)局部鏈路剩余帶寬選優(yōu)而不是從全局把握路徑剩余帶寬,采用這種算法選擇的路徑很可能不是全局最優(yōu)的并且可能會導致被選路徑的負載加重和鏈路擁塞,這樣不但不能達到負載均衡的效果反而會使網(wǎng)絡(luò)整體的性能下降。
(3)基于SDN網(wǎng)絡(luò)的GLB流調(diào)度算法;
SDN網(wǎng)絡(luò)的控制器能夠計算流的轉(zhuǎn)發(fā)路徑根據(jù)流大小和鏈路負載信息,實現(xiàn)多路徑之間的負載均衡。首次適應(yīng)算法GLB(Global Load Balancing)的思想:已知流帶寬,根據(jù)流目的接入層交換機與流起始交換機確定可選路徑,然后線性的搜索可選路徑,如果搜尋到某條路徑上鏈路剩余最小帶寬能夠滿足流帶寬需求,然后將該路徑作為流轉(zhuǎn)發(fā)路徑。該算法并沒有充分考慮滿足流帶寬需求的所有路徑的帶寬使用情況,并且可能導致鏈路剩余帶寬的零碎化,所以不能很好的實現(xiàn)全局動態(tài)負載均衡。
上述現(xiàn)有流調(diào)度算法存在的問題就在于:1)未充分考慮流帶寬需求和鏈路剩余帶寬;2)未全局長遠考慮流調(diào)度問題,不能合理利用多路徑進行流調(diào)度;3)流調(diào)度存在鏈路帶寬碎片化問題。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題就在于:針對現(xiàn)有技術(shù)存在的技術(shù)問題,本發(fā)明提供一種原理簡單、適用范圍廣、易實現(xiàn)、能夠減少網(wǎng)絡(luò)擁塞且起到均衡網(wǎng)絡(luò)效果的面向SDN數(shù)據(jù)中心網(wǎng)絡(luò)最大概率路徑流調(diào)度方法及裝置。
為解決上述技術(shù)問題,本發(fā)明采用以下技術(shù)方案:
一種面向SDN數(shù)據(jù)中心網(wǎng)絡(luò)最大概率路徑流調(diào)度方法,其特征在于,步驟為:
S1:通過交換機獲得流相關(guān)信息;
S2:對流進行判斷,判斷要是否是大象流,如果不是大象流,根據(jù)流的信息和控制器維護的全局拓撲信息獲得流的可選路徑,然后為其任意選擇一條路徑;如果判斷流F是大象流,則選擇概率路徑算法為其計算一條滿足流帶寬需求的路徑;
S3:在為流F選擇了一條路徑之后將流表項下發(fā)到交換機,流F匹配流表項后根據(jù)動作進行數(shù)據(jù)轉(zhuǎn)發(fā)或者將流F剩余數(shù)據(jù)匹配新流表項進行轉(zhuǎn)發(fā)。
作為本發(fā)明方法的進一步改進:所述步驟S1中,在得到交換機發(fā)送的PacketIn消息后,根據(jù)消息獲得流的相關(guān)信息,包括大象流標識、源地址和目的地址。
作為本發(fā)明方法的進一步改進:對于大象流的發(fā)現(xiàn)使用端主機判斷并設(shè)置標識的方式、或者SDN控制器主動采樣分析的方式、或者流收集器采樣收集然后控制器分析的方式。
作為本發(fā)明方法的進一步改進:所述步驟S2中,根據(jù)控制器維護的全局拓撲信息和流源地址和目的地址信息為流計算路徑集合C1。
作為本發(fā)明方法的進一步改進:采用ECMP算法為非大象流計算路徑,對從PacketIn消息中獲取的報文頭進行哈希然后對C1的大小取模,根據(jù)結(jié)果選擇預(yù)先編號的路徑。
作為本發(fā)明方法的進一步改進:從集合C1中選擇路徑最小鏈路帶寬滿足流帶寬需求的路徑得集合C2,對集合C2中的每一條路徑的最小帶寬鏈路計算帶寬比,最后根據(jù)帶寬比為每條路徑計算路徑概率;結(jié)合概率選擇機制為流選擇路徑,其中如果C2集合大小為0則轉(zhuǎn)為為流計算路徑。
作為本發(fā)明方法的進一步改進:所述步驟S2和S3的具體步驟為:
S4.1根據(jù)流F信息確定與源和目的相連的接入層交換機S1和S2;
S4.2根據(jù)控制器維護收集的網(wǎng)絡(luò)拓撲信息選擇S1和S2之間的所有路徑集P{P1,P2........Pn}其中Pi{L1,L2.......Ln},Li為路徑Pi上的一條鏈路;
S4.3在集合C中選擇路徑上鏈路剩余帶寬能滿足流F帶寬Bandwidth需求的路徑,從而得到能滿足流F帶寬需求的路徑集合P1,如果沒有滿足其帶寬需求的路徑則轉(zhuǎn)到繼續(xù)使用ECMP算法計算路徑;
S4.4從集合P1中計算每一條路徑上的剩余帶寬最小的鏈路,從而得到集合L{L1,L2........Ln}其中Li=Pi{L1,L2........Ln}min;
S4.5計算集合L中每條路徑上鏈路剩余最小的帶寬與流F帶寬Bandwidth的帶寬比,從而得到集合p{p1,p2.......pn}其中pi=Bandwidth/value(Li);
S4.6計算最終流被分配到每條路徑是的路徑概率集合為λ={λ1,λ2.......λn}其中λi=pi/(p1+p2......+pn)。
本發(fā)明進一步提供一種面向SDN數(shù)據(jù)中心網(wǎng)絡(luò)最大概率路徑流調(diào)度裝置,包括:
第一模塊,用于通過交換機獲得流相關(guān)信息;
第二模塊,用于對流進行判斷,判斷要是否是大象流,如果不是大象流,根據(jù)流的信息和控制器維護的全局拓撲信息獲得流的可選路徑,然后為其任意選擇一條路徑;如果判斷流F是大象流,則選擇概率路徑算法為其計算一條滿足流帶寬需求的路徑;
第三模塊,用來在為流F選擇了一條路徑之后將流表項下發(fā)到交換機,流F匹配流表項后根據(jù)動作進行數(shù)據(jù)轉(zhuǎn)發(fā)或者將流F剩余數(shù)據(jù)匹配新流表項進行轉(zhuǎn)發(fā)。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點在于:
1、本發(fā)明的面向SDN數(shù)據(jù)中心網(wǎng)絡(luò)最大概率路徑流調(diào)度方法及裝置,原理簡單、適用范圍廣、易實現(xiàn),可用以均衡數(shù)據(jù)中心網(wǎng)絡(luò)負載,緩解網(wǎng)絡(luò)擁塞等。本發(fā)明考慮到調(diào)度延遲和控制器的開銷問題,流調(diào)度方法針對大象流和非大象流采用不同算法,對于大象流的調(diào)度采用最大概率路徑調(diào)度,而對于非大象流采用ECMP算法進行調(diào)度。本發(fā)明所采用的調(diào)度方法不但可以實現(xiàn)數(shù)據(jù)中心網(wǎng)絡(luò)流的高效、少碎片調(diào)度而且可以達到減少網(wǎng)絡(luò)擁塞、均衡網(wǎng)絡(luò)負載的目的。
2、本發(fā)明的面向SDN數(shù)據(jù)中心網(wǎng)絡(luò)最大概率路徑流調(diào)度方法及裝置,不但考慮了網(wǎng)絡(luò)帶寬利用率以及流帶寬大小而且考慮了帶寬碎片問題,在帶寬利用率和帶寬碎片化之間做了權(quán)衡。
附圖說明
圖1是本發(fā)明在具體應(yīng)用實例中SDN數(shù)據(jù)中心網(wǎng)絡(luò)流量控制調(diào)度框架示意圖。
圖2是本發(fā)明方法的流程示意圖。
具體實施方式
以下將結(jié)合說明書附圖和具體實施例對本發(fā)明做進一步詳細說明。
在本發(fā)明所在的技術(shù)領(lǐng)域中,網(wǎng)絡(luò)鏈路是指網(wǎng)絡(luò)中任意相連節(jié)點之間的連通路徑稱之為網(wǎng)絡(luò)鏈路或鏈路,比如兩交換機之間的鏈路或者交換機與端主機之間的鏈路,可以用字母L表示一條網(wǎng)絡(luò)鏈路。網(wǎng)絡(luò)路徑是指網(wǎng)絡(luò)中從以源節(jié)點到目的節(jié)點之間的通路稱之為網(wǎng)絡(luò)路徑或路徑,一條網(wǎng)絡(luò)路徑可能包含一條或者多條鏈路,可以用字母P表示一條網(wǎng)絡(luò)路徑。帶寬比是指鏈路剩余帶寬與流帶寬的比值稱為帶寬比,可以用字母p表示帶寬比。路徑概率是指滿足流帶寬需求的路徑可能被選擇的概率,可以用字母λ表示路徑概率值。
如圖1所示,是本發(fā)明在具體應(yīng)用實例中SDN數(shù)據(jù)中心網(wǎng)絡(luò)流量控制調(diào)度框架。對于大象流大發(fā)現(xiàn),采用效率高、發(fā)現(xiàn)早的方法Mahout,采用該方法可以在端主機進行發(fā)現(xiàn)并標記大象流。從圖中可以看到控制器可以得到全局拓撲視圖,控制器監(jiān)測模塊可以獲取鏈路的剩余帶寬或者帶寬使用情況,計算好的路徑通過下發(fā)流表的形式下發(fā)到交換機。具體流程為:終端主機監(jiān)測并標記大象流,新到數(shù)據(jù)流匹配交換機中的流表項,如果沒有匹配就會發(fā)送PacketIn消息給控制器,控制器得到包含流包頭信息的PacketIn消息可以獲取響應(yīng)流的信息。控制器根據(jù)流信息為其計算相應(yīng)的路徑,然后通過PacketOut消息下發(fā)到交換機,最后流匹配交換機流表項進行數(shù)據(jù)轉(zhuǎn)發(fā)。
如圖2所示,本發(fā)明的面向SDN數(shù)據(jù)中心網(wǎng)絡(luò)最大概率路徑流調(diào)度方法,其步驟為:
S1:SDN控制器通過OpenFlow交換機獲得流相關(guān)信息。
即:控制器得到交換機發(fā)送的PacketIn消息,根據(jù)消息可以獲得流的相關(guān)信息,比如大象流標識,源地址和目的地址等。
S2:控制器通過一定的方式對流進行判斷,判斷要是否是大象流,然后選擇不同的方法進行路徑的分配。
即:根據(jù)流的相關(guān)信息進而可以判斷該流是否是大象流。根據(jù)控制器維護的全局拓撲信息和流源地址和目的地址信息為流計算路徑集合C1。
在具體應(yīng)用時,根據(jù)實際需要,對于大象流的發(fā)現(xiàn)可以使用端主機判斷并設(shè)置標識的方式、SDN控制器主動采樣分析的方式或者流收集器采樣收集然后控制器分析的方式。
S3:如果不是大象流,根據(jù)流的信息和控制器維護的全局拓撲信息可以獲得流的可選路徑,然后使用ECMP算法為其任意選擇一條路徑。
即:采用ECMP算法為非大象流計算路徑。對從PacketIn消息中獲取的報文頭進行哈希然后對C1的大小取模,根據(jù)結(jié)果選擇預(yù)先編號的路徑。
S4:如果控制器判斷流F是大象流,則選擇概率路徑算法為其計算一條滿足流帶寬需求的路徑。c
即:從集合C1中選擇路徑最小鏈路帶寬滿足流帶寬需求的路徑得集合C2,對集合C2中的每一條路徑的最小帶寬鏈路計算帶寬比,最后根據(jù)帶寬比為每條路徑計算路徑概率。結(jié)合概率選擇機制為流選擇路徑,其中如果C2集合大小為0則轉(zhuǎn)為步驟S3為流計算路徑。
S5:控制器通過計算為流F選擇了一條路徑,然后將流表下發(fā)到OpenFlow交換機,流F匹配流表項然后根據(jù)動作進行數(shù)據(jù)轉(zhuǎn)發(fā)或者將流F剩余數(shù)據(jù)匹配新流表項進行轉(zhuǎn)發(fā)。
即:控制器將計算好的路徑信息通過PacketOut消息下發(fā)到交換機,采用ECMP算法為非大象流計算的路徑和采用最大概率路徑為大象流計算的路徑最終都通過下發(fā)流表的形式完成。流匹配交換機中的流表項進行數(shù)據(jù)轉(zhuǎn)發(fā),通過匹配流表項實現(xiàn)流數(shù)據(jù)轉(zhuǎn)發(fā)調(diào)度。
在具體應(yīng)用實例中,上述步驟S4的具體過程為:
S4.1根據(jù)流F信息確定與源和目的相連的接入層交換機S1和S2。
S4.2根據(jù)控制器維護收集的網(wǎng)絡(luò)拓撲信息選擇S1和S2之間的所有路徑集P{P1,P2........Pn}其中Pi{L1,L2.......Ln},Li為路徑Pi上的一條鏈路。
S4.3在集合C中選擇路徑上鏈路剩余帶寬能滿足流F帶寬Bandwidth需求的路徑,從而得到能滿足流F帶寬需求的路徑集合P1,如果沒有滿足其帶寬需求的路徑則轉(zhuǎn)到第三步繼續(xù)使用ECMP算法計算路徑。
S4.4從集合P1中計算每一條路徑上的剩余帶寬最小的鏈路,從而得到集合L{L1,L2........Ln}其中Li=Pi{L1,L2........Ln}min。
S4.5計算集合L中每條路徑上鏈路剩余最小的帶寬與流F帶寬Bandwidth的帶寬比,從而得到集合p{p1,p2.......pn}其中pi=Bandwidth/value(Li)。
S4.6計算最終流被分配到每條路徑是的路徑概率集合為λ={λ1,λ2.......λn}其中λi=pi/(p1+p2......+pn)。
本發(fā)明進一步提供一種面向SDN數(shù)據(jù)中心網(wǎng)絡(luò)最大概率路徑流調(diào)度裝置,包括:
第一模塊,用于通過交換機獲得流相關(guān)信息;
第二模塊,用于對流進行判斷,判斷要是否是大象流,如果不是大象流,根據(jù)流的信息和控制器維護的全局拓撲信息獲得流的可選路徑,然后為其任意選擇一條路徑;如果判斷流F是大象流,則選擇概率路徑算法為其計算一條滿足流帶寬需求的路徑;
第三模塊,用來在為流F選擇了一條路徑之后將流表項下發(fā)到交換機,流F匹配流表項后根據(jù)動作進行數(shù)據(jù)轉(zhuǎn)發(fā)或者將流F剩余數(shù)據(jù)匹配新流表項進行轉(zhuǎn)發(fā)。
以上僅是本發(fā)明的優(yōu)選實施方式,本發(fā)明的保護范圍并不僅局限于上述實施例,凡屬于本發(fā)明思路下的技術(shù)方案均屬于本發(fā)明的保護范圍。應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理前提下的若干改進和潤飾,應(yīng)視為本發(fā)明的保護范圍。