彭麗蘋,呂曉丹,蔣朝惠
貴州大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,貴陽 550025
近年來,各種各樣的云平臺層出不窮,基于云平臺的應(yīng)用也在急劇增長,云計算給社會和國家?guī)淼睦娓遣谎远?。隨著云計算的廣泛應(yīng)用,數(shù)據(jù)中心的規(guī)模也在不斷擴大[1],亞馬遜、谷歌、阿里巴巴、HP等巨頭公司都擁有自己的云平臺,這些云平臺擁有的數(shù)據(jù)中心節(jié)點少則上萬臺,多則上百萬臺。據(jù)資料顯示,亞馬遜構(gòu)建了全球最大的云計算平臺,數(shù)據(jù)中心的節(jié)點已經(jīng)多達200萬臺,并在持續(xù)擴大。然而,隨著數(shù)據(jù)中心規(guī)模的擴大,數(shù)據(jù)中心集群能耗也在急劇增長。事實上,在實際生產(chǎn)中,能耗成本占數(shù)據(jù)中心總體擁有成本(Total Cost of Ownership,TCO)的很大一部分。據(jù)統(tǒng)計,2015年全球數(shù)據(jù)中心的用電量占世界總用電量的1.1%~1.5%,而我國數(shù)據(jù)中心耗電量約為1.0×103TWh,相當(dāng)于三峽水電站一年的發(fā)電量。在過去的十年里,雖然使用了虛擬化技術(shù),數(shù)據(jù)中心服務(wù)器的使用率卻一直持續(xù)穩(wěn)定在12%~18%之間,浪費了絕大部分電量。
針對上述問題,研究者們做了大量研究。Leverich等人在文獻[2]中首次提出了關(guān)閉部分節(jié)點以節(jié)約集群能耗的思想。他們對Hadoop集群中節(jié)點的狀態(tài)進行統(tǒng)計分析,發(fā)現(xiàn)大量節(jié)點在很多時候都處于非活躍狀態(tài),節(jié)點的CPU利用率非常低,于是通過關(guān)閉部分節(jié)點來節(jié)約集群能耗,但他們并沒有考慮集群性能問題。Kaushik等人在文獻[3]中提出了一種能耗感知的異構(gòu)集群數(shù)據(jù)放置方法,第一次將HDFS集群分為熱區(qū)和冷區(qū)兩個部分。熱區(qū)用大量高性能的服務(wù)器存放訪問率高的熱點數(shù)據(jù),冷區(qū)用少量大容量服務(wù)器存放訪問率低的數(shù)據(jù),并通過將冷區(qū)服務(wù)器設(shè)置成非活躍的低能耗模式來節(jié)約數(shù)據(jù)中心的能耗,但熱區(qū)消耗的電量遠超過冷區(qū),他們并沒有提出針對熱區(qū)服務(wù)器的能耗管理策略。
基于云計算虛擬化環(huán)境的虛擬機動態(tài)整合技術(shù)是一種節(jié)約數(shù)據(jù)中心能耗的重要技術(shù)。該技術(shù)通過將輕負載的虛擬機有效整合到少量物理服務(wù)器上運行,并關(guān)閉空閑的物理服務(wù)器來節(jié)約集群能耗。李俊濤等人在文獻[4]中提出了一種基于布朗指數(shù)法的虛擬機動態(tài)整合方法。文中采用布朗指數(shù)平滑法建立預(yù)測模型,并通過主機的歷史負載數(shù)據(jù)來預(yù)測CPU的使用率,進而確定需要遷移的虛擬機和其目的主機,以此來合理配置數(shù)據(jù)中心資源和節(jié)約能耗。但文中并沒有考慮虛擬機過度整合問題,資源的有效整合并不是往最少數(shù)量的服務(wù)器上裝滿負載或保證每個服務(wù)器的資源得到100%的利用,這樣有可能達不到節(jié)能的效果。
建立能耗模型對數(shù)據(jù)中心能耗進行評估預(yù)測是很多能耗感知資源調(diào)度方法的研究基礎(chǔ),對數(shù)據(jù)中心能耗管理具有重大意義。宋杰等人在文獻[5]中分別針對單機環(huán)境和云環(huán)境中的CPU密集型、I/O密集型、交互型運算提出了相應(yīng)的能效計算方法和優(yōu)化方法,并指出云系統(tǒng)能效利用率有很大提升空間,而研究任務(wù)的調(diào)度和執(zhí)行算法是最有效的方法,為接下來的能效優(yōu)化研究提供了借鑒。
能耗感知資源調(diào)度是目前數(shù)據(jù)中心常用的節(jié)能方法。黃慶佳在文獻[6]中提出了一種能耗成本感知的云數(shù)據(jù)中心資源調(diào)度機制,從大規(guī)模并行化任務(wù)處理能耗、虛擬機動態(tài)整合能耗和跨地域多數(shù)據(jù)中心能耗成本三方面解決數(shù)據(jù)中心能耗最小化問題。此外,改進的蟻群算法、神經(jīng)網(wǎng)絡(luò)算法、遺傳算法等也被廣泛地用來解決該類問題。
以上總結(jié)的方法具有交叉性,可以多種方法結(jié)合使用以達到節(jié)能的目的。例如房丙午等人將虛擬機遷移技術(shù)和能耗感知資源調(diào)度技術(shù)相結(jié)合,提出了一種基于二階段迭代啟發(fā)式算法的能耗和性能感知的調(diào)度算法以節(jié)約數(shù)據(jù)中心能耗[7]。
Ceph[8]是一個分布式文件系統(tǒng)。Sage等人針對Ceph集群提出了CRUSH算法,CRUSH算法是一種偽隨機Hash值散列算法[9],通過計算來確定要存儲數(shù)據(jù)的OSD位置,進而決定數(shù)據(jù)的存儲位置。與傳統(tǒng)的元數(shù)據(jù)機制相比,CRUSH算法消除了中心式的服務(wù)器/網(wǎng)關(guān)需求。沈良好等人在文獻[10]中對Ceph集群數(shù)據(jù)布局在節(jié)能方面的不足進行了分析,提出了一種Ceph集群的多級能耗管理策略。他們將集群節(jié)點分為多個功耗組,通過關(guān)閉部分功耗組來節(jié)約集群能耗,但功耗組的劃分粒度很大,很難達到最大限度節(jié)能的目的。
本文針對Ceph集群能耗問題,提出了一種能耗管理策略。建立了一個系統(tǒng)能耗優(yōu)化模型,并在該優(yōu)化模型的基礎(chǔ)上提出了一種Ceph集群的數(shù)據(jù)副本放置策略,使得云平臺在滿足用戶SLA需求和保證服務(wù)質(zhì)量(Quality of Service,QOS)的前提下,達到盡可能節(jié)約數(shù)據(jù)中心能耗的目的。最后,在真實的Ceph集群環(huán)境中驗證了該方法的有效性。
Ceph是由Sage等人提出的一個分布式文件存儲系統(tǒng),因具有統(tǒng)一存儲(塊存儲、對象存儲、文件存儲)的特性及高擴展性、高性能、高可靠性,而得到工業(yè)界的廣泛青睞。Ceph集群主要由監(jiān)視器MON、對象存儲設(shè)備OSD、可靠自治分布式對象存儲(Reliable Autonomic Distributed Object Store,RADOS)、Librados庫、塊設(shè)備(RBD)、RADOS網(wǎng)關(guān)接口(RGW)、元數(shù)據(jù)服務(wù)器(MDS)、CephFS組成。MON監(jiān)視整個集群的健康狀態(tài),Ceph集群中的所有數(shù)據(jù)都是以對象的形式存儲的,RADOS負責(zé)保存這些對象,它是Ceph集群存儲的基礎(chǔ)。Librados是訪問RADOS 的庫,支持PHP、Java、Ruby、Pathon等多種語言。而RGW僅用于對象存儲,MDS和CephFS僅用于文件存儲。因本文重點解決Ceph集群數(shù)據(jù)副本存儲帶來的能耗問題,所以下面詳細介紹了Ceph集群數(shù)據(jù)存儲過程。
當(dāng)Ceph客戶端有寫請求時,客戶端首先向MON提出創(chuàng)建新用戶和認證請求,認證通過之后,MON會將集群狀態(tài)圖Cluster Map發(fā)送給Ceph客戶端,客戶端經(jīng)DATA STRIPING過程將數(shù)據(jù)分成很多碎片strinpings,這些碎片會按照一定的方式組成一個或多個64 MB(若不足64 MB,就用字符0填充)的object對象,并用Object ID唯一標(biāo)識。然后生成一個RBD并指定一個Pool ID,接著利用CRUSH算法將Object映射到PG中,然后根據(jù)PG Name、PG、Rule規(guī)則和CRUSH算法將PG映射到集群的OSD中,最后將要存儲的PG存儲在主OSD中,主OSD負責(zé)將剩下的數(shù)據(jù)副本寫到次OSD中。當(dāng)該PG的最后一個副本成功存儲到OSD中時,OSD會向Ceph客戶端發(fā)送一個存儲完成報告。一個主OSD和多個次OSD組成該PG的活動集(Active Set),當(dāng)活動集中的主OSD出錯時,一個次OSD會被設(shè)置成主OSD?;顒蛹懈鱾€OSD之間可以相互通信,當(dāng)其中一個OSD出錯時,會有一個Peering過程來重新平衡數(shù)據(jù),而該過程是由主OSD負責(zé)的。整個數(shù)據(jù)存儲流程如圖1所示。由于CRUSH算法是一種偽隨機Hash算法,且Ceph有自動平衡數(shù)據(jù)的機制,所以當(dāng)集群穩(wěn)定時數(shù)據(jù)總是盡可能均勻地存放在集群中。
圖1 Ceph客戶端數(shù)據(jù)存儲過程
圖2 運行區(qū)機架邏輯部署圖
Sage等人在提出Ceph分布式文件系統(tǒng)時,特別注重系統(tǒng)的性能和吞吐量,對于集群能耗問題并沒有作太多的考慮。數(shù)據(jù)中心服務(wù)器的利用率非常低,而CRUSH算法是一種偽隨機算法,加之Ceph集群的自我平衡機制,Ceph總是盡可能地將數(shù)據(jù)均勻存放在集群的物理節(jié)點中,這就必然導(dǎo)致了很多服務(wù)器的負載都非常低,因此集群中的許多資源都處于空閑狀態(tài)。Ceph作為云平臺的存儲系統(tǒng),如何合理有效地利用Ceph集群的資源以達到節(jié)能的目的,正是節(jié)約數(shù)據(jù)中心能耗需要做的重點工作。
服務(wù)等級協(xié)議SLA是數(shù)據(jù)中心供應(yīng)商和客戶簽訂的一項重要協(xié)議,其中包含了機房環(huán)境、業(yè)務(wù)正常運行時間、系統(tǒng)響應(yīng)時間、網(wǎng)絡(luò)帶寬等重要指標(biāo),本文在以降低數(shù)據(jù)中心能耗為目標(biāo)的同時,綜合考慮這些重要指標(biāo),將TSLA表示為用戶要求的應(yīng)用完成限制時間。
大量研究表明[11-14],CPU的使用率與數(shù)據(jù)中心的能耗成正相關(guān)關(guān)系。磁盤作為文件系統(tǒng)的存儲媒介,所產(chǎn)生的存儲能耗占到整體能耗的65%[15],很多研究者都建立了磁盤能耗模型來預(yù)測數(shù)據(jù)中心的能耗問題,為精確的能耗管理技術(shù)奠定了基礎(chǔ)[16]。本文通過監(jiān)控集群中節(jié)點的CPU和磁盤的使用率來調(diào)節(jié)整個Ceph集群的狀態(tài),并且以用戶應(yīng)用程序所要求的完成時間TSLA作為參數(shù),建立能耗模型,然后基于該模型提出了一種數(shù)據(jù)副本放置策略,使得Ceph集群在滿足用戶SLA需求和保證用戶QoS的前提下,有效降低Ceph集群的能耗。
假設(shè)Ceph集群分為運行區(qū)和待機區(qū)。兩個區(qū)的服務(wù)器分別位于不同的機架上,待機區(qū)的Ceph節(jié)點用來應(yīng)對應(yīng)用高峰期的極端情況,所以待機區(qū)的節(jié)點大多數(shù)時間都處于待機狀態(tài)。運行區(qū)有a個機架,機架Racki用 Ai(1≤i≤a)編碼;待機區(qū)有b個機架,機架Racki用Bi(1≤i≤b)編碼。每個機架中有m個集群節(jié)點,將運行區(qū)中的機架進行分組,k個機架為一組,若最后一組不足k個機架,則用(k-a%k)個虛擬機架(虛擬機架中節(jié)點的計算能力為0)補足,則整個運行區(qū)中的機架被分組。運行區(qū)機架的邏輯部署如圖2所示,最后一臺橙色的機架表示虛擬機架。用aij(0≤i≤k,0≤j≤L)表示對應(yīng)機架At(t=L×(i-1)+j)中一臺服務(wù)器的計算能力參數(shù),該數(shù)據(jù)可從集群的監(jiān)控平臺讀取。虛擬機架中的服務(wù)器計算能力參數(shù)設(shè)為0,即圖2中aLk=0。假設(shè)系統(tǒng)有n個應(yīng)用程序需要執(zhí)行,每個應(yīng)用程序?qū)?yīng)的里的 K 是一個常數(shù)系數(shù),可以根據(jù)TSLA的大小來調(diào)整,而TSLA指用戶應(yīng)用完成限制時間。令:
優(yōu)化模型的基本形式如下:
其中X為決策變量、Pmin為目標(biāo)函數(shù)、s.t.為約束條件。A為節(jié)點的計算能力參數(shù)矩陣,B為用戶的TSLA矩陣,W為TSLA調(diào)整參數(shù),Pmin指Ceph集群的最小能耗,為集群狀態(tài)矩陣,為的元素,φn表示的附加節(jié)點,η為啟用待機區(qū)服務(wù)器產(chǎn)生的能耗。具體的參數(shù)含義和求解過程將在3.2節(jié)中介紹。
集群中CPU和磁盤的使用率與系統(tǒng)能耗問題始終是一個很難平衡的問題。如果關(guān)閉的節(jié)點太多,雖然能大大減少系統(tǒng)能耗,但也會使得集群的吞吐量嚴重下降;如果關(guān)閉的節(jié)點太少,雖然保證了系統(tǒng)的吞吐量,但卻達不到大量節(jié)能的目的。因此,集群能耗最小化問題是NP-hard難題,又由于集群中各個節(jié)點的計算性能不同,因此集群最小化能耗問題屬于NP-hard問題中的線性組合優(yōu)化問題。該類問題的求解是上個世紀(jì)的難題,到目前為止研究者們已經(jīng)提出了許多算法能很好地求得該類問題的解,如背包算法、模擬退火算法、遺傳算法等[17],但不同的算法有不同的優(yōu)勢,應(yīng)用中可根據(jù)自己的實際情況選擇合適的算法求得能耗模型中決策變量X。
得到方程組AX+W=B的解X,將X與矩陣A的每個行向量作相與運算,便可得到放置用戶數(shù)據(jù)后的集群狀態(tài)矩陣A*,由于引入了TSLA調(diào)整參數(shù)W(-1<W<0)且取值盡可能的小,故得到的 X為不等式AX≥B的最優(yōu)解。即在滿足用戶SLA需求的情況下,要開啟的最小節(jié)點數(shù)為果只開啟Tmin個節(jié)點,相當(dāng)于在不做任何處理的基礎(chǔ)上,關(guān)閉了大量的節(jié)點,那么在大規(guī)模并行處理時集群的吞吐量和數(shù)據(jù)可用性會嚴重下降,為了保證Ceph集群的服務(wù)質(zhì)量,下文提出了一種數(shù)據(jù)副本放置策略。
數(shù)據(jù)副本放置策略是影響數(shù)據(jù)中心能耗的重要因素,良好的數(shù)據(jù)副本放置策略能夠有效地降低數(shù)據(jù)中心的能耗[17]。本文基于第3章提出的集群能耗模型,提出了一種數(shù)據(jù)副本放置策略。Tmin已經(jīng)解決了用戶的SLA問題,因此在此基礎(chǔ)上的副本放置問題主要考慮Ceph集群數(shù)據(jù)的完整性和容錯性。
Ceph集群有replicated和erasure兩種類型的存儲池pool,前一種是基于純數(shù)據(jù)的,后一種是基于糾刪碼的。本文提出的是基于純數(shù)據(jù)的PG副本放置策略。假設(shè)一個應(yīng)用程序有R≥3個PG副本需要存放,hostm為該PG的主OSD所在節(jié)點,Ai(1≤i≤a)為hostm所在機架。將其中一個PG副本存放在與hostm相鄰的節(jié)點中,然后以Ai為中心,將另一個PG副本存儲在與其左右相鄰的s個機架中,假設(shè)該機架為。主機架 Ai(PG的主OSD所在機架)的數(shù)據(jù)恢復(fù)域(Data Recovery Field,DRF)為 ?i(t)={At|i-s≤t≤i+s,t≠i} ,它總是關(guān)于主機架對稱,以此來保證數(shù)據(jù)恢復(fù)過程中的數(shù)據(jù)傳輸時間,而又體現(xiàn)了數(shù)據(jù)存儲的隨機性。極端情況下,為了應(yīng)對高峰期,數(shù)據(jù)的PG副本數(shù)R可能大于3,那么將剩下的R-3個PG副本隨機存放在待機區(qū)節(jié)點的OSD中。集群副本放置策略如圖3所示,其中Region1為運行區(qū),Region2為待機區(qū)。
賓夕法尼亞州立大學(xué)的Shekhar Srikantaiah教授針對數(shù)據(jù)中心的資源利用率和能源消耗問題做了實驗,他指出當(dāng)磁盤利用率超過50%,CPU利用率超過70%時,計算機消耗的能量將隨著磁盤使用率的增大而急劇上升[18],這就會導(dǎo)致磁盤的單位I/O能耗值(單位I/O能耗值=加,使得集群能效下降??紤]集群能效問題,實驗基于3.2節(jié)中的最小開啟節(jié)點數(shù)目Tmin以及上章提出的數(shù)據(jù)副本放置策略,只將服務(wù)器的一半磁盤用作OSD,將節(jié)點的CPU平均使用率控制在70%左右。當(dāng)在Ceph Calamari中監(jiān)控到節(jié)點參數(shù)超出這個范圍時,就把該服務(wù)器的計算能力置為0,那么由3.1節(jié)的能耗模型可知,將不會有新的數(shù)據(jù)存儲到該節(jié)點上。另外,由于Ceph集群有自我平衡的特性,將會嚴重影響該實驗的進行,所以在該實驗中,通過修改Ceph集群的配置文件,關(guān)閉了Ceph集群的自動平衡功能。
圖3 集群副本放置策略
為了驗證和評估該策略的有效性,在Ceph集群環(huán)境中進行了實驗測試。實驗中使用了13臺戴爾R710服務(wù)器。服務(wù)器的部署環(huán)境如下:運行區(qū)包括a=12臺物理服務(wù)器;待機區(qū)包括b=1臺物理服務(wù)器;運行區(qū)和待機區(qū)的服務(wù)器分別放在不同的機柜中,以便從IDC室的UPS中讀取耗電量。為了更真實地模擬異構(gòu)集群環(huán)境,在服務(wù)器上運行了占用不同服務(wù)器計算資源的虛擬機,并在集群中添加了3臺交換機(S3352P-SI 48口),將運行區(qū)的服務(wù)器分開放在6個機架,則k=2,L=6;每個機架中放置了m=2臺服務(wù)器。服務(wù)器采用Centos7 64位操作系統(tǒng),所使用的Ceph版本為Jewel(10.2.5),數(shù)據(jù)副本數(shù)為3。用FIO測試軟件測試集群的吞吐量,用Ceph Calamari監(jiān)控Ceph集群狀態(tài),包括集群CPU使用情況、節(jié)點平均負載和集群IOPS等。整個Ceph集群的邏輯部署如圖4所示。
圖4 Ceph集群部署邏輯圖
OSD是Ceph集群中的主要能耗組件。針對運行區(qū),假定服務(wù)器的平均功耗為Q,由A和X可得集群副本放置狀態(tài)圖第4章提出的數(shù)據(jù)副本策略需開啟的集群節(jié)點數(shù)目為表示恢復(fù)域中的另一個附加節(jié)點。在沒有啟動待機區(qū)服務(wù)器的情況下,當(dāng)前狀態(tài)下的集群的總能耗為:
其中n(0≤n≤N且n為整數(shù))表示用戶SLA請求批次。
算法步驟如下:
步驟1輸入TSLA,即用戶應(yīng)用完成限制時間,得到B=1 000/TSLA,其中 K=1 000 。
步驟2從calamari中讀取CPU的使用率,并計算節(jié)點的CPU平均使用率,得到A。
步驟3由能耗模型計算出W和X,將A的行向量與向量X相與,得到集群狀態(tài)圖A*。
步驟4根據(jù)新得到的集群狀態(tài)圖修改crushmap的內(nèi)容,并將新的crushmap應(yīng)用于Ceph集群中。
步驟5計算出當(dāng)前集群總能耗p。
步驟6用FIO壓力測試工具,模擬不同的負載,進行集群性能測試。
當(dāng)有新的用戶應(yīng)用需求時,重復(fù)步驟1~6。
本文的具體實驗過程如下:對運行區(qū)的服務(wù)器進行測試,向Ceph集群中存入40 GB數(shù)據(jù),數(shù)據(jù)的pg副本數(shù)為3,開始時,可設(shè),其中 Rack7和Rack8是虛擬機架,假定第一個用戶的應(yīng)用完成時間TSLA=500 s,則 B1=(2 ,0)T,此時由能耗模型中的式(2)可解得:X1=(0 ,0,1,1)T,W1=0,由 A1和 X1可得 A*1=,根據(jù)該計算結(jié)果,僅將Rack3和Rack4中的所有服務(wù)器和機架Rack2中的1臺服務(wù)器切換到運行狀態(tài),并將隔離域設(shè)置成host,其他機架中的服務(wù)器仍然處于待機狀態(tài),由于此時運行區(qū)的大多數(shù)節(jié)點都處于待機狀態(tài),所以待機區(qū)的節(jié)點不需進行狀態(tài)切換??蓪rushmap的內(nèi)容做如下修改:
gRoot setA1{
id-1
alg straw
hash 0
item osd.0 weight 0.000
…… ……
item osd.7 weight 0.000
item osd.8 weight 0.010
…… ……
item osd.11 weight 0.010
item osd.12 weight 0.000
…… ……
item osd.15 weight 0.000
item osd.16 weight 0.010
…… ……
item osd.31 weight 0.010
item osd.32 weight 0.000
…… ……
item osd.52 weight 0.000
}
然后將此rule規(guī)則應(yīng)用到Ceph集群,分別將數(shù)據(jù)存放在第3個和第4個機架中的兩個節(jié)點和第2個機架的第1個節(jié)點中,其中2號機架為附加機架,可以計算出此時的集群能耗為4 400 W 。以此類推,當(dāng)有新的應(yīng)用請求時,重復(fù)以上操作便可得到對應(yīng)的集群能耗。限于篇幅,現(xiàn)給出不同TSLA請求時,各個機架中節(jié)點的平均CPU的使用率統(tǒng)計情況,如圖5所示。將不同TSLA請求下模型中的各參數(shù)值列于表1中。
圖5 各機架中節(jié)點的CPU平均使用率
經(jīng)一個月的數(shù)據(jù)統(tǒng)計,服務(wù)器忙時的平均功耗大約為500 W,空閑時的平均功耗為200 W,可以計算出兩種情況下對應(yīng)OSD的平均能耗大致為125 W和50 W。在優(yōu)化前和優(yōu)化后,分別從Ceph集群中存儲40 GB數(shù)據(jù),數(shù)據(jù)的恢復(fù)域S=2,在用戶不同TSLA請求的情況下,監(jiān)控集群的運行情況。圖6是處于運行狀態(tài)的OSD個數(shù)對比圖。
圖6 集群中運行的OSD對比圖
圖7為采用第3章的能耗優(yōu)化模型計算的集群能耗和采用該數(shù)據(jù)副本放置策略前后的實際集群能耗對比圖。從圖7中可以看到,當(dāng)集群穩(wěn)定時,用優(yōu)化模型計算的能耗值與采用優(yōu)化數(shù)據(jù)副本策略所產(chǎn)生的實際能耗值基本保持一致,且誤差率100%)維持在6%左右,因此,使用該能耗優(yōu)化模型,能很好地預(yù)測集群能耗的走向,進而方便對集群能耗的控制和管理。
表1 能耗模型各個參數(shù)
圖7 集群能耗對比圖
圖7中,隨著TSLA值的增大,節(jié)約的能耗由少變多再變少。這是因為,TSLA=500 s時,集群的負載太小,優(yōu)化前和優(yōu)化后集群中的節(jié)點產(chǎn)生的能耗都很少,所以節(jié)約電量的效果并不明顯。此外,計算時采用了節(jié)點能耗的最大值來計算,難免存在誤差。而當(dāng)1 000 s<TSLA<2 500 s時,集群的負載適中,節(jié)點可調(diào)節(jié)的空間很大,所以優(yōu)化前和優(yōu)化后耗電量的差值增大,能耗節(jié)約效果明顯。而當(dāng)TSLA=2 500 s時,集群的負載臨近上限,所以當(dāng)又有TSLA=3 000 s的用戶請求時,集群的能耗幾乎不再增加。從圖6中也可以看出,當(dāng)TSLA=2 500 s時,集群中運行區(qū)的所有節(jié)點都已經(jīng)處于運行狀態(tài),這就說明集群可調(diào)整的空間特別小,所以節(jié)約的能耗值偏低。從以上的分析中可得出一個結(jié)論:當(dāng)集群穩(wěn)定且TSLA值適中時,采用該優(yōu)化數(shù)據(jù)副本放置策略的效果較好,節(jié)約的耗電量可達到14.3%,而當(dāng)服務(wù)器節(jié)點本身的能耗越大時,節(jié)約的耗電量會高于這個值。
響應(yīng)時間是一個衡量集群服務(wù)質(zhì)量和性能的重要指標(biāo),它是滿足用戶SLA需求的前提條件。若響應(yīng)時間太長,必定會增加應(yīng)用的完成時間,用戶的SLA需求就得不到保證。但由于關(guān)閉了集群中的部分節(jié)點,集群的性能和服務(wù)質(zhì)量必將受到影響,因此要控制集群的響應(yīng)時間,以保證集群的服務(wù)質(zhì)量,這也是不能關(guān)閉太多服務(wù)器的原因。本文采用FIO壓力測試軟件對集群進行了模擬測試。圖8為采用該數(shù)據(jù)副本策略前后的集群響應(yīng)時間對比圖。包括順序讀和隨機讀,實驗數(shù)據(jù)大小均為40 MB。
圖8 集群平均響應(yīng)時間
從圖8可以看到,集群采用該策略后,順序讀取數(shù)據(jù)的響應(yīng)時間增加了3.1%,而隨機讀數(shù)據(jù)的響應(yīng)時間反而變少了。由此可以看出,該數(shù)據(jù)副本放置策略在對集群的服務(wù)質(zhì)量影響不大的情況下,對集群能耗問題進行了優(yōu)化,有效降低了數(shù)據(jù)中心能耗。
本文針對數(shù)據(jù)中心巨大的能耗問題,對系統(tǒng)進行建模,并在此基礎(chǔ)上提出了一種基于Ceph集群的數(shù)據(jù)副本放置策略,最后在Ceph集群環(huán)境中驗證了該策略的有效性。實驗表明,該能耗管理策略,能在對集群服務(wù)質(zhì)量影響不大的前提下,有效減少集群能耗,達到了優(yōu)化集群能耗的目的。而如何有效利用待機區(qū)節(jié)點,實現(xiàn)數(shù)據(jù)和應(yīng)用的遷移,是將來要做的工作。
:
[1]周品.Hadoop云計算實戰(zhàn)[M].北京:清華大學(xué)出版社,2012:10-11.
[2]Leverich J,Kozyrakis C.On the energy (in) efficiency of Hadoop clusters[J].ACM Sigops Operating Systems Review,2010,44(1):61-65.
[3]Kaushik R T,Bhandarkar M.GreenHDFS:towards an energyconserving,storage-efficient,hybrid Hadoop compute cluster[C]//International Conference on Power Aware Computing and Systems,2010:1-9.
[4]李俊濤,吳小開.基于布朗指數(shù)法的虛擬機動態(tài)整合方法[J].計算機工程與應(yīng)用,2016,52(7):56-61.
[5]宋杰,李甜甜,閆振興,等.一種云計算環(huán)境下的能效模型和度量方法[J].軟件學(xué)報,2012,23(2):200-214.
[6]黃慶佳.能耗成本感知的云數(shù)據(jù)中心資源調(diào)度機制研究[D].北京:北京郵電大學(xué),2014.
[7]房丙午,黃志球.云計算中能耗和性能感知的虛擬機優(yōu)化部署算法[J].計算機工程與科學(xué),2016,38(12):2419-2424.
[8]Weil S A,Brandt S A,Miller E L,et al.Ceph:a scalable,high-performance distributed file system[C]//Proceedings of the 7th Symposium on Operating Systems Design and Implementation,2006:307-320.
[9]Weil S A,Brandt S A,Miller E L,et al.CRUSHR:controlled,scalable,decentralized placement of replicated data[C]//Proceedings of 2006 ACM/IEEE Conference on Supercomputing.Tampa,USA:ACM Press,2006:367-378.
[10]沈良好,吳慶波,楊沙洲.基于Ceph的分布式存儲節(jié)能技術(shù)研究[J].計算機工程,2015,41(8):13-17.
[11]Ren C,Wang D,Urgaonkar B,et al.Carbon-aware energy capacity planning for datacenters[C]//2012 IEEE 20th International Symposium on Modeling,Analysis&Simulation of Computer and Telecommunication Systems(MASCOTS),2012:391-400.
[12]Feller E,Morin C,Leprince D.State of the art of power saving in clusters and results from the EDF case study[D].Institut National de Recherche en Informatique et en Automatique(INRIA),2010.
[13]羅亮,吳文峻,張飛.面向云計算數(shù)據(jù)中心的能耗建模方法[J].軟件學(xué)報,2014(7):1371-1387.
[14]Kontorinis V,Zhang L E,Aksanli B,et al.Managing distributed UPS energy for effective power capping in data centers[C]//2012 39th Annual International Symposium on Computer Architecture(ISCA),2012:488-499.
[15]孫鑒,李戰(zhàn)懷,張曉,等.基于統(tǒng)計量的存儲系統(tǒng)磁盤功耗建模方法研究[J].計算機研究與發(fā)展,2016,53(7):1517-1531.
[16]Pinheiro E,Bianchini R.Energy conservation techniques for disk array-based servers[C]//ACM International Conference on Supercomputing,2014:369-379.
[17]邢文訓(xùn),謝金星.現(xiàn)代優(yōu)化計算方法[M].2版.北京:清華大學(xué)出版社,2005:113-208.
[18]Srikantaiah S,Kansal A,Zhao F.Energy aware consolidation for cloud computing[C]//Proceedings of the 2008 Conference on Power Aware Computing and Systems,2008:1-5.