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