肖軍弼 吳曉菲 陳 松
(中國石油大學(華東)計算機與通信工程學院 山東 青島 266580)
基于Fat-tree拓撲的數據中心網絡設計的兩個原則:資源超額供給、設備鏈路冗余設計,有悖于低碳節能的目標[1-2]。首先,高容量網絡特別適用于最壞情況或繁忙時間負載,但在大多數時間數據中心流量遠低于峰值[3]。具體而言,數據中心網絡的白天流量和夜晚流量變化很大——白天高峰、晚上低谷。網絡繁忙時的設備、鏈路利用率尚不足30%,很多網絡空閑時甚至不足5%[1]。此外,數據中心網絡需要在保證網絡吞吐量的同時為上層提供高性能和高容錯的路由轉發服務,因此在低負載情況下仍將維持很多無數據流通的“富連接”,這將使得多數設備及鏈路處于閑置狀態,造成大量電能的無效浪費。網絡中能量浪費和能耗成本的約束往往成為限制其規模和服務能力的瓶頸[1],節省網絡能耗、構建綠色網絡成為計算機網絡領域亟需解決的研究課題。
在降低數據中心網絡(DCN)的能量消耗方面,相關學者提出以下方案[3-6]:當DCN處于低負載情況時,動態整合網絡流量,并將無數據流通的交換機休眠,以節省整體網絡能耗。然而,該方案的研究仍局限于傳統網絡思維方式,基于傳統網絡架構的DCN具有純分布式控制、控制與轉發高度耦合的特點,管理者不能從全局的角度對包傳遞的整體路徑進行指定,只能通過包頭標識符的方式對數據包進行有限地約束或優化。軟件定義網絡作為一種新型網絡架構,打破了傳統網絡設計理念[7],為數據中心能耗問題提供了新的解決方案。SDN具有強大的集中管控能力,控制器通過實時監控并控制交換機狀態,能夠實現在保證網絡服務質量的前提下調度數據包的轉發,并休眠閑置的交換機,從而實現綠色節能。
本文基于SDN架構理念,通過開發ESPP系統計算通信主機之間的最優數據包轉發路徑,動態整合網絡流量,分析可進入休眠狀態的設備,達到節約DCN能耗的目的。在設計并實現該系統時,需要在仿真環境下搭建基于Fat-tree拓撲的DCN,設計節能路徑算法,建立傳統網絡與節能網絡進行相同數據轉發的能耗對比模型,同時借助控制器進行全網流量監控,在保證網絡可靠性的基礎之上分析出無數據流通的交換機。
ESPP是一個基于客戶端開發的系統,主要由客戶端程序、SDN控制器以及底層網絡設備三部分組成。系統整體架構如圖1所示。

圖1 系統整體架構
客戶端使用MVC設計模式,用戶通過客戶端可以查看全局網絡拓撲、下發指定通信主機之間的最優路徑策略、對比傳統網絡與節能網絡進行相同數據轉發的能耗情況。該系統中的SDN控制器采用Floodlight開源控制器(為使功能完全,對該控制器稍做修改),南向接口基于OpenFlow v1.3協議[8],該協議是當前控制平面與數據平面之間最具影響力的南向接口協議。Floodlight控制器通過南向接口與Mininet模擬生成的虛擬網絡通信,完成網絡信息的獲取以及轉發策略的下達,客戶端程序則通過北向標準化接口REST API以及為強化程序功能開啟的TCP/UDP通道與控制器進行交流。
經概要分析后,節能路徑規劃系統的具體功能模塊如圖2所示。

圖2 系統功能模塊
根據功能模塊劃分得出系統主要包括以下具體功能:
系統的拓撲信息展示功能是系統的基礎功能,用戶通過該功能可以查看整個網絡的物理拓撲狀態,包括設備及鏈路。系統采用圖形化界面顯示拓撲結構,界面圖標分布均勻,方便用戶查看。此外,當用戶進行相關節能路徑的下發時,用戶可通過該功能查看當前已完成下發的路徑信息。
系統的節能路徑計算功能是系統的核心功能,該功能通過列表形式顯示指定通信主機之間的所有可達路徑,并且通過節能路徑算法對所有路徑進行排序,以找出保證網絡服務質量的能耗最低的最優路徑,用戶便能使用該條路徑完成數據包的轉發工作。
系統的數據流實時展示功能包括能耗監控和流量監控兩部分,該功能將虛擬網絡中交換機的數據包流動情況以及實時耗能情況展示給用戶,在節能策略下發、數據流整合完成之后,用戶通過該功能所呈現的數據可以輕松得出當前處于活躍狀態的交換機,則剩余交換機即可進入休眠狀態。
系統的網絡能耗對比功能將計算并對比傳統網絡與SDN網絡進行相同數據轉發的能耗情況,該功能借助搭建好的能耗度量模型分別計算兩種網絡架構的能耗度量值,驗證系統的節能有效性。
系統的其他功能主要是為優化系統工作、方便用戶使用而設計的,比如系統配置功能的作用是當軟件中的部分數據無法直接獲得(例如控件大小位置,拓撲圖標位置)或參數需要額外設定(能耗計算模塊系數)時,由配置文件直接給出,具有優化代碼編程的優點;自動調節功能則是實現無人工干預、系統自動工作的基礎,該功能在Floodlight控制器發送數據包以后,自行分析數據包,進行最優路徑計算,并完成節能策略的下發。
該節能路徑規劃系統能夠正常、快速、穩定地運行,界面簡潔明晰,易于用戶使用;系統具有良好的可移植性,兼容Windows和可視化Linux;系統還具有良好的可擴展性,適應所部署的應用環境以及應對將來功能模塊的添加。
本文提出了一種適用于基于Fat-tree拓撲的DCN的節能路徑算法ESPA(Energy-Saving Path Algorithm)。該算法的目標是計算指定通信主機之間發送數據包的路由,在滿足網絡性能的基礎之上,路由將盡可能涉及之前已使用的交換設備,使得新喚醒的交換機的數量越少越好,提高交換機的利用率。
ESPA的基本思想如下:首先,基于深度優先搜索的思想,采用遞歸的方法遍歷計算出指定通信主機之間的所有可達的無環路徑,稱為全路徑。其次,計算路徑的瓶頸鏈路帶寬,此處是為了保證DCN的網絡吞吐量,以免網絡性能受到影響。第三,網絡設備的休眠與激活狀態轉換需要耗費一定的能量,為了提高網絡設備的利用率,并在滿足通信需求的狀況下開啟盡可能少的網絡設備,計算如果使用當前路徑會額外喚醒的交換機數量。最后,根據中間兩步的計算結果以及路徑最短原則對全路徑進行排序,選擇排序結果中的第一條路徑(若排序結果中有多條路徑滿足條件,則人為選擇第一條路徑),并將該條路徑所對應的流表下發到Floodlight控制器中用于指導數據包的轉發。ESPA流程圖如圖3所示。

圖3 節能路徑算法流程圖
算法1節能路徑算法:ESPA(G,F)
輸入:
G:數據中心網絡拓撲
F:網絡流集合
輸出:
Rf:F中網絡流的最優傳輸路徑
Begin
1 R←全路徑計算
2 H←計算吞吐率
3 鏈路瓶頸帶寬最大
4 交換機利用率最高
5 路徑排序
6 人為選擇排序結果中的第一條路徑
7 return Rf
End
該系統中的傳統網絡與節能網絡的能耗對比功能需要建立能耗度量模型,以此比較兩者進行相同數據轉發的能耗情況。該模型中的能耗度量算法所使用的計算公式由三部分構成,分別是控制器的支撐能耗,記為F(C);單個活躍交換機的支撐能耗,記為S(C); 單個活躍端口的支撐能耗,記為P(C)。在使用同種交換機的情況下,例如該系統中使用的交換機均為Open vSwitch(OVS)交換機,則能耗計算公式為:SUM(C)=F(C)+X×S(C)+A×P(C),其中X為活躍交換機數量,A為活躍端口的數量。
通過閱讀相關文獻并分析[3,9],在本系統中的簡化能耗模型設定單個活躍交換機的支撐能耗為9(計算總能耗時需要首先判斷交換機中是否有流表,沒有流表則代表該交換機處于休眠狀態,計算過程需將此類交換機排除),設定單個活躍端口的支撐能耗為1。SDN網絡架構中的控制器支撐能耗設定為20,用以支撐控制器的運作。對于傳統架構網絡,所有交換機均處于喚醒狀態,同樣交換機的所有端口也都是喚醒狀態,并且傳統網絡中無控制器參與,故其控制器支撐能耗為0。
搭建系統環境是開發節能路徑規劃系統中至關重要的一步,環境搭建過程如圖4所示。

圖4 系統環境搭建
由于本系統的結構、功能以及測試過程均較為復雜,為降低復雜度,在測試部分主要針對該系統的節能路徑計算與網絡能耗對比兩大功能進行闡述。測試中所用的模擬數據中心網絡Fat-tree拓撲如圖5所示,該拓撲由Mininet網絡仿真工具搭建。

圖5 模擬數據中心網絡Fat-tree拓撲
默認情形下,Floodlight控制器中的Forwarding模塊是保持開啟的,為避免該模塊對節能路徑下發產生影響,需要在客戶端內將其關閉,則此時拓撲中的各主機無法互通,通信情況如圖6所示。下面以主機H1到主機H8為例進行系統節能路徑計算功能的測試。

圖6 主機通信情況圖1
在客戶端程序中輸入“1-8”,代表“主機H1到H8”,系統將根據拓撲首先計算出主機H1到H8的所有可達無環路徑,結果顯示從H1到H8共有16條路徑,如圖7所示。依照算法流程圖,接下來系統將按照路徑瓶頸鏈路帶寬的大小、新喚醒交換機的數量以及長度,對H1到H8的所有可達無環路徑進行排序,并產生列表式的排序結果,則排序結果中的第一條路徑即為節能路徑。最后,選擇該條路徑進行H1到H8的數據包的轉發策略的下發,此時主機H1與H8可以相互Ping通,其他主機之間無法互通,主機通信情況如圖8所示。

圖7 主機H1到H8的全路徑

圖8 主機通信情況圖2
測試結果表明,系統使用節能路徑算法能夠計算出指定通信主機之間的節能路徑:H1→S9→S6→S3→S8→S12→H8,并通過該路徑下發節能策略,如圖9所示。接下來,將繼續進行傳統網絡與節能網絡的網絡能耗對比測試,驗證系統的節能有效性。

圖9 節能流表下發圖
系統在下發“H1→S9→S6→S3→S8→S12→H8”流表的情況下,客戶端的“流量監控”以及“能耗監控”功能將顯示:交換機1、2、4、5、7正處于休眠狀態;而交換機3、6、8、9、10、11、12處于激活狀態。由于9、10、11、12交換機是邊緣交換機,需要時刻監聽主機數據包,故不能進入休眠狀態。此外,當前下發的節能路徑中的交換機為9、6、3、8、12,所以這些交換機要處于活躍狀態。
在該路徑的基礎之上, 引入網絡負載程度不同的多條流量進行系統的節能效果測試,依據ESPA節能路徑算法調度各條流量,使流量盡可能通過已經處于活躍狀態的交換機進行轉發,而無需重新喚醒當前休眠的交換機,以規避交換機進行休眠-活躍狀態切換所產生的能耗(由于該部分能耗較少,故在本文設計的簡化能耗模型中省略)。
客戶端的“能耗對比”功能將根據前文所述的能量度量模型,計算傳統架構網絡與SDN架構節能網絡下完成一系列數據包轉發的系統能耗,傳統網絡下的能耗由全部交換機與全部端口的數據計算得來,而SDN網絡的能耗由活躍交換機、活躍端口以及控制器支撐能耗組成。
在模擬的數據中心網絡Fat-tree拓撲中,系統針對所輸入的不同流量,進行最優路徑選擇,并計算相應網絡能耗。經過對一系列能耗數據的處理匯總得出圖10,該圖顯示了在進行相同數據轉發時,SDN架構節能網絡相比于傳統架構網絡的能耗節省情況。該圖中的折線表示在網絡拓撲固定的情況下,當數據中心網絡處于低負載狀態時,即網絡較為空閑,SDN架構網絡能夠顯著降低整個網絡的能耗,達到綠色節能的目的。但隨著網絡負載的增加,節能效果將逐漸下降,這是由于為保證網絡服務質量,需要更多的交換機參與數據包的轉發工作,所以處于休眠狀態的交換機的數量將會越來越少。

圖10 SDN網絡相比于傳統網絡的網絡節能情況
本文以數據中心Fat-tree網絡下的節能路徑計算以及網絡能耗對比為主要研究內容,設計了ESPP:基于SDN的節能路徑規劃系統。該系統基于SDN架構和OpenFlow協議,通過REST API與控制器交互,獲取全網拓撲信息、計算指定通信主機之間的節能路徑并指導控制器根據節能路徑計算結果下發流量調度策略,降低數據中心網絡能耗,實現綠色節能環保。較之其他基于傳統網絡思維的節能技術,本文提出的基于SDN的節能路徑規劃更為靈活可靠,借助控制器強大的集中管控特點,能夠在保證網絡服務質量的前提下動態整合網絡流量,降低網絡流量對大多數交換機的依賴程度,并將沒有流量的交換機置于休眠狀態,切實降低網絡能耗。針對數據中心網絡中的能耗度量模型,在后續工作中將對該方面予以完善,模型中的能耗影響因子將更加全面,以進一步增強系統的可靠性。