李超 張建強(qiáng) 凡小明
中移系統(tǒng)集成有限公司 北京 100052
面向數(shù)據(jù)中心,傳統(tǒng)的資源分配策略主要是基于虛擬化資源的調(diào)度技術(shù),通過虛擬化技術(shù)將有限的物理資源重新分配。底層利用率較低的虛擬機(jī),會(huì)通過虛擬機(jī)動(dòng)態(tài)遷移技術(shù)被整合到同一臺(tái)服務(wù)器上,空置的服務(wù)器將會(huì)被關(guān)閉或強(qiáng)制休眠,以達(dá)到降低能耗的目的。
影響數(shù)據(jù)中心高效節(jié)能資源分配方法的因素主要有以下三個(gè):一是數(shù)據(jù)中心資源監(jiān)測(cè)方法是否準(zhǔn)確高效,是否能夠反饋準(zhǔn)確的實(shí)時(shí)資源數(shù)據(jù)為資源分配策略提供支撐;二是能否建立能夠準(zhǔn)確地計(jì)算出數(shù)據(jù)中心能源消耗情況的能耗計(jì)量模型;三是能耗計(jì)量模型的高效率自適應(yīng)算法,在確定能耗模型后,能夠進(jìn)行高效穩(wěn)定的極值尋優(yōu)求解,并能快速地進(jìn)行資源的分配[1]。而目前的資源分配策略主要存在以下不足:首先,監(jiān)控資源的方法基于單一的輪詢方式或者事件驅(qū)動(dòng)方式,在監(jiān)測(cè)云數(shù)據(jù)中心虛擬資源的動(dòng)態(tài)變化時(shí)靈活性較低;其次,目前通常采用對(duì)CPU利用率或者內(nèi)存利用率等因子進(jìn)行時(shí)間積分的方式建立能耗模型,在通過遺傳算法對(duì)模型進(jìn)行極值尋優(yōu),從而進(jìn)行資源分配,這種做法不利于提高工程運(yùn)用中的效率,而且也不能自適應(yīng)的去調(diào)節(jié)模型參數(shù)。
為了解決以上問題,本文提出一種基于神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)中心能耗模型,其架構(gòu)主要包括實(shí)時(shí)自動(dòng)化監(jiān)控模塊、能耗模塊和基于神經(jīng)網(wǎng)絡(luò)模型的資源分配模塊。該架構(gòu)既能靈活地監(jiān)測(cè)云數(shù)據(jù)中心的虛擬資源,又能夠提供自適應(yīng)、自組織的資源分配策略,并將監(jiān)控系統(tǒng)采集的數(shù)據(jù)不斷加入到神經(jīng)網(wǎng)絡(luò)的訓(xùn)練集中,形成閉環(huán)的自適應(yīng)數(shù)據(jù)中心資源分配系統(tǒng),以達(dá)到數(shù)據(jù)中心節(jié)能的目的[2]?;谏窠?jīng)網(wǎng)絡(luò)的數(shù)據(jù)中心能耗模型共包括基于代理節(jié)點(diǎn)的實(shí)時(shí)自動(dòng)化監(jiān)控模塊、能耗模塊和神經(jīng)網(wǎng)絡(luò)求解的節(jié)能策略模塊。首先,將數(shù)據(jù)中心集群中的物理主機(jī)進(jìn)行編號(hào)(1、2…m),然后對(duì)物理主機(jī)內(nèi)的虛擬機(jī)編號(hào)為(1.1、1.2…1.n),即V(m.n),第m臺(tái)主機(jī)上的第n臺(tái)虛擬機(jī),自動(dòng)化監(jiān)控模塊將各個(gè)虛擬機(jī)的(Rstatus,Cstatus)的值獲取出來(lái),以便選取不同的監(jiān)控方式,并將監(jiān)測(cè)到的各虛擬機(jī)的(Ucpu,Umem)獲取出來(lái)并傳給能耗模型模塊,能耗模型模塊獲取2個(gè)輸入?yún)?shù)Ucpu和Umem,建立以Ucpu和Umem為輸入?yún)?shù),以總體能耗E為參數(shù)的非線性函數(shù)模型。基于神經(jīng)網(wǎng)絡(luò)模型的資源分配模塊獲取到Ucpu和Umem并存儲(chǔ),利用RBM神經(jīng)網(wǎng)絡(luò)求解能耗模型,然后求解出能耗最小時(shí),所對(duì)應(yīng)的Ucpu和Umem的參數(shù)矩陣,最后依據(jù)Ucpu和Umem進(jìn)行虛擬資源的分配。此處需要說(shuō)明的是,CPU、內(nèi)存、網(wǎng)絡(luò)接口以及磁盤存儲(chǔ)量是服務(wù)器計(jì)算節(jié)點(diǎn)能耗的主要部分,本文中主要在建立能耗模型后,利用神經(jīng)網(wǎng)絡(luò)中的RBM算法對(duì)能耗模型進(jìn)行非線性函數(shù)擬合求解,得出能耗最小時(shí)各虛擬機(jī)所對(duì)應(yīng)的Ucpu和Umem,從而進(jìn)行資源分配,故本文中不考慮網(wǎng)絡(luò)因素,并將其它因素作為基礎(chǔ)常量進(jìn)行建立模型[3]。
實(shí)時(shí)自動(dòng)化監(jiān)控模塊的架構(gòu)圖如圖1所示,主要包括監(jiān)控模塊控制器、數(shù)據(jù)存儲(chǔ)模塊、集群監(jiān)控器、代理節(jié)點(diǎn)五個(gè)部分。通過周期性的接收代理節(jié)點(diǎn)發(fā)送該節(jié)點(diǎn)處的CPU利用率Ucpu和內(nèi)存的利用率Umem數(shù)據(jù),以此作為數(shù)據(jù)中心的資源監(jiān)控信息。
圖1 實(shí)時(shí)自動(dòng)化監(jiān)控模塊架構(gòu)圖
固定周期輪詢的監(jiān)控方式,能夠監(jiān)控到穩(wěn)定不間斷的有效數(shù)據(jù),但是它靈活性不足,不能根據(jù)實(shí)際的狀況調(diào)整監(jiān)控周期,從一定程度上來(lái)說(shuō),消耗了資源。而事件驅(qū)動(dòng)方式的監(jiān)控能夠在任務(wù)多、資源利用率比較大的情況下,及時(shí)觸發(fā),不會(huì)因?yàn)檩喸兇螖?shù)過多而引起資源阻塞,為了保證監(jiān)控系統(tǒng)的可靠性運(yùn)行,本文采用兩者結(jié)合的監(jiān)控方式進(jìn)行監(jiān)控。
數(shù)據(jù)中心的能耗主要是各服務(wù)器計(jì)算節(jié)點(diǎn)的能耗,主要包括虛擬機(jī)CPU、磁盤存儲(chǔ)、網(wǎng)絡(luò)接口和內(nèi)存四個(gè)部分。與系統(tǒng)資源相比,CPU和內(nèi)存是計(jì)算節(jié)點(diǎn)能源消耗核心部分。而根據(jù)計(jì)算系統(tǒng)運(yùn)行原理,CPU能耗的增加必然導(dǎo)致內(nèi)存能耗的增加;磁盤存儲(chǔ)的能耗變化則是一定的變動(dòng)區(qū)間內(nèi),磁盤一旦使用,必然會(huì)有能源消耗;而網(wǎng)絡(luò)的能耗的產(chǎn)生則主要是由網(wǎng)絡(luò)交換設(shè)備的運(yùn)轉(zhuǎn)而產(chǎn)生的,在實(shí)際工程的資源分配策略中,主要考慮CPU和內(nèi)存能耗,把其它的相關(guān)因素作為基礎(chǔ)常量考慮。
本文主要針對(duì)目前數(shù)據(jù)中心資源分配策略中的監(jiān)控資源方法單一、靈活性有限的問題,提出一種基于神經(jīng)網(wǎng)絡(luò)模型的數(shù)據(jù)中心節(jié)能策略方法,本方法不僅可以提供自動(dòng)化的監(jiān)控模塊和能耗模型,還能提供基于神經(jīng)網(wǎng)絡(luò)模型的節(jié)能策略,經(jīng)過試驗(yàn)具有良好的能耗節(jié)省率。