王明乾 劉建斌
摘要:本文針對(duì)數(shù)據(jù)中心云資源虛擬化以及所承載的應(yīng)用呈現(xiàn)出多用戶、異構(gòu)化等特性,分析服務(wù)器多種資源間分配不均衡的問(wèn)題,建立了云資源調(diào)度模型,提出了云資源均衡調(diào)度方法,提高了面向數(shù)據(jù)中心的基礎(chǔ)設(shè)施資源利用率。
關(guān)鍵詞:云資源;調(diào)度模型;調(diào)度方法
1 引言
隨著信息技術(shù)和互聯(lián)網(wǎng)的急速發(fā)展,數(shù)據(jù)量呈現(xiàn)高速增長(zhǎng)趨勢(shì),從而導(dǎo)致了數(shù)據(jù)處理能力的相對(duì)欠缺。但與此同時(shí)數(shù)據(jù)中心的計(jì)算資源的利用率一直處于不平衡的狀態(tài),大量計(jì)算設(shè)備和存儲(chǔ)設(shè)備長(zhǎng)期處于閑置狀態(tài)。如何實(shí)現(xiàn)資源的高效共享以應(yīng)對(duì)大數(shù)據(jù)高速增長(zhǎng)的勢(shì)頭,是當(dāng)前亟需解決的問(wèn)題。在這種發(fā)展背景下,云計(jì)算應(yīng)運(yùn)而生。作為云計(jì)算的重要應(yīng)用研究,數(shù)據(jù)中心正在推動(dòng)一系列的技術(shù)創(chuàng)新來(lái)實(shí)現(xiàn)云計(jì)算的按需提供、彈性可擴(kuò)展以及海量數(shù)據(jù)存儲(chǔ)等關(guān)鍵特性。
2 云資源調(diào)度需求分析
作為數(shù)據(jù)中心架構(gòu)的核心,虛擬化技術(shù)的主要作用是提供基礎(chǔ)設(shè)施作為一種服務(wù),實(shí)現(xiàn)多租戶資源分配,提高企業(yè)的資源利用率,將傳統(tǒng)數(shù)據(jù)中心向云計(jì)算遷移。虛擬化技術(shù)通過(guò)從物理設(shè)備中抽象計(jì)算、網(wǎng)絡(luò)和存儲(chǔ)服務(wù)來(lái)實(shí)現(xiàn)數(shù)據(jù)中心的按需資源供應(yīng),通過(guò)在物理機(jī)器上構(gòu)建虛擬單元,將物理資源重新整合,更靈活的提供資源動(dòng)態(tài)供應(yīng),有效提髙服務(wù)器利用率,減少能耗成本[1]。對(duì)于數(shù)據(jù)中心來(lái)說(shuō),合理高效的進(jìn)行資源調(diào)度的優(yōu)化是必不可少的。
為了使數(shù)據(jù)中心的資源得到更有效的使用,當(dāng)任務(wù)到達(dá)時(shí),需要為其提供滿足任務(wù)需求的虛擬機(jī)類型,減少服務(wù)運(yùn)行的開(kāi)銷。使數(shù)據(jù)中心在工作負(fù)載快速到達(dá)峰值時(shí),可以迅速提供大量虛擬機(jī)來(lái)滿足突然增加的負(fù)載,當(dāng)負(fù)載恢復(fù)到正常水平后,多余的虛擬資源可以被回收。我們將虛擬機(jī)層資源調(diào)度問(wèn)題定義為:數(shù)據(jù)中心云資源池在某個(gè)調(diào)度決策時(shí)刻接收到多個(gè)用戶的工作請(qǐng)求,并且經(jīng)過(guò)分析得到每個(gè)用戶需要?jiǎng)?chuàng)建的虛擬機(jī)類型,所需資源量,以及該類型虛擬機(jī)需要?jiǎng)?chuàng)建的數(shù)量。資源調(diào)度需要解決的問(wèn)題是,如何從數(shù)據(jù)中心正常運(yùn)行的物理機(jī)器中選取合適的來(lái)完成虛擬機(jī)的創(chuàng)建。
3 云資源調(diào)度模型
3.1 云資源建模
云資源的建模是云資源管理和控制的基礎(chǔ),所有的資源調(diào)度優(yōu)化算法都要依賴于統(tǒng)一的資源建模方式。云計(jì)算中的資源是一個(gè)云系統(tǒng)中任何可用的物理或虛擬組件,系統(tǒng)內(nèi)部的組件以及連接到這個(gè)系統(tǒng)的任何設(shè)備都是資源。云計(jì)算中的資源可以分為物理資源和邏輯資源兩類。
1)物理資源。典型的物理資源包括處理器,內(nèi)存和外圍設(shè)備。不同主機(jī)之間的物理資源差異很大,一臺(tái)普通個(gè)人電腦一般只有4G內(nèi)存,500G內(nèi)存,而一臺(tái)大型機(jī)有大量并行處理器,TB級(jí)的內(nèi)存,海量存儲(chǔ)以及一些其他專用設(shè)備。
2)邏輯資源。邏輯資源是物理資源的抽象,用來(lái)完成應(yīng)用程序的部署[2],以及有效的通信。
在每個(gè)云服務(wù)提供商的數(shù)據(jù)中心,有大量不同規(guī)格的物理設(shè)備,向云用戶提供各種計(jì)算或者存儲(chǔ)資源,尤其是基礎(chǔ)設(shè)施即服務(wù)(IaaS),它提供大量的存儲(chǔ)、服務(wù)器以及網(wǎng)絡(luò)等物理設(shè)備構(gòu)建的資源池,用戶將他們的業(yè)務(wù)部署在這些物理資源上,為了完成不同用戶的業(yè)務(wù),需要各類型資源的協(xié)調(diào)運(yùn)作。
針對(duì)上述兩種云計(jì)算中的資源,可以使用統(tǒng)一的數(shù)學(xué)模型進(jìn)行描述:
3.2 云資源調(diào)度模型
數(shù)據(jù)中心的云資源池是由計(jì)算、通信、存儲(chǔ)資源集聚在一起形成的一種大規(guī)模復(fù)雜的異構(gòu)并且動(dòng)態(tài)的結(jié)構(gòu)。如何將數(shù)據(jù)中心集中的資源根據(jù)不同的約束條件和各云計(jì)算角色的利益競(jìng)爭(zhēng)關(guān)系,分配到對(duì)應(yīng)的用戶執(zhí)行任務(wù)上,這是資源調(diào)度需要解決的問(wèn)題[3]。云資源調(diào)度中心的目的就是完成從用戶提交工作請(qǐng)求,到給用戶需要執(zhí)行的任務(wù)分配對(duì)應(yīng)的物理資源這一過(guò)程。為了實(shí)現(xiàn)這一功能,設(shè)計(jì)了如圖1所示的云資源調(diào)度中心,包括以下主要組件。
1)用戶交互組件。用戶交互組件除了完成用戶的身份驗(yàn)證以及計(jì)費(fèi)功能外,最主要的功能是對(duì)用戶請(qǐng)求的虛擬單元類型、數(shù)量以及參數(shù)進(jìn)行分析判斷。對(duì)于用戶提交到云中的工作,首先分析用戶提交工作中各子任務(wù)的資源請(qǐng)求以及依賴關(guān)系,將其對(duì)應(yīng)到合理的虛擬單元類型上,并劃分成不同的處理階段。其次需要分析監(jiān)控中心收集到的數(shù)據(jù),判斷用戶請(qǐng)求是否能在約束水平內(nèi)完成。
2)注冊(cè)中心。注冊(cè)中心的主要功能是負(fù)責(zé)云數(shù)據(jù)中心集群的管理,注冊(cè)中心記錄集群中所有物理資源的信息,包括主機(jī)名、IP地址、MAC地址、網(wǎng)絡(luò)信息等,當(dāng)有新的物理機(jī)加入或者離開(kāi)數(shù)據(jù)中心時(shí),需要修改數(shù)據(jù)庫(kù)中記錄的信息。注冊(cè)中心記錄了云數(shù)據(jù)中心所有物理資源的有用信息,包括數(shù)據(jù)中心集群的數(shù)量和分布,對(duì)于每個(gè)集群由記錄了集群中物理機(jī)器的數(shù)量,集群的狀態(tài),網(wǎng)絡(luò)信息。集群中的每臺(tái)物理機(jī),又記錄了它們的名稱、位置、狀態(tài)、操作系統(tǒng)、IP地址、端口、資源總量、網(wǎng)絡(luò)帶寬、計(jì)算能力等,還記錄了物理機(jī)上創(chuàng)建的虛擬單元信息。
3)監(jiān)控組件。云資源監(jiān)控模塊是負(fù)責(zé)收集整個(gè)云數(shù)據(jù)中心的計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)等資源的使用情況,以及用戶提交的工作負(fù)載情況,包括請(qǐng)求提交速率,類型,規(guī)格等。監(jiān)控中心負(fù)責(zé)收集的性能參數(shù)有各類型資源利用率(CPU、內(nèi)存、存儲(chǔ)空間等),響應(yīng)時(shí)間,網(wǎng)絡(luò)流量等。
4)決策中心。決策中心每隔一段時(shí)間會(huì)進(jìn)行一次資源決策,稱之為決策時(shí)刻。決策時(shí)刻時(shí)決策中心會(huì)接收監(jiān)控中心監(jiān)控的各項(xiàng)數(shù)據(jù),分析數(shù)據(jù)中心各物理機(jī)和虛擬單元的工作負(fù)載和資源使用情況,根據(jù)合理的資源調(diào)度算法得到優(yōu)化的資源供應(yīng)或調(diào)度方案,使得系統(tǒng)工作性能達(dá)到最佳。
該模塊是云資源管理系統(tǒng)的核心模塊,根據(jù)不同的優(yōu)化目標(biāo),調(diào)用對(duì)用的資源調(diào)度算法,對(duì)云數(shù)據(jù)中心所有的可用資源進(jìn)行集中式的管理和調(diào)配,以預(yù)期的目標(biāo)為驅(qū)動(dòng),將所有可用資源以虛擬單元分配到各用戶的工作及其子任務(wù)之中。
5)基礎(chǔ)設(shè)施管理器。該模塊是負(fù)責(zé)系統(tǒng)基礎(chǔ)架構(gòu)中實(shí)際的調(diào)整操作,對(duì)云數(shù)據(jù)中心的集群、物理資源、虛擬資源以及虛擬鏡像進(jìn)行管理,包括物理機(jī)的啟動(dòng)關(guān)閉、虛擬單元的創(chuàng)建刪除、配置信息的修改等等。當(dāng)該模塊接收到?jīng)Q策中心發(fā)出的資源調(diào)度方案,將會(huì)使用云環(huán)境中的虛擬化技術(shù),在對(duì)應(yīng)的物理設(shè)備上進(jìn)行虛擬單元的創(chuàng)建、注銷或者遷移。然后將對(duì)應(yīng)的用戶任務(wù)匹配到該資源上,由其負(fù)責(zé)具體的任務(wù)執(zhí)行工作。
4 云資源調(diào)度方法
4.1 資源調(diào)度方法
對(duì)于一個(gè)虛擬化的云數(shù)據(jù)中心,假設(shè)在某個(gè)資源調(diào)度決策時(shí)刻共有M臺(tái)可用物理機(jī),每臺(tái)物理機(jī)的可用資源表示為[4]:
圖2中描述了一個(gè)虛擬化云環(huán)境下資源調(diào)度問(wèn)題的實(shí)例,假設(shè)現(xiàn)在有兩臺(tái)物理機(jī),可用資源分別為(4,8,40)和(4,6,50)。在某個(gè)決策時(shí)刻隸屬于三個(gè)用戶的三個(gè)子任務(wù)分別請(qǐng)求的虛擬機(jī)類型為(2,4,20),(1,1,10)和(2,2,10)。創(chuàng)建虛擬機(jī)需要占用物理機(jī)上的可用資源,調(diào)度算法依據(jù)用戶所請(qǐng)求的資源類別、數(shù)量以及物理機(jī)的資源分布、負(fù)載情況,將用戶所請(qǐng)求虛擬機(jī)均衡的分配在物理機(jī)上,以達(dá)到性能最優(yōu)及資源利用率最大。
4.2 云資源調(diào)度的流程
為了根據(jù)用戶的需求,將數(shù)據(jù)中心集中管理的資源合理分配給對(duì)應(yīng)的需要被執(zhí)行的任務(wù),資源調(diào)度的工作流程如圖3所示:
步驟1:首先由用戶通過(guò)門(mén)戶網(wǎng)站或者調(diào)用API向云系統(tǒng)提交工作請(qǐng)求,此時(shí)用戶管理中心需要先驗(yàn)證用戶的身份。
步驟2:通過(guò)驗(yàn)證的用戶可以向云端申請(qǐng)資源,用戶請(qǐng)求分析模塊接收請(qǐng)求,將用戶工作中各子任務(wù)劃分處理階段,并分析資源請(qǐng)求相關(guān)參數(shù),根據(jù)系統(tǒng)中可用資源總量進(jìn)行判斷,是否可以完成用戶請(qǐng)求。
步驟3:若接收該請(qǐng)求,請(qǐng)求會(huì)被轉(zhuǎn)交到?jīng)Q策中心進(jìn)行處理。決策中心首先會(huì)從監(jiān)控中心獲取當(dāng)前數(shù)據(jù)中心各物理節(jié)點(diǎn)和虛擬節(jié)點(diǎn)資源使用狀態(tài),以及注冊(cè)中心中各物理節(jié)點(diǎn)信息以及網(wǎng)絡(luò)信息等等。
步驟4:根據(jù)用戶提交的工作類型和資源需求,決策中心選擇合適的資源調(diào)度算法,進(jìn)行計(jì)算,求得優(yōu)化的調(diào)度方案。
步驟5:該方案發(fā)送到基礎(chǔ)設(shè)施管理組件,由其負(fù)責(zé)具體的虛擬單元管理操作,并將用戶請(qǐng)求中的各項(xiàng)子任務(wù)分發(fā)到對(duì)應(yīng)合理的物理資源上。
當(dāng)有新的物理節(jié)點(diǎn)加入數(shù)據(jù)中心云資源池時(shí),需要首先向數(shù)據(jù)中心注冊(cè),注冊(cè)消息中包含物理機(jī)的基本信息。注冊(cè)中心接收消息后會(huì)給該物理節(jié)點(diǎn)分配一個(gè)唯一標(biāo)識(shí),返回該標(biāo)識(shí)表示注冊(cè)成功,該物理節(jié)點(diǎn)加入云系統(tǒng)。同時(shí)注冊(cè)中心會(huì)向監(jiān)控中心發(fā)送消息,通知該中心與新的物理節(jié)點(diǎn)建立通信,監(jiān)控該節(jié)點(diǎn)的資源使用情況。當(dāng)有物理機(jī)因老化、壞損等原因永久離開(kāi)云數(shù)據(jù)中心時(shí),需要給注冊(cè)中心發(fā)送消息,通知其刪除相關(guān)信息。
5 總結(jié)
本文重點(diǎn)關(guān)注了云計(jì)算多用戶環(huán)境下,數(shù)據(jù)中心云資源調(diào)度機(jī)制。隨著云計(jì)算的出現(xiàn),數(shù)據(jù)中心云資源虛擬化以及所承載的應(yīng)用呈現(xiàn)出多用戶、異構(gòu)化等特性,使得服務(wù)器內(nèi)部多種資源間分配不均衡的問(wèn)題愈加突出,嚴(yán)重影響了基礎(chǔ)設(shè)施資源的使用效率。本文首先闡述了數(shù)據(jù)中心對(duì)于云資源調(diào)度機(jī)制的迫切需求。通過(guò)對(duì)數(shù)據(jù)中心云資源虛擬化技術(shù)的研究,建立了云資源調(diào)度模型。提出了多服務(wù)器云資源均衡調(diào)度模型,提高了數(shù)據(jù)中心的基礎(chǔ)設(shè)施資源利用率。
參考文獻(xiàn)
[1] 劉鵬.云計(jì)算的定義和特點(diǎn)[J]. 2012-06-05.http://www. chinacloud. en/show. aspx,2009..
[2] 黎沛姿,譚北平.在線調(diào)查的代表性與可靠性對(duì)比研究[J].市場(chǎng)研究. 2005(08).
[3] 張建勛,古志民,鄭超. 云計(jì)算研究進(jìn)展綜述[J]. 計(jì)算機(jī)應(yīng)用研究,2010,27(2):429-433.
[4] Leverich J,Kozyrakis C. On the energy (in) efficiency of hadoop clusters[J]. ACM SIGOPS Operating Systems Review,2010,44(1):61-65.
第一作者:王明乾(1989年12月),男,漢族,籍貫:河北清河,學(xué)歷:碩士,職稱:助教,研究方向:云計(jì)算。
第二作者:劉建斌(1990年5月),男,漢族,籍貫:山西省忻州市人,學(xué)歷:碩士,職稱:助教,研究方向:數(shù)據(jù)存儲(chǔ)技術(shù)。