李春艷
摘要:隨著互聯網的迅猛發展,各種網絡數據量激增,提高云計算平臺各方面性能和效率的研究日益重要。資源調度優化是云平臺整體性能得到優化的重點。利用OpenFlow優秀的網絡資源配置能力,結合云計算平臺本身的業務和任務特質,研究了云計算平臺下的異構資源聯合調度優化方法,從而實現云計算平臺資源的優化配置。
關鍵詞關鍵詞:云計算;OpenFlow;網絡資源動態算法
DOIDOI:10.11907/rjdk.1511650
中圖分類號:TP312文獻標識碼:A文章編號文章編號:16727800(2016)007004202
0引言
隨著互聯網業務量的增大,多媒體業務越來越廣泛應用于網絡通信。網絡服務提供商需要通過各種技術手段為這些信息交流提供技術支持,需要快速反應和處理各種超大型、復雜的網絡數據。數據處理是在眾多分布式服務器集群上進行的[1]。如何管理海量分布式的大型數據、高效處理這些并行的數據計算,處理運算所帶來的代碼異常現象,成為需要解決的重點問題。
1云計算概念
在基于分布式計算和網格技術應用前提下,產生了一種全新的服務計算模型:云計算。美國國家標準技術研究院(NIST)給出定義:云計算是一種通過網絡以方便、按需方式訪問可配置的計算資源共享池(包括網絡、服務器、存儲、應用和服務等)模式,這個資源共享池能以較少的管理開銷和供應商交互,快速配置、給予或釋放各種資源[23]。
云計算將大量的復雜計算放在分布式計算資源上。企業數據中心與互聯網運行非常相似,能實時將資源切換到所需的各種應用上,根據實際需求訪問資源。
云計算平臺具以下優點:①優化了設備處理速度和管理能力;②為各種數據資源提供了強大的運算及存儲支持;③優秀的并行處理能力。由于數據資源可以分布在整個服務器集群上,執行方式為并行處理,縮減了作業執行時間,提高了計算速度;④云計算的核心問題是資源管理,尤其是資源的合理調度與分配。優化資源調度是云計算平臺性能優化的重點。
云平臺資源調度,包括資源發現、調度組織、調度策略、狀態評估以及對資源的再調度等。云計算平臺的任務調度有多種方法:①FIFO。將用戶提交的作業放在一個隊列中,依照先進先出的調度原則進行調度;②Capacity。調度算法對作業平均分配資源,適用于用戶所提交的作業對資源需求相對一致的情況;③Fair。調度算法默認為每個用戶提供了一個獨立的資源池,允許根據用戶組或其它配置來進行資源池劃分。在每個資源池中,采用公平共享的原則為運行的作業分配共享資源;④Deadline Scheduler。調度器主要用于有時間限制的作業,給作業一個必須完成的時間,讓它在該時間內完成;⑤LATE 調度算法考慮到節點異構性,引入了對節點計算能力的衡量標準,選擇較快的節點作為嘗試執行的節點[3]。
2OpenFlow和SDN
隨著網絡規模的不斷膨脹和應用類型的增多,互聯網作為重要的社會基礎設施,在結構和功能日趨復雜的同時,管理能力卻沒有得到同步發展,這使得由傳統網絡體系架構設計缺陷帶來的網絡問題日益明顯。為了解決現有體系結構帶來的諸多問題,各國已經展開關于優化互聯網體系結構的研究,如美國的GENI[4] 、歐盟的FIRE[5] 、日本的JGN2plus[6]和中國的SOFIA[7]等。
OpenFlow技術最早由斯坦福大學的Nick McKeown 教授提出,是斯坦福大學Clean Slate項目資助的一個開放式協議標準,在不影響現有網絡體系架構的基礎上,運行一些實驗性的網絡協議[10]。OpenFlow 將控制功能從單純的網絡設備完全分離出來,在網絡設備上維護流表(flow table)結構,數據的分組也按照流表來轉發,流表的管理過程由中央控制器處理[8]。OpenFlow的這種流表結構將對網絡的處理層次進行扁平化,使其滿足細粒度[9]。在這種控制轉發的分離架構下,中央控制器可對網絡的邏輯控制功能和策略進行動態管理和配置。OpenFlow網絡結構主要由OpenFlow交換機和控制器組成,如圖1所示。
OpenFlow是SDN的核心技術,SDN是Nick McKeown教授等[10]在2007年提出的軟件定義網絡(Software Defined Networking,SDN)。這個定義的提出所帶來的變革引起了學術界和產業界的廣泛關注。SDN是一種新型的網絡架構,它的網絡配置平面獨立于嵌入式結點,以開放軟件模式替代傳統的基于系統嵌入的控制平面,以軟件驅動的中央控制結點方式更好地自動控制整個網絡。SDN技術架構通過把原有封閉的體系解耦為數據平面、控制平面和應用平面,提供了一種可編程的網絡實現,從而革命性地改變了現有的網絡架構[11]。SDN為網絡應用提供了較好的可擴展接口方式,便于進行統一、靈活、高效的網絡控制和管理。同時,SDN通過軟件平臺建設高彈性化和可控的互聯網,在給互聯網發展帶來一定程度變革的同時,也為未來互聯網的發展方式和路線提供了一種創新型思路[11]。SDN已經成為業界的熱門話題,OpenFlow的標準協議成為實現SDN最被看好的方式之一。
3基于OpenFlow的網絡資源動態分配算法
在云計算平臺資源調度算法中,考慮網絡資源參量,設計計算資源、存儲資源、網絡資源的歸一化度量方法,以實現網絡效用的最大化。云計算在線調度策略主要著眼于各種異構化資源的分配管理,以滿足用戶的各種資源請求。資源調度的目的是將任務分配到合適的資源上,在滿足用戶需求的前提下使云計算平臺的任務完成時間盡量少、資源利用率盡量高,以提高云計算平臺的總體服務能力和服務質量。針對OpenFlow系統框架的主要功能和結構特點,提出基于OpenFlow的網絡資源動態分配算法。
3.1網絡資源分配算法基礎
首先要基于網絡動態設計網絡資源分配算法。這需要將控制器上的監控網絡狀態進一步映射為虛擬網絡,然后再運行現有的網絡資源分配算法,每個虛擬節點都以現有的分布式資源分配算法進行運算。根據每個算法對網絡資源的依賴程度不同,控制器會為每個虛擬交換機提供網絡資源使用情況,改良現有的分布式網絡資源分配算法,降低算法復雜度以提升網絡容量。在此基礎上,再進一步設計集中式的網絡資源分配算法。
3.2常用的網絡資源分配算法
在集中式控制網絡中,一般是采用最短路徑算法進行路徑選擇,算法目的是尋找兩節點之間的最短路徑。現在較為常用的路徑算法有:BellmanFord和 Dijkstra。
算法設置:從起始點開始每次都向外搜索,每擴展一次,就計算出起始點到某個目的節點的最短路徑,擴展到最后,就可以計算出起始節點到所有節點之間的最短路徑數值[12]。這種算法的優點是可以求出兩個交換機之間的最短路徑,易于理解和使用;缺點是整個算法設計比較簡單、運算效率不高,適合在小型網絡中使用。
算法設計思想:①每個頂點的距離表示源點到該頂點之間的路徑長度。邊的權值設置成鏈路的帶寬利用率,設定鏈路為雙向;②初始時只有一個源點,需要逐層挑選出從源點到該頂點的全部最短的點,按照先后順序將這些頂點一個個加入到整體路徑中,不斷修正與頂點的距離,才能計算源點到最后頂點的距離。
4改進的分布式網絡資源分配算法
通過集中式設計來求解算法,并考慮網絡的動態變化,同時降低算法的復雜度,提升網絡資源動態分配算法的可用性。針對常用算法的缺點,本文進一步完善了算法。新算法主要包括路徑和節點兩方面設計,使用同時設計路徑規劃的方式來研究網絡資源分配算法,算法設計思想:①選擇所有可能的節點集,并判斷該節點集能否設計出可用的路徑拓撲;②根據網絡節點確定所有備選分發節點集,可以看出分發節點集數量為M(網絡大小);③從所有備選節點集和分發節點集中任選一個節點集和一個分發節點集;④根據這兩個點集構成的拓撲子圖中的每條鏈路,添加原拓撲中的其它點作為測試點集,設計多條不相交路徑來判斷所選擇的節點集和分發點集是否合格,進一步檢測可行的兩個點集是否滿足所有流的需求;⑤如果滿足則把所選擇的節點集、分發節點集作為最終的編碼設計結果輸出,如果不滿足則繼續尋找其它點集的組合直到遍歷完所有組合。