本發(fā)明涉及數據中心網絡應用技術領域,具體涉及一種于鏈路實時負載的SDN動態(tài)負載均衡調度方法。
背景技術:
SDN采用集中式控制策略,控制器具有全網的拓撲視圖,有助于對整個網絡進行統(tǒng)一的管理,進而能實現對網絡流量的實時監(jiān)控和調度,便于實現路徑優(yōu)化和負載均衡等功能,能夠有效的避免網絡中產生擁塞,提高網絡性能和資源利用率。它不僅可以大幅度降低硬件負載均衡設備成本,而且開放、靈活的可編程能力使得網絡的控制能力和自動化管理空前提升,更有利于實現負載均衡。同時,數據中心網絡作為當前信息世界的應用和流量核心所在,時時刻刻均承受著大量的請求訪問、高性能需求和復雜的管理,大量采購的負載均衡器導致了成本和管理復雜度進一步上升。而基于SDN的數據中心網絡負載均衡能有效提高數據中心網絡資源利用率、降低設備管理復雜度。當前基于SDN的數據中心網絡鏈路負載均衡主要是通過控制器對鏈路的周期性監(jiān)控以獲得流量和鏈路的狀態(tài)信息,并為流的選取合適的傳輸路徑實現負載均衡。
W.Braun等人在《2015International Conference and Workshops on,Cottbus,2015:1-5.》上發(fā)表題為“Load-dependent flow splitting for traffic engineering in resilient OpenFlow networks”的文章。該文章提出了流分割策略,將控制器匹配到的大流進行分割后再進行多路徑傳輸。首先設定了一個流速率閾值,當某條大流f的速率超過該閾值時,即判定該流為大流,并需要進行分割。而路徑的計算則是為每對源地址與目的地址計算兩條最短路徑,同時使這兩條最短路徑的相交鏈路最少,而更短的路徑則作為主要的傳輸路徑。
Hui Long等人在《2013 IEEE 27th International Conference on,2013:25-28》上發(fā)表題為“LABERIO:Dynamic load-balanced Routing in OpenFlow-enabled Network”的文章。該文章提出了動態(tài)負載均衡算法LABERIO,該方案采用最大最小剩余帶寬法則為流量選擇最佳下一跳鏈路,將最高負載鏈路上的最大的流調度到負載最小的鏈路上。而針對網絡中一些頻繁調度的大流,該算法為每條流進一步設置了一個標志h,用于表示流被調度后增加的傳輸跳數。該方案在無阻塞全連接網絡和典型的Fat-Tree拓撲中分別進行了仿真實驗,提高了網絡整體傳輸能力減少了時延,并通過更好利用可用資源實現了網絡吞吐量的最大化。
A.Craig等人在《2015 IEEE International Conference on,London,2015:5789-5795》上發(fā)表題為“Load balancing for multicast traffic in SDN using real-time link cost modification”的文章。該文章根據Fat-Tree拓撲的特征,將路徑分為上行路徑和下行路徑,并根據下一跳鏈路負載選擇最佳路徑。當檢測到大流f并進行分割后,再將其分配到路徑中。同時,為了避免擁塞狀況的產生,進一步為鏈路負載設定了一個閾值。當鏈路負載超過該閾值后,則對該鏈路上的流進行調度以均衡負載。該類方案需要將網絡中的大流進行分割,但并沒有提出能有效解決包失序問題的方案,同時重路由路徑僅考慮了下一跳,可能導致網絡負載不均衡,甚至擁塞。
J.Li等人在《2014 IEEE 13th International Conference on,Beijing,2014:527-533》上發(fā)表題為“An Effective Path Load Balancing Mechanism Based on SDN”的文章。該文章基于模糊控制理論提出了模糊綜合評估機制(Fuzzy Synthetic Evaluation Mechanism,FSEM)實現路徑負載均衡,并將算法分成了兩個階段。在網絡初始狀態(tài)時,網絡中并沒有流量,此時使用Top-K最短路徑算法計算出K條最短路徑。當網絡中存在大量流量分布時,則采用FSEM對路徑進行評估,并計算出最佳傳輸路徑。該方案并沒有對流進行任何區(qū)分,而是統(tǒng)一進行路由與調度,不能實現高效的負載均衡調度。
由相關的研究可知,當前的負載均衡方案主要是直接將最高負載鏈路上的最大流調度到最低負載鏈路,并沒有考慮整條鏈路的負載情況,可能由于瓶頸鏈路而造成的局部擁塞。同時,直接對鏈路上的最大流進行調度,不僅可選路徑少,甚至可能由于頻繁調度大流,導致網絡性能的下降。本發(fā)明根據數據中心網絡流量的特征,為鏈路設置一個權重并把所有鏈路負載的標準差作為路徑權重的一個考慮因素。本發(fā)明對鏈路上的負載和流進行周期性監(jiān)控,若某條鏈路上的負載分布不均勻或某條鏈路超載,則優(yōu)先選擇滿足限定條件的大流進度行調度。
技術實現要素:
本發(fā)明旨在解決以上現有技術的問題。提出了一種方法。本發(fā)明的技術方案如下:
一種基于鏈路實時負載的SDN動態(tài)負載均衡調度方法,其包括以下步驟:
101、控制器獲取數據中心網絡拓撲信息和狀態(tài)信息;
102、根據步驟101獲取的網絡拓撲信息和狀態(tài)信息,控制器為網絡中的路徑設置一個權重,并以此作為路徑的選擇依據,從跳數最少的路徑中選擇權重最小的一條作為初始轉發(fā)路徑;
103、計算數據中心網絡負載均衡度,如果負載均衡度大于給定的閾值,返回步驟101;否則,進入步驟104;
104、定位出負載最高的鏈路并檢測該鏈路是否存在大流,如果檢測不到大流,結束;否則,進入步驟105;
105、選擇滿足帶寬限定條件的大流進行調度,若該鏈路存在多條滿足條件的大流,則優(yōu)先調度更大的流,實現動態(tài)負載均衡調度。
進一步的,所述步驟101控制器獲取數據中心網絡拓撲信息是通過鏈路層發(fā)現協議LLDP協議獲取并更新全局網絡拓撲的,當檢測到網絡中存在失效鏈路或節(jié)點時,則將該鏈路或節(jié)點從拓撲視圖中刪除,并為該鏈路上的流重新選擇一條傳輸路徑。
進一步的,所述步驟101控制器收集數據中心網絡的狀態(tài)信息是通過控制器向交換機發(fā)送OFPT_STATS_REQUEST消息,獲取所需的鏈路統(tǒng)計信息和流的統(tǒng)計信息,包括收發(fā)的包數、字節(jié)數以及統(tǒng)計持續(xù)時間。
進一步的,所述步驟102控制器為網絡中的路徑設置一個權重WPath:
其中,m表示鏈路的個數,LFi表示第i鏈路上的空閑負載,鏈路的空閑負載其中Bi表示鏈路i的已占用的帶寬,Ci表示鏈路i的最大。
進一步的,所述步驟103網絡負載均衡度ρ計算公式為:其中,整個網絡的鏈路平均負載Lavg是由等式確定,Li為第i條鏈路上的負載,整個網絡的鏈路最大負載LMax=max{L1,L2,…,Ln}。
進一步的,步驟104流的大小為其中,Mt是在t時刻交換機接收到的流字節(jié)數,Mt+T表示交換機在t+T時刻接收到的流字節(jié)數,T為控制器監(jiān)測統(tǒng)計周期。
進一步的,所述流的大小為將占用5%鏈路帶寬的流設為大流。
進一步的,步驟105所述調度的大流Fr需滿足限定條件:其中ε表示鏈路最高負載門限,Lnew表示新路徑Pnew上負載最高的鏈路lnew的負載,θ表示閾值,C表示每條鏈路的帶寬。
本發(fā)明的優(yōu)點及有益效果如下:
本發(fā)明提出了一種數據中心負載均衡算法,該算法從三個方面實現了負載均衡功能。首先,針對網絡中的路由選擇問題,根據路徑的當前負載狀況和鏈路負載波動為路徑設置了一個權重,即本發(fā)明中將將所有鏈路負載的標準差作為路徑選擇的一個考慮因素,并以此作為路徑選擇依據。在數據傳輸過程中還需要進一步考慮路徑的跳數,有效的保證帶寬時延。其次,算法設置了一個負載均衡度用于衡量網絡負載狀況,當負載均衡度較低時,則判定網絡負載不均衡,此時,將最高負載鏈路的流量調度到其它路徑以均衡全網負載。最后,針對需要調度的流,本算法進一步限定了其流量大小范圍,保證了高效的流調度。調度的流的大小應小于新路徑PNew中的最大可用帶寬,確定避免大流fe調度到路徑PNew后造成鏈路擁塞或負載過高。
附圖說明
圖1是本發(fā)明提供優(yōu)選實施例所使用的拓撲結構示意圖;
圖2為本發(fā)明提供的基于SDN的數據中心網絡負載均衡算法的流程圖;
圖3為本發(fā)明提出的DCLB算法與ECMP、LABERIO算法的平均時延對比圖;
圖4為本發(fā)明提出的DCLB算法與ECMP、LABERIO算法的鏈路帶寬利用率對比圖;
圖5為本發(fā)明提出的DCLB算法與ECMP、LABERIO算法的負載分布對比圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、詳細地描述。所描述的實施例僅僅是本發(fā)明的一部分實施例。
本發(fā)明的技術方案如下:
圖1所示為本發(fā)明所使用的拓撲結構示意圖。本發(fā)明所用拓撲共有20個交換機和16個主機。了區(qū)分不同層次和不同Pod的交換機,因此,對交換機進行了統(tǒng)一與差異化命名。在20臺交換機中共有4臺核心層交換機,即圖中的s101-s104交換機;匯聚層交換機共有8臺,即圖中的s201-s208交換機;邊緣層交換機共8臺,即圖中的s301-s308交換機。共有16臺主機,即圖1中的h1-h16主機。同時,網絡中所有鏈路帶寬為10Mbps,監(jiān)控周期設置為3s,負載均衡度取值0.7。本發(fā)明選擇圖1中Pod1的主機h1和Pod2的主機h5作為觀察對象。
圖2所示為本發(fā)明提出的基于SDN的數據中心網絡負載均衡路由算法的流程圖,具體包括:
第一步:控制器獲取拓撲信息和收集網絡的狀態(tài)信息;
控制器通過鏈路層發(fā)現協議(Link Layer Discovery Protocol,LLDP)協議獲取并更新全局網絡拓撲,當檢測到網絡中存在失效鏈路或節(jié)點時,則將該鏈路或節(jié)點從拓撲視圖中刪除,并為該鏈路上的流重新選擇一條傳輸路徑??刂破飨蚪粨Q機發(fā)送OFPT_STATS_REQUEST消息,以獲取所需的鏈路統(tǒng)計信息和流的統(tǒng)計信息,如收發(fā)的包數、字節(jié)數以及統(tǒng)計持續(xù)時間等。
第二步:根據獲取的網絡拓撲信息和狀態(tài)信息,控制器為網絡中的路徑設置一個權重,并以此作為路徑的選擇依據,從跳數最少的路徑中選擇權重最小的一條作為初始路徑;
控制器為網絡中的路徑設置一個權重WPath:
其中,LFi表示第i鏈路上的空閑負載。鏈路的空閑負載其中Bi表示鏈路i的已占用的帶寬,Ci表示鏈路i的最大。
第三步:進一步設置了一個負載均衡度衡量網絡負載均衡程度,并判斷負載均衡度是否滿足給定的閾值,如果不滿足條件,重新收集網絡狀態(tài)信息;否則,進入第四步;
網絡負載均衡度ρ計算公式為:其中,整個網絡的鏈路平均負載Lavg是由等式確定,Li為第i條鏈路上的負載。整個網絡的鏈路最大負載LMax=max{L1,L2,…,Ln}。
第四步:針對第三步負載均衡度小于給定閾值的限制情況,定位出負載最高的鏈路并檢測該鏈路是否存在大流,如果檢測大流,方法結束;否則,進入第五步;
流的大小為其中,Mt是在t時刻交換機接收到的流字節(jié)數,Mt+T表示交換機在t+T時刻接收到的流字節(jié)數,T為控制器監(jiān)測統(tǒng)計周期。本發(fā)明將占用5%鏈路帶寬的流設為大流。
第五步:針對檢測到的大流滿足限定的條件,選擇滿足限定條件的大流進行調度,若該鏈路存在多條滿足條件的大流,則優(yōu)先調度更大的流,實現高效的負載均衡;
調度的大流Fr需滿足限定條件:其中ε表示鏈路最高負載門限,Lnew表示新路徑Pnew上負載最高的鏈路lnew的負載,θ表示閾值,C表示每條鏈路的帶寬。本發(fā)明中若鏈路上存在多條滿足調度條件的大流,則優(yōu)先調度最大的流。
對本發(fā)明提出的DCLB算法的性能進行對比和分析,使用平均傳輸時延、鏈路帶寬利用率和負載分布三個網絡性能指標與ECMP、LABERIO算法進行對比。
在本實施例中,圖3給出本發(fā)明所提DCLB算法與ECMP、LABERIO算法的平均時延對比圖。由圖3可見:所提實施方法DCLB算法較ECMP算法和LABERIO算法所得到的平均時延更穩(wěn)定且較小。由于ECMP算法沒有考慮鏈路狀況,使得網絡中部分鏈路的負載過高,進而影響了報文傳輸的時間和穩(wěn)定,導致傳輸時延的快速上升和較大抖動;LABERIO算法只考慮了最佳的下一跳鏈路,隨著網絡中負載的增加,網絡中存在瓶頸鏈路,因此導致時延增加。
在本實施例中,圖4給出本發(fā)明所提DCLB算法與ECMP、LABERIO算法的鏈路帶寬利用率對比圖。由圖4可見:所提實施方法DCLB算法的帶寬利用率優(yōu)于ECMP算法和LABERIO算法。由于ECMP算法是隨機選擇路徑,多條大流在同一條鏈路中碰撞,導致Pod內部產生熱點路徑,因此,核心交換機與匯聚層交換機鏈路的帶寬利用率較低;LABERIO算法是基于單跳貪婪策略,且僅在鏈路負載超過門限閾值時實現對流的調度,不能主動均衡鏈路負載,因此,在網絡負載較高的情況下,鏈路利用率較低。
在本實施例中,圖5給出本發(fā)明所提DCLB算法與ECMP、LABERIO算法的負載分布對比圖。由圖5可見:所提實施方法DCLB算法較ECMP算法和LABERIO算法所得到的核心交換機的負載分布更均勻。在ECMP算法下,核心交換機的負載范圍為[2008,3107]Mbit,平均負載為2505Mbit,方差為461.4。在LABERIO算法下,核心交換機的負載范圍為[2503,3014]Mbit,平均負載為2718Mbit,方差為254.5。在DCLB算法下,核心交換機的負載范圍為[2638,3006]Mbit,平均負載為2837Mbit,方差為157.9。通過方差的比較,可以發(fā)現DCLB算法的負載分布得更加均勻。
以上這些實施例應理解為僅用于說明本發(fā)明而不用于限制本發(fā)明的保護范圍。在閱讀了本發(fā)明的記載的內容之后,技術人員可以對本發(fā)明作各種改動或修改,這些等效變化和修飾同樣落入本發(fā)明權利要求所限定的范圍。