曹紹華,張 斌,張培穎
(中國石油大學(華東) 計算機與通信工程學院,山東 青島 266580)
在如今的網絡架構中,隨著互聯網用戶數量的增加、現實生活對互聯網依賴度的提高,網絡工程師不斷地豐富和完善傳輸層應用層協議,強大的IP協議棧雖然足以支撐龐大的上層網絡架構,但其標準化和廣泛化也使得整體網絡架構的性能升級受到限制。采用新的網絡體系來替代現有的網絡體系是行之有效的一種方法,從設計之初對網絡架構的功能與性能進行改良,可以徹底達到提高性能的目的。軟件定義網絡(Software Defined Network,SDN)技術應運而生。SDN[1-2]具有以下3個基本特征。
(1)控制和轉發分離:指轉發平面由受控轉發的設備組成,轉發方式以及業務邏輯由運行在分離出去的控制面上的控制應用所控制。
(2)控制平面與轉發平面之間的開放接口:指SDN為控制平面提供開放可編程接口。通過這種方式,控制應用只需要關注自身邏輯,而不需要關注底層更多的實現細節。
(3)邏輯上的集中控制:指邏輯上集中的控制平面可以控制多個轉發面設備,也就是控制整個物理網絡,因而可以獲得全局的網絡狀態視圖,并根據該網絡狀態視圖實現對網絡的優化控制。這從概念上改變了人們對網絡設備的客觀理解,不再單單是傳統意義上的路由器與交換機等單純的二三層設備。 在SDN的網絡架構中可以使用控制器和交換機的結構(如Openflow Controller和Openflow Switch[3-4])對控制層和轉發層進行分離。通過控制器進行數據流和網絡環境的判別、采集、下發;設備硬件歸一化,硬件只關注轉發和存儲能力,與業務特性解耦;網絡的功能全部由軟件實現,更好地對網絡進行監測和控制,從而在一定程度上提高網絡性能。

圖1 SDN網絡架構
同時,SDN技術與現有網絡環境具有良好的兼容性,在數據中心[5]內采用SDN技術構建網絡來提高網絡性能,就是一種改良網絡架構的方案。數據中心在其出口帶寬一定的情況下,會出現多個業務競爭出口帶寬,導致關鍵業務不能夠分配到足夠帶寬,從而大大降低服務質量。如何及時靈活地分配每個業務的帶寬是解決問題的關鍵所在。因此,采用SDN技術來組織數據中心網絡內環境,對數據中心的業務進行保障,具有相當重要的現實意義與研究價值。本文針對SDN構建的數據中心提出了一種多業務環境下的帶寬保障算法。
在數據中心帶寬保障方面,研究人員提出了一些適合數據中心多業務環境下帶寬保障的解決方案,如ATBG算法[6]、基于合作博弈的帶寬分配策略[7]、Netstitcher[8]等。
ATBG算法將數據中心的業務根據帶寬敏感度和延遲敏感度劃分為三類,根據已知的業務類型、業務帶寬需求、源地址以及目的地址進行業務帶寬保障。這種方法適用于業務帶寬需求變化較小的環境,若高帶寬敏感度的業務帶寬需求發生較大變化時,則會導致關鍵業務不流暢或帶寬資源的浪費。當一個服務器主機同時在不同端口上提供多個服務時,ATBG算法只根據源地址以及目的地址無法確定唯一的需保障的業務,會導致帶寬保障無法達到預期效果。
基于合作博弈的帶寬分配策略是將多個匯聚流對帶寬分配的競爭行為建模為一個合作博弈,通過尋求此博弈的納什談判解來確定優化的帶寬分配策略,權衡各匯聚流的最小帶寬,保證帶寬分配的公平性。最優化的帶寬分配策略需要多次迭代收斂獲得,且選取的基帶寬合適與否影響迭代的周期。方案中的CGBA策略,雖然具有較高帶寬分配滿足度和較高公平性,但其是以犧牲一定計算復雜度為代價的,若應用到實際數據中心場景,需要考慮設備性能及帶寬分配延時問題。
Netstitcher通過獲取資源信息和帶寬的使用情況,使用存儲轉發算法(Store and Forward),優先傳輸延遲敏感度高的數據,延遲敏感度低的數據會被暫存,在帶寬資源有空閑時傳輸,根據帶寬的使用情況進行實時的調整。此方案通過調度策略對帶寬在時間上進行了分配,減小了其他業務對延時敏感度高的業務的影響,但是對業務流量的劃分粒度較大,沒有充分考慮不同流量對于帶寬需求的差異。
在基于優先級的帶寬保障算法中,業務的優先級是對業務帶寬保障順序的約束,在多個業務并行的數據中心,若總帶寬只能滿足其中部分業務的需求,需要通過區分業務的優先級,在保障高優先級業務帶寬的前提下,再保障優先級次之的業務帶寬,盡可能在保障業務的同時提高帶寬利用率。
由于不同的業務在服務器中通過網絡端口與客戶端進行通信,因此使用服務器IP地址+服務提供應用的網絡端口號來區分業務。業務優先級范圍為0~255,數字越大優先級越高,其中0級代表不對業務進行帶寬保障,將其加入到默認隊列。為此隊列分配一個大于0的帶寬,以保障所有業務不會出現中斷。
研究的數據中心模型假定滿足以下條件:
(1)數據中心有唯一對外出口,數據出入均通過一個交換機,出口鏈路帶寬值一定。
(2)數據中心同時提供多種業務的數據服務,如FTP服務、視頻點播服務、語音通話服務,業務的延遲敏感度不同,且不同時段業務的帶寬需求可能有較大變化。
(3)數據中心提供的數據服務數量會產生不定變化,如某一時段要求關閉某個服務或新增服務。
(4)數據中心使用基于SDN的網絡架構。

圖2 數據中心模型
2.2.1業務隊列
算法在系統中保持兩個數據結構隊列,即帶寬保障隊列和非帶寬保障隊列。帶寬保障隊列中按照業務優先級從高到低的順序存放需要進行帶寬保障的業務信息,非帶寬保障隊列存放不進行帶寬保障的業務信息(優先級為0的業務不進行帶寬保障)。
業務類 class Business_class{
IP
//業務ip地址
Port
//業務端口
Prio
//業務優先級
QueueId
//對應交換機隊列Id
FlowId
//對應交換機流表Id
Bandwidth_guara
//保障帶寬
Bandwidth_last
//最近記錄帶寬
}
2.2.2交換機端口隊列
通過下發流表為不同優先級的業務分配對應的交換機端口隊列,利用交換機端口隊列的最小速率和最大速率限制業務的帶寬。
將所有不進行帶寬保障的業務分配到同一個默認隊列中,該隊列設置最小速率,以保證不進行帶寬保障的業務不會中斷。
2.2.3業務可用帶寬VB
對于每個進行帶寬保障的業務,業務可用帶寬VBi與總帶寬T、優先級較高的業務保障帶寬BWj和默認隊列帶寬BW0有關,計算公式如下:

(1)

2.2.4最近記錄帶寬LBW
最近記錄帶寬:記錄最近一次業務保障帶寬變化時業務實際占用的帶寬值。
2.2.5業務保障帶寬BW
業務保障帶寬需要根據業務當前占用帶寬CBW和VBi計算得到。由于無法得知業務對帶寬的實際需求,系統中采用逐步逼近的方法來得到滿足保障業務需求的帶寬值。假設在業務可用帶寬充足的情況下,將業務保障帶寬設為大于當前業務占用帶寬的值,當下次檢測此業務帶寬時,如果業務占用的帶寬接近于業務保障帶寬,則說明當前業務保障帶寬不能滿足業務對帶寬的實際需求,此時就需要增大業務保障帶寬,直到業務占用帶寬不再出現明顯增長,說明當前業務占用帶寬接近于業務對帶寬的實際需求。業務保障帶寬需要大于業務對帶寬的實際需求,以防止業務帶寬需求增長導致系統不能及時為業務分配足夠帶寬。由于業務可用帶寬的限制,系統中為每個業務設置的業務保障帶寬不能大于VBi。
2.2.6可忽略帶寬浮動值a
帶寬浮動值小于可忽略帶寬浮動值時,認為業務實際需求的帶寬沒有發生變化,避免因帶寬正常浮動而引起算法被頻繁執行。
2.2.7基于優先級的業務帶寬保障
每間隔一段時間對所有帶寬保障的業務按照優先級由高到低的順序進行帶寬使用情況的檢測,并根據CBW與LBW計算帶寬浮動值α:
(2)
若α大于a,則認為業務實際需求帶寬發生變化,根據CBW和VBi重新計算業務保障帶寬。當某個業務的BW發生變化時,優先級小于這個業務優先級的所有業務的BW需要重新計算。
若計算得到的BW等于VBi且不為零(業務可用帶寬小于或接近于業務實際需求帶寬)時,有兩種處理策略:一是將此業務和優先級更小的業務加入到默認隊列,并將此業務的可用帶寬分配給默認隊列;二是將業務可用帶寬全部分配給此業務。假設加入到默認隊列中的業務平分默認隊列帶寬,通過計算兩種策略中此業務能夠分得的帶寬值,選擇業務能夠獲得帶寬值較大的策略執行。

圖3 基于優先級的業務帶寬保障業務流程圖
為了驗證基于優先級的帶寬保障算法的性能,本文使用Mininet[9]建立模擬數據中心網絡拓撲進行測試。
測試使用VMware Workstation部署Ubuntu13.10虛擬機,并在Ubuntu中安裝Mininet,使用Mininet建立自定義拓撲來完成對數據中心的模擬。利用 Xterm 命令在Mininet內開啟不同的主機節點,根據Mininet的特性,每一個主機節點都可以看作是一個獨立、同系統、同內核的主機服務器節點,使用VLC軟件和Vsftpd 在服務器節點上部署視頻服務器或FTP服務器。控制器使用開源Floodlight[10]控制器,加入自定義的帶寬保障模塊。
對算法進行測試時,使用未加入帶寬保障模塊的控制器進行測試作為對照,對測試結果進行比較分析。
圖4為在使用帶寬保障模塊的情況下,測得的FTP服務和視頻服務的傳輸速度隨時間的變化曲線。測試中規定視頻服務優先級高于FTP服務,用戶主機先請求視頻服務,一段時間后請求FTP服務。在FTP服務流量開始傳輸時視頻播放出現卡頓,此時FTP服務和視頻服務爭奪帶寬資源。控制器自定義的帶寬保障功能將視頻服務的流量加入到帶寬保障隊列,通過不斷調整帶寬使隊列的最小速率可以滿足視頻服務的需求,視頻播放恢復流暢,FTP傳輸速度相應下降。

圖4 使用基于優先級的業務帶寬保障兩個業務對比圖
圖5為在不使用帶寬保障模塊的情況下,測得的FTP服務和視頻服務的傳輸速度。

圖5 不使用基于優先級的業務帶寬保障兩個業務對比圖
以上兩個實驗表明了基于優先級的帶寬保障算法能較好地保障優先級較高的視頻服務占有充足的帶寬資源,限制了FTP占用的帶寬,使用戶的視頻播放不會出現卡頓。
從實驗結果及數據分析上來看,應用 SDN 技術實現區分業務的帶寬保障,是數據中心重要業務帶寬保障的一種較為有效的解決方案。通過SDN控制器的帶寬保障模塊,根據業務的優先級對高優先級的業務優先執行帶寬保障,為不同的業務流量分配不同的隊列,向交換機下發流表調整轉發策略,保障高優先級業務的帶寬需求,從某種程度上提高了整個網絡的處理能力和效率。在本實驗中為了達到實驗效果,交換設備帶寬設置得相對較小,實際網絡中心的物理拓撲與模擬的仿真數據中心在性能上存在較大的區別,模塊的適用性還需要進一步測試。
[1] 畢軍. SDN體系結構與未來網絡體系結構創新環境[J].電信科學, 2013, 29(8): 6-15.
[2] 張順淼,鄒復民. 軟件定義網絡研究綜述 [J].計算機應用研究, 2013, 30(8): 2246-2251.
[3] WANG K C.Floodlight controiler[EB/OL][2018-01-11].https://floodlight.atlassian.net/wiki/spaces/floodlightcontroller/overview+.
[4] OpenFlow. http://www.openflow.org/.
[5] 魏祥麟,陳鳴,范建華,等.數據中心網絡的體系結構[J]. 軟件學報, 2013, 24(2): 295-316.
[6] 曹紹華,張鑫.面向業務的SDN網絡帶寬保障研究[J].計算機工程與應用, 2016, 52(22): 127-132.
[7] 孟飛,蘭巨龍,胡宇翔. 基于合作博弈的數據中心骨干網帶寬分配策略[J].計算機研究與發展, 2016, 53(6): 1306-1313.
[8] LAOUTARIS N, SIRIVIANOS M, YANG X, et al. Inter-datacenter bulk transfers with netstitcher [J].ACM SIGCOMM Computer Communication Review, 2011, 41(4):74-85.
[9] 李艷,郝志安,李寧,等.基于mininet的SDN架構仿真研究[J].計算機與網絡, 2014 (5): 57-569.
[10] 黎進都,時向泉.基于Openflow的FloodLight控制器實現研究[J].中國電子商情(通信市場),2014 (1): 70-75.