摘 要: 云計(jì)算系統(tǒng)中數(shù)據(jù)中心的能耗問(wèn)題早已成為人們廣泛關(guān)注的一個(gè)重點(diǎn)問(wèn)題,從綠色節(jié)能角度分析如何對(duì)云計(jì)算平臺(tái)中的各種節(jié)點(diǎn)進(jìn)行調(diào)度、對(duì)云計(jì)算系統(tǒng)中有效能量數(shù)據(jù)進(jìn)行擺放是非常關(guān)鍵的問(wèn)題。目前已有的節(jié)點(diǎn)調(diào)度策略無(wú)法在云計(jì)算系統(tǒng)中獲得較好的節(jié)能功效,導(dǎo)致云計(jì)算中的數(shù)據(jù)擺放成為一個(gè)比較嚴(yán)重的問(wèn)題。通過(guò)對(duì)云計(jì)算系統(tǒng)中能量有效數(shù)據(jù)擺放算法和節(jié)點(diǎn)調(diào)度策略進(jìn)行分析,為增強(qiáng)數(shù)據(jù)擺放方法與節(jié)點(diǎn)調(diào)度的有效性奠定良好的基礎(chǔ)。
關(guān)鍵詞: 云計(jì)算系統(tǒng); 能量有效性; 數(shù)據(jù)擺放算法; 節(jié)點(diǎn)調(diào)度策略
中圖分類(lèi)號(hào): TN702.2?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2015)09?0080?03
Abstract: Energy consumption is widespread concerned of data center in the cloud computing, the key problem is to analyze how to schedule the node in cloud computing platform and how to place the effective energy data in cloud computing system with green energy saving point. In cloud computing system, the energy saving effect is unable to obtain by the existing strategy of node scheduling currently, so cloud computing data placement becomes a serious problem. Energy efficient data placement algorithm and node scheduling strategy of cloud computing system is analyzed, it built a good foundation to enhance the feasible of data placement method and the effective of node scheduling.
Keywords: cloud computing system; energy efficiency; data placement algorithm; node scheduling strategy
伴隨網(wǎng)絡(luò)技術(shù)的不斷發(fā)展及其運(yùn)用范圍的不斷擴(kuò)大,人類(lèi)獲取數(shù)據(jù)及生產(chǎn)的能力也在不斷的發(fā)展,從而致使海量數(shù)據(jù)的運(yùn)用越來(lái)越普遍。為了對(duì)海量數(shù)據(jù)的計(jì)算和管理提供有效的支持,出現(xiàn)了許多大規(guī)模、超大規(guī)模的數(shù)據(jù)密集型的計(jì)算平臺(tái),比如云計(jì)算系統(tǒng)的出現(xiàn),給人們使用大型計(jì)算系統(tǒng)提供了快捷、方便的計(jì)算服務(wù)和數(shù)據(jù)管理。但是,這些計(jì)算系統(tǒng)在使用的過(guò)程中同樣面臨著許多潛在的威脅,其中能量消耗問(wèn)題是最嚴(yán)重的。
1 云計(jì)算系統(tǒng)中動(dòng)態(tài)數(shù)據(jù)的擺放算法
1.1 數(shù)據(jù)塊的初始擺放
一般情況下,云計(jì)算系統(tǒng)中的數(shù)據(jù)量都顯得比較大,且其是事先就準(zhǔn)備好的,因而對(duì)云計(jì)算系統(tǒng)中的數(shù)據(jù)進(jìn)行合理的擺放能夠使云計(jì)算系統(tǒng)的相關(guān)性能得到不斷地提升。在云計(jì)算系統(tǒng)中的服務(wù)器處于集群初始的狀態(tài)時(shí),且相關(guān)的數(shù)據(jù)信息是已知的,對(duì)這些已知的數(shù)據(jù)進(jìn)行初始化的布置及預(yù)處理的作用是可以訪問(wèn)到更多數(shù)據(jù),且使其實(shí)現(xiàn)順序訪問(wèn),從而就可以達(dá)到一定的節(jié)能效果。
對(duì)已知的數(shù)據(jù)進(jìn)行處理的過(guò)程中,首先應(yīng)該把數(shù)據(jù)全部劃分成大小為[B]的相應(yīng)的數(shù)據(jù)塊,這樣就可以獲得全數(shù)據(jù)塊的集合,其集合表示為[D={d0,d1,…,dm-1}。]為了使數(shù)據(jù)的可靠性得到有效的保證,應(yīng)在節(jié)點(diǎn)中對(duì)數(shù)據(jù)塊進(jìn)行備份,且對(duì)備份好的數(shù)量做好相應(yīng)的定義,其可以定義成備份因子[K,]其中[K]大于1。這樣,就可以使各個(gè)數(shù)據(jù)塊都獲得一個(gè)相應(yīng)的主備份塊,主備份塊則用[p]表示,且可以獲得[k-1]個(gè)從備份的數(shù)據(jù)塊。假設(shè)任務(wù)請(qǐng)求對(duì)數(shù)據(jù)塊進(jìn)行訪問(wèn),其首先是對(duì)主備份塊進(jìn)行訪問(wèn)。主備份塊出現(xiàn)更新時(shí),將更新的信息在統(tǒng)一的時(shí)間內(nèi)傳遞到全部從備份的數(shù)據(jù)塊中;若沒(méi)有存在特殊的情況,只有主備份塊出現(xiàn)錯(cuò)誤或者過(guò)載時(shí),從備份數(shù)據(jù)塊才會(huì)被任務(wù)請(qǐng)求訪問(wèn)。
對(duì)云計(jì)算平臺(tái)中數(shù)據(jù)擺放的算法進(jìn)行分析的過(guò)程中,可以將數(shù)據(jù)儲(chǔ)存的節(jié)點(diǎn)集合設(shè)為[S,]其中[S={S0,][S1,…,SN-1},][N]表示的是節(jié)點(diǎn)的個(gè)數(shù)。此時(shí),數(shù)據(jù)塊的初始化擺放如下:根據(jù)備份的因子數(shù),把包含從數(shù)據(jù)塊、主數(shù)據(jù)塊的全部數(shù)據(jù)分成[K]組,其中每個(gè)組均與數(shù)據(jù)塊個(gè)數(shù)為[M]的全數(shù)據(jù)集合相等,并在[NK]個(gè)節(jié)點(diǎn)中對(duì)該數(shù)據(jù)塊進(jìn)行儲(chǔ)存,各個(gè)分組中所分配的節(jié)點(diǎn)都不一樣。每一個(gè)組內(nèi)存放一張節(jié)點(diǎn)位置的映射表和數(shù)據(jù)庫(kù),將全部數(shù)據(jù)庫(kù)位置映射表(Map)存儲(chǔ)在主控模塊中。從節(jié)能和響應(yīng)時(shí)間這兩個(gè)方面進(jìn)行綜合考慮,組和組間可以運(yùn)用不一樣的布置策略。因此綜合響應(yīng)時(shí)間和節(jié)能的考慮,通過(guò)組間不同數(shù)據(jù)的分配方法,為了讓組和組間的映射位置有所區(qū)別,可以利用隨機(jī)映射的方法,隨機(jī)將各組中的數(shù)據(jù)塊映射到[NK]個(gè)節(jié)點(diǎn)里,進(jìn)而得出這個(gè)組的具體位置映射表,之后再把全部位置映射表存放在主控模塊的位置映射表中。
1.2 對(duì)動(dòng)態(tài)數(shù)據(jù)的擺放算法進(jìn)行分析
在分析動(dòng)態(tài)數(shù)據(jù)的擺放算法時(shí),首先給出相應(yīng)的動(dòng)態(tài)數(shù)據(jù)擺放算法定義及公式,根據(jù)任務(wù)請(qǐng)求需要的相關(guān)數(shù)據(jù)塊在每個(gè)節(jié)點(diǎn)中的分布及分布多少,可以給出相應(yīng)的定義1:在各個(gè)節(jié)點(diǎn)[s∈S]中,含有的總數(shù)據(jù)塊為[q,]達(dá)到任務(wù)請(qǐng)求隊(duì)列的需求量,該節(jié)點(diǎn)覆蓋率定義為[1][γ(s)=pq]。
另外,為了使數(shù)據(jù)可靠性得到有效的保證,可以采用數(shù)據(jù)塊的備份機(jī)制,各個(gè)數(shù)據(jù)塊均有一個(gè)相應(yīng)的主備份塊及無(wú)數(shù)個(gè)從備份塊,將主備份數(shù)據(jù)塊進(jìn)行轉(zhuǎn)移來(lái)達(dá)到轉(zhuǎn)移數(shù)據(jù)的目的。但是,對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)移的過(guò)程中,要求必須在相同數(shù)據(jù)之間才可以進(jìn)行轉(zhuǎn)移,因此可以得出相應(yīng)的定義2:若節(jié)點(diǎn)[s]與節(jié)點(diǎn)[st]中存在數(shù)據(jù)塊相同的備份,說(shuō)明[s]與[st]之間的數(shù)據(jù)是可以互相進(jìn)行交換。動(dòng)態(tài)數(shù)據(jù)的擺放算法得以啟動(dòng)的前提是,集群中的部分節(jié)點(diǎn)資源的利用率缺少相應(yīng)的合理性,當(dāng)其沒(méi)有所給定的閾值大時(shí),就能夠?qū)?shù)據(jù)進(jìn)行轉(zhuǎn)移,并把該節(jié)點(diǎn)關(guān)閉,這樣就可以節(jié)省一定的能量,減少能量的消耗。但是,當(dāng)資源的利用率比給定閾值大時(shí),一定要將節(jié)點(diǎn)的性能考慮進(jìn)去,對(duì)其進(jìn)行相應(yīng)的調(diào)整,且不可以再向此節(jié)點(diǎn)轉(zhuǎn)移數(shù)據(jù)。由此可以得出,節(jié)點(diǎn)資源的利用率高低直接影響著數(shù)據(jù)擺放,因此可以給出相應(yīng)節(jié)點(diǎn)資源的利用率公式:[U=e·Ucpu+(1-e)?Udisk,]其中,[e]代表比例因子;[Ucpu]表示利用率;[Udisk]表示磁盤(pán)利用率。得出相應(yīng)的定義及計(jì)算公式之后,就可以根據(jù)公式進(jìn)行相應(yīng)的計(jì)算[2]。
例如,給出相應(yīng)的動(dòng)態(tài)數(shù)據(jù)擺放算法:在進(jìn)行計(jì)算的過(guò)程中,算法基本的輸入是數(shù)據(jù)塊映射表和節(jié)點(diǎn),輸出則是數(shù)據(jù)擺放的策略。在Map中找出資源利用率較低或者較高的相關(guān)節(jié)點(diǎn),放入節(jié)點(diǎn)的集合(Sutil)公式中,對(duì)所有節(jié)點(diǎn)資源的利用率(Us)進(jìn)行計(jì)算,并對(duì)其進(jìn)行相應(yīng)的判斷,看其是否比給定的閾值(Uup)大;如果比Uup大,則說(shuō)明該節(jié)點(diǎn)是過(guò)載的節(jié)點(diǎn),必須將該節(jié)點(diǎn)中主備份的數(shù)據(jù)塊轉(zhuǎn)移到資源利用率比較低的、能夠進(jìn)行交換的其他節(jié)點(diǎn)中;若Us沒(méi)有Uup大,應(yīng)該把此節(jié)點(diǎn)主備份的數(shù)據(jù)塊全部轉(zhuǎn)移到另外的節(jié)點(diǎn),再利用節(jié)點(diǎn)的調(diào)度策略將該節(jié)點(diǎn)調(diào)到節(jié)能的狀態(tài)。在動(dòng)態(tài)的數(shù)據(jù)擺放算法中,數(shù)據(jù)塊的轉(zhuǎn)移主要是對(duì)主備份的數(shù)據(jù)塊進(jìn)行轉(zhuǎn)移,這樣能夠使數(shù)據(jù)的轉(zhuǎn)移量在最小的范圍之內(nèi),達(dá)到一定的節(jié)能目的。
2 對(duì)調(diào)度算法進(jìn)行分析
云計(jì)算系統(tǒng)節(jié)能效果主要是受到節(jié)點(diǎn)調(diào)度的影響,對(duì)節(jié)點(diǎn)調(diào)度的相關(guān)策略進(jìn)行探討是研究云計(jì)算系統(tǒng)節(jié)能的關(guān)鍵所在。在云計(jì)算系統(tǒng)中運(yùn)用批處理及online調(diào)度模型,可以使調(diào)度算法得到相應(yīng)的優(yōu)化,批處理的調(diào)度算法比較適合運(yùn)用在任務(wù)請(qǐng)求的時(shí)間要求不夠嚴(yán)格的情況中;而online調(diào)度則屬于批處理調(diào)度中的特殊情況之一,其算法通常適合運(yùn)用在實(shí)時(shí)性較高的環(huán)境中。
2.1 分析批量處理調(diào)度的具體定義及其算法
采用批處理調(diào)度的算法進(jìn)行計(jì)算的前提條件是,任務(wù)請(qǐng)求的時(shí)間要求缺少一定的嚴(yán)格性,在調(diào)度時(shí)間全部結(jié)束時(shí)對(duì)任務(wù)請(qǐng)求進(jìn)行相應(yīng)的處理,如果集群在開(kāi)始時(shí)期都處在關(guān)閉的狀態(tài),且在調(diào)度的時(shí)間范圍內(nèi),可以將任務(wù)請(qǐng)求完全隊(duì)列為Jrequest={r0,r1,…,rw},其中w大于0,可以將各個(gè)節(jié)點(diǎn)中任務(wù)執(zhí)行的時(shí)間設(shè)為T(mén)i= Tcpu+Ti/o,計(jì)算的過(guò)程每個(gè)節(jié)點(diǎn)的平均功率為Pavg,此時(shí)集群中節(jié)點(diǎn)集合所消耗的功率為Pcluster=aPavg,a代表開(kāi)啟的節(jié)點(diǎn)數(shù)目[3]。利用節(jié)點(diǎn)調(diào)度的策略讓任務(wù)請(qǐng)求隊(duì)列執(zhí)行時(shí)間縮到最短,根據(jù)初始化數(shù)據(jù)分配的相關(guān)策略可以得出,對(duì)任務(wù)進(jìn)行并行處理能夠縮短任務(wù)執(zhí)行的時(shí)間,讓其達(dá)到最小值。
由于組間所采用的擺放方法不一樣,因此任務(wù)執(zhí)行并發(fā)度就會(huì)顯得越高,使任務(wù)執(zhí)行的時(shí)間變得越小。假設(shè)知道功率上限,并給出相應(yīng)的優(yōu)化目標(biāo),如目標(biāo)1:
目標(biāo)1:已知Pmax,計(jì)算出[minTe=i=0a-1Ti。]
目標(biāo)公式中的Pmax表示集群消耗功率上限,而[Te]表示全部任務(wù)請(qǐng)求的總執(zhí)行時(shí)間。在該優(yōu)化目標(biāo)中主要是利用節(jié)點(diǎn)調(diào)度讓[Te=i=0a-1Ti]達(dá)到最小。
接下來(lái)根據(jù)給出的問(wèn)題定義,如在問(wèn)題定義1中,輸入:Map,Pmax,Jrequest={r0,r1,…,rn}(n大于0);輸出:任務(wù)分配策略,且JS={JS|Jrequest→S},其約束條件為min[Ti,]并且i小于等于N。問(wèn)題定義1給出了功耗問(wèn)題,對(duì)其性能進(jìn)行求解[4]。
2.2 分析批量處理調(diào)度的相關(guān)算法
在優(yōu)化目標(biāo)1中,可以對(duì)任務(wù)并行執(zhí)行,且根據(jù)初始數(shù)據(jù)擺放的策略,可以讓任務(wù)執(zhí)行的時(shí)間縮短到最小。批處理節(jié)點(diǎn)的調(diào)度計(jì)算方法如下:
輸入:初始化數(shù)據(jù)擺放策略映射表、集群消耗上限功率、Jrequest。
輸出:任務(wù)分配策略。
參照Map計(jì)算出[S]中的全部節(jié)點(diǎn)覆蓋率Y(s),再計(jì)算出[V=PmaxPavg,]其中While Jrequest≠[?]do,將Y(s)中最高的前V個(gè)節(jié)點(diǎn)開(kāi)啟。
If ri表示讀操作,ri[∈]Jrequest,且必須把ri分配到任意的節(jié)點(diǎn)開(kāi)啟中,對(duì)JS進(jìn)行更新。如果當(dāng)前所開(kāi)啟的節(jié)點(diǎn)中沒(méi)有任務(wù)請(qǐng)求,應(yīng)從關(guān)閉的節(jié)點(diǎn)中將Y(s)的最高節(jié)點(diǎn)找出來(lái)并開(kāi)啟,把當(dāng)前的節(jié)點(diǎn)全部關(guān)閉,調(diào)用相應(yīng)的動(dòng)態(tài)數(shù)據(jù)擺放算法。根據(jù)以上的批處理節(jié)點(diǎn)調(diào)度算法,因?yàn)橐呀?jīng)知道每一臺(tái)機(jī)器的平均功率(Pavg),所以可以得出云計(jì)算系統(tǒng)中可以開(kāi)啟的、最大的節(jié)點(diǎn)數(shù)目為[V=PmaxPavg,]將問(wèn)題轉(zhuǎn)換為給定可用的節(jié)點(diǎn)數(shù)[V,]對(duì)如何使調(diào)度節(jié)點(diǎn)中任務(wù)執(zhí)行的時(shí)間[Te]達(dá)到最小進(jìn)行求解。在覆蓋率中,每次所選的必須都是前[V]個(gè)節(jié)點(diǎn)中最高的節(jié)點(diǎn),通過(guò)這[V]個(gè)節(jié)點(diǎn)進(jìn)行并行化,并對(duì)該任務(wù)及性能做出相應(yīng)地判斷,看其是否屬于讀操作,如果屬于讀操作可以將分配在此任務(wù)中的任意節(jié)點(diǎn)開(kāi)啟,如果不是則只可以對(duì)節(jié)點(diǎn)開(kāi)啟中的主數(shù)據(jù)庫(kù)進(jìn)行相應(yīng)的操作[5]。
2.3 分析online調(diào)度算法定義及算法
在批處理調(diào)度算法實(shí)時(shí)性要求比較高的條件下,無(wú)法發(fā)揮更好的性能,因此可以采用與實(shí)時(shí)性相適應(yīng)的online調(diào)度策略。因?yàn)槿蝿?wù)請(qǐng)求主要是對(duì)數(shù)據(jù)的主備份塊進(jìn)行訪問(wèn),所以對(duì)于處在沒(méi)有開(kāi)啟狀態(tài)中的[P,]可以利用動(dòng)態(tài)的數(shù)據(jù)擺放算法交換相應(yīng)的數(shù)據(jù)。
優(yōu)化目標(biāo)2:已知Pmax,計(jì)算出[minTe=i=0a-1Ti。]
問(wèn)題定義:輸入Map、Jrequest,輸出節(jié)點(diǎn)調(diào)度策略,已知集群消耗功率的上限是Pmax,且優(yōu)化目標(biāo)主要是利用節(jié)點(diǎn)調(diào)度來(lái)讓任務(wù)請(qǐng)求執(zhí)行的時(shí)間Te達(dá)到最小。
3 結(jié) 語(yǔ)
云計(jì)算系統(tǒng)是規(guī)模較大的數(shù)據(jù)計(jì)算系統(tǒng)典范,云計(jì)算系統(tǒng)中的能量消耗問(wèn)題比較嚴(yán)重。影響云計(jì)算系統(tǒng)不斷發(fā)展的主要因素是節(jié)能技術(shù),節(jié)能計(jì)算是云計(jì)算系統(tǒng)底層中的一項(xiàng)服務(wù)。在本研究中,通過(guò)利用啟發(fā)式動(dòng)態(tài)數(shù)據(jù)擺放算法對(duì)云計(jì)算系統(tǒng)中的數(shù)據(jù)擺放問(wèn)題進(jìn)行有效處理,不僅使節(jié)點(diǎn)調(diào)度策略達(dá)到了相應(yīng)的節(jié)能功效,并且還對(duì)云計(jì)算系統(tǒng)中的約束條件進(jìn)行了考慮。進(jìn)而給云計(jì)算系統(tǒng)中的節(jié)點(diǎn)調(diào)度策略提供較大的空間,由此證明本文提出的計(jì)算方法在云計(jì)算系統(tǒng)中是可行的、有效的方法。
參考文獻(xiàn)
[1] 肖艷文,王金寶,李亞平.云計(jì)算系統(tǒng)中能量有效的數(shù)據(jù)擺放算法和節(jié)點(diǎn)調(diào)度策略[J].計(jì)算機(jī)研究與發(fā)展,2013,23(z1):342?351.
[2] 王鵬,張磊,郭又銘.云計(jì)算系統(tǒng)相空間分析模型及仿真研究[J].計(jì)算機(jī)學(xué)報(bào),2013,25(47):257?258.
[3] 吳煜祺,曾國(guó)蓀,曾媛.云計(jì)算環(huán)境下調(diào)度算法的趨勢(shì)分析[J].微電子學(xué)與計(jì)算機(jī),2012,52(33):7655?7657.
[4] 徐小龍,李玲娟,王汝傳.面向綠色云計(jì)算數(shù)據(jù)中心的動(dòng)態(tài)數(shù)據(jù)聚集算法[J].系統(tǒng)工程與電子技術(shù),2013,42(21):475?479.
[5] 左利云,曹志波.云計(jì)算中調(diào)度問(wèn)題研究綜述[J].計(jì)算機(jī)應(yīng)用研究,2012,83(65):1765?1767.
[6] 程春玲,張登銀,徐小龍.一種面向云計(jì)算的分態(tài)式自適應(yīng)負(fù)載均衡策略[J].南京郵電大學(xué)學(xué)報(bào),2012,61(76):341?343.