洪偉宏,劉 濤,黃少濱,張萬松
(哈爾濱工程大學計算機科學與技術學院 哈爾濱 150001)
在利用云計算模式提供軟件、框架、硬件服務的過程中,由于要面對客戶環境和自身所處環境的開放性、多樣性、復雜性,需要更多的硬件設備、更加靈活高效的軟件架構、更加有效的管理機制,以提高系統的處理能力、服務能力,這就會使系統的結構越來越復雜,成本越來越高,存在大量的計算任務依賴于云平臺的計算能力、存儲空間和調度機制等。作為一種新型的計算模式,如何更加有效地進行負載均衡是云計算中的重要問題之一。
在云計算環境中,用戶可以通過互聯網應用程序快速地訪問資源,計算機系統具有較高的穩定性,可以同時處理用戶大量的計算請求。典型的云計算系統包括Amazon EC2彈性計算云[1]、Google App Engine[2]。然而隨著基礎設施規模的不斷擴大,大量的應用服務被提供到網絡中,在云計算系統中,計算任務是被分解到一系列單獨的計算節點中,當計算節點面對大量計算任務時,有效的動態負載均衡策略可以提高系統的性能。現有的動態負載策略可以分為以負載狀態為基礎的策略和以資源需求為基礎的策略。為了計算負載,需要獲取計算節點負載信息和任務需求信息,然而這些信息有時難以獲取,從而使現有的動態負載策略的使用受到很大的限制。本文提出一種全新的基于CometCloud[3]平臺的動態負載均衡策略——ALP(自適應負載均衡策略),可以較好地彌補以上兩個策略的不足。
CometCloud是一種基于Comet可調整計算能力大小的虛擬計算云,集成了本地的計算環境和可能需要的公有云服務,并且可以提供支持一系列編程范式和應用需求的抽象機制。CometCloud的體系結構如圖1所示。CometCloud實現了一種基于自主的cloudbridging和cloudbursting的策略,自主cloudbridging不但實現了本地計算環境(數據中心、網絡)的集成,而且實現了公有云服務平臺(Amazon EC2、Eucalyptus)的結合 ; 自主cloudbursting實現了一種能夠解決動態負載、需求高峰和極端需求下的動態應用規模擴展。
CometCloud體系結構包含3個層次,分別為基礎設施層 (infrastructure layer)、服務層 (service layer)和編程層(programming layer)。基礎設施層使用 Chord[4]和 Squid[5]方法用于信息發現,這一層還包括備份和負載均衡服務,可以解決節點動態加入、離開和節點失效問題。服務層提供了一系列自主應用級編程服務,利用元組空間協調模型實現了一個虛擬共享空間的抽象及訪問原語。編程層提供了應用開發和管理的基本框架,支持一系列主控機、工作站模式,由工作站處理主控機產生的任務,主控機與工作站可以通過虛擬共享空間直接進行通信,通過應用程序框架支持任務的調度和監控。
以負載信息為基礎的動態負載均衡方法可以在云中為任務選擇最合適的計算節點,以減少任務的執行時間,獲得最大限度的吞吐量。通過負載信息可計算負載指數(load index),負載指數是動態負載均衡的關鍵因素。
負載指數是度量云計算系統工作負載情況的重要標準,表明系統資源當前的運行狀態,如空閑狀態(無負載或非常小的負載)、重載狀態(不能接受新的任務)和正常狀態(可以接受任務)3種情況。
當任務需求復雜時,通常需要將兩個或多個負載指數集成到一個負載指數中,Branco[6]提出在一個節點中使用n標準化負載信息,形成一個n維負載向量,將負載向量長度作為負載指標。類似負載向量,每個任務都有一個資源需求向量,當收到一個新任務時,每個節點計算任務資源需求向量和負載向量的和,選擇最短的向量作為任務目標節點。Branco的負載指數計算方法如下:


Branco方法可以結合簡單指數的不同優點,在各種應用環境中都有出色的表現。但是其建立在資源需求信息基礎上,負載指數的準確性依賴于資源信息的準確性。如果無法獲得資源需求信息,這種方法是無效的。
Xiaodong Zhang[7]提出了另一種方式,將不同的負載指數集成到Zhang負載指數中。Zhang的負載指數使用內存量RAM作為門限,計算所有任務的最小內存和作為MT,當MT 云計算平臺中的動態負載策略可以分為負載狀態策略和資源需求策略。負載狀態策略是以任務資源需求特征不變和任務需求相似為前提,當這個前提為真時,負載狀態策略會有良好的表現,但在實踐中,云中的任務資源需求不同,這就使得負載狀態策略不適用。 資源需求策略根據任務資源需求信息和節點負載信息,將任務分配到符合任務資源需求且負載最低的節點上。在云計算系統中,任務資源需求差異巨大,任務資源需求特征不斷變化,任務資源信息難以獲得,因此,現存的動態負載均衡策略很難較好地滿足云計算系統的需要。 為了解決動態負載策略中負載狀態策略和資源需求獲取與協調的問題,提出了一種自適應負載模型ALP。ALP由4部分組成:負載監聽器、負載緩存器、負載計算模型和負載數據填充器。負載監聽器通過網絡向Comet Cloud中的工作機發送負載信息請求,工作站得到信息后將CPU使用率、內存使用率、硬盤使用率、工作站ID和工作站名稱回傳給主控機,主控機將得到的負載信息暫時存放到負載緩存器中,供下一層的負載計算模型使用。ALP的體系結構如圖2所示。 在云計算環境中,任務的資源需求特征不斷變化,使用整合負載信息的靜態權重不能準確地反映當前系統的負載狀態。參考文獻[8]表明資源負載信息之間的相關系數可以很好地代表資源當前的性能狀態。因此ALP將資源負載信息和資源平均處理時間的相關系數作為負載指數。負載計算模型從負載緩存器中讀出每一個工作機的負載信息,然后計算工作機的負載指數。負載指數計算方法如下: 其中cpuusage是工作機CPU當前使用率,diskusage是硬盤當前使用率,memoryusage是內存當前使用率。變量XCPU代表CPU使用率,變量Xdisk表示硬盤使用率,變量Xmemory表示內存使用率,Tworker代表工作站平均任務處理時間。 通過上面的計算得出每個工作節點的負載指數,帶入式(5)得出每個工作節點的權重: 動態負載均衡模型中的權重隊列用于保存各個工作節點的權重。當負載計算模型計算出工作節點i的權重后,會調用權重負載數據填充器。負載數據填充器負責將工作節點i的權重注入權重隊列中保存。當主控機接收新任務時會遍歷權重隊列,從隊頭掃描到隊尾找到隊列中的權重的最小值,然后取出這個值,并在隊列中刪除。 比較不同實驗條件下至少連接策略和自適應負載策略在性能方面的差異。在網絡條件相同的情況下,改變任務請求個數,如圖3所示,在任務個數均勻增加的情況下,自適應負載策略的響應時間要比至少連接策略增加得緩慢。圖4所示是在工作量相等的條件下,當工作站的個數以20遞增時,自適應負載策略和至少連接策略的響應時間都會隨之增加,但從圖4中得知,自適應負載策略的響應時間比至少連接策略響應時間少5%~10%。 通過上面兩個實驗可以得出,ALP在效率上優于至少連接策略,自適應策略一方面借助了CometCloud平臺優良的特性,同時定期的權重隊列更新使任務能更好地分配到工作機上,從而自適應負載均衡在性能方面更加出色。 在云計算中,隨著基礎設施的不斷擴大,大量的應用服務被納入網絡中,計算任務被分解到一系列單獨的計算節點中,計算節點的負載問題就特別突出。通過對CometCloud平臺結構的分析,提出一種自適應動態負載均衡方法,用于解決動態負載均衡策略在效率和準確性方面的問題。ALP策略通過自適應負載均衡使用整合工作機負載信息的動態權重,可以較好地反映工作機的工作狀態。在CometCloud云平臺上的實驗證明,ALP方法在對云平臺負載均衡上效果較好。 1 Garfinkel.An evaluation of Amazon’s grid computing services.Cambridge,Harvard University,2007 2 Google App Engine.http://appengine.google.com 3 CometCloud.http://nsfcac.rutgers.edu/CometCloud/CometCloud/CometCloud_Home_Page.html 4 Stoica I,MorrisR,KargerD,etal.Chord:a scalable peer-to-peer lookup service for internet applications.Computer Communication Review,2001(31):149~160 5 Schmidt C,Parashar M.Squid:enabling search in dht-based systems.Journals of Parallel Distrib ution Computer,2008,58(7):962~975 6 Branco K,Santana M,Santana J.PIV and WPIV:two new performance index for heterogeneous systems evaluation.In:Proceedings of the 2006 IEEE International Symposium on Industrial Electronics,Montreal,Que,Canada,2006 7 Zhang Xiaodong,Qu Yanxia,Li Xiao.Improving distributed workload performance by sharing both CPU and memory resources.In:Proceedings of the 20th International Conference on Distributed Computing Systems,Taipei,China,2000 8 Demenico Ferrari,Zhou Songnian.Load index for dynamic load balancing.In:Proceedings of 1986 ACM Fall Joint Computer Conference,Dallas,Texas,USA,1986
3.2 自適應負載模型ALP




4 實驗分析
5 結束語