武文 李欣 張曉峰
摘 要:目前云計算平臺彈性性能越來越受到用戶重視。為了提升云平臺提供商的服務(wù)質(zhì)量,保證用戶能夠準(zhǔn)確獲取所購買云服務(wù)的彈性性能,基于目前云計算服務(wù)提供商的服務(wù)等級協(xié)議,從第三方角度提出一種量化分析方式,通過對云平臺CPU利用率進行實時檢測與計算,得出云平臺的實際彈性性能。利用Openstack開源云平臺進行仿真實驗,驗證設(shè)計工具的有效性,對用戶測試云平臺彈性性能有指導(dǎo)意義。
關(guān)鍵詞:云平臺;云平臺彈性;自動伸縮;工作負載;云計算
DOI:10. 11907/rjdk. 182453
中圖分類號:TP393文獻標(biāo)識碼:A文章編號:1672-7800(2019)002-0165-04
Abstract: Currently, the elastic performance of cloud computing platforms is getting more and more attention from users. In order to enhance the service quality of cloud platform providers, we should ensure that users can accurately acquire the elastic performance of the purchased cloud services. In view of the service level agreement (SLA) of current cloud computing service providers, it is proposed from the perspective of third parties. Through the real-time detection and calculation of the CPU utilization of the cloud platform, the actual elastic performance of the cloud platform is obtained. Openstack is a open source cloud platform. It is used for simulation experiments to verify the effectiveness of the design tools and provide guidance for users to test the elastic properties of the cloud platform.
Key Words: cloud platform; cloud platform elasticity; autoscaling; workload; cloud computing
0 引言
云計算是目前較為完善的一種商業(yè)服務(wù)模式[1,2]?;ヂ?lián)網(wǎng)公司通過搭建云計算服務(wù)平臺,虛擬化計算、網(wǎng)絡(luò)、存儲等資源,依照按需付費方式將其出售給用戶使用。按需付費優(yōu)勢在于用戶可以用更加合理的價格滿足需求,閑時可減少實例以降低開銷,忙時可增加實例以保證服務(wù),是目前云計算能夠占據(jù)市場的根本原因。按需付費模式技術(shù)核心由云計算平臺的彈性服務(wù)保障。彈性是指云計算平臺的資源調(diào)配能力,能夠根據(jù)用戶需求自動增減資源以提供高效優(yōu)質(zhì)服務(wù),是云計算服務(wù)平臺最為突出的一個特性[3,4]。
目前國內(nèi)外對于云計算平臺彈性性能展開了大量研究。就彈性伸縮方式而言,其分為橫向伸縮和縱向伸縮[5]。橫向擴展基于分布式系統(tǒng)的發(fā)展而發(fā)展,因此它集成了許多分布式系統(tǒng)的優(yōu)越性能,比如故障影響范圍小、易于開發(fā)擴展、技術(shù)成熟等[6,7]。而且,從自動擴展與手動擴展角度,橫向擴展方式也更易于機器自動完成擴展,縱向擴展難免會遇到停機維護升級的困擾[8,9]。但是,伴隨橫向擴展出現(xiàn)的是各虛擬機之間負載均衡問題與不同虛擬機之間任務(wù)分配問題,同時也會導(dǎo)致彈性計算性能的測量數(shù)值產(chǎn)生異動。Koperek[10]通過設(shè)置一種簡單的閾值判斷CPU負載是否超過80%,以判定是否觸發(fā)了預(yù)先彈性規(guī)則。Hasan[11]通過設(shè)置閾值上限和下限的方式進行判定。
本文提出一種量化監(jiān)測云計算服務(wù)平臺彈性性能方案。通過對用戶租用虛擬機實例的各項基礎(chǔ)指標(biāo)如CPU、帶寬、內(nèi)存等進行監(jiān)控,綜合判斷該運行實例是否正常工作,之后進行負載壓力測試,分別考察在高負載和低負載情況下,云計算服務(wù)平臺能否根據(jù)負載變化彈性分配資源給用戶,保證服務(wù)平穩(wěn)運行。
1 彈性云服務(wù)現(xiàn)狀
目前國內(nèi)云計算服務(wù)提供商有阿里云、騰訊云、華為云、360云、青云等,國外有亞馬遜、微軟、谷歌等,不同云服務(wù)商提供的產(chǎn)品性能有一定差異[12]。從各廠商產(chǎn)品的服務(wù)等級協(xié)議(Service-Level Agreement,SLA)或者服務(wù)介紹中獲取到一些基本信息,進行分析比對(見表1)。
在表1中,華為彈性云主機由于產(chǎn)品分類細粒度更高,包括通用型、內(nèi)存密集型、計算密集型、存儲密集型、計算加速型5類,因此不同類型產(chǎn)品自動擴展實例上限數(shù)略有不同,在16~60臺之間。青云的最大自動擴展數(shù)在其產(chǎn)品介紹中并沒有提及,可以根據(jù)用戶需求自由定義。在計費方式上,所有云計算服務(wù)提供商都沒有對自動伸縮功能計費,而是將其計算在擴展或收縮的資源實例上。青云因為其服務(wù)更加精準(zhǔn)實時,計費上采用了逐級非線性遞增方式,相較于其它云計算服務(wù)提供商使用相同資源實例,需要付出額外金錢。360云主機在其服務(wù)中使用了均衡負載技術(shù),但是并不提供自動伸縮服務(wù),需要手動操作。同時,其它云計算服務(wù)商均提供手動擴展或收縮資源實例服務(wù),而且手動操作擴展的資源實例無法通過自動伸縮功能釋放資源,其實例擁有更高優(yōu)先級。
在目前大多數(shù)云計算服務(wù)提供商的SLA中,彈性多表述為資源調(diào)配能力或自動伸縮性能[13]。從表1各項對比可以看出,不同云計算服務(wù)商提供的彈性服務(wù)性能不盡相同。因此需要對SLA中有關(guān)云彈性性能指標(biāo)進行標(biāo)準(zhǔn)化定義以及檢測,便于對比不同云計算平臺提供的彈性性能優(yōu)劣[14]。
2 彈性定義及指標(biāo)量化
2.1 彈性定義
目前對于彈性定義有以下幾個方面觀點:NIST[15]提出云計算提供的快速彈性通過縮減或擴展資源實現(xiàn)。該定義強調(diào)彈性能力的實時與動態(tài)性,但是僅反映了理想狀態(tài)下的彈性。IBM[16]認為云計算系統(tǒng)資源的擴展或者縮減過程不需要人工操作,即自動實現(xiàn),并認為彈性和擴展性是等同的。該定義著重關(guān)注彈性的自動化實現(xiàn),但是將擴展性與彈性等同看待,沒有關(guān)注云平臺下資源的實時動態(tài)變化,而且全自動化實現(xiàn)就目前應(yīng)用來看仍然不現(xiàn)實。ODCA將彈性定義為是一種解決云計算資源調(diào)度中能夠改變配置和進行擴展的方案,基于負載的增減改變云計算系統(tǒng)資源能力為彈性,關(guān)注了配置問題,并將其作為彈性能力的一部分,但其沒有反映云平臺彈性的實時性、動態(tài)性,不能體現(xiàn)其快速伸縮的特點[17]。Reuven[18]將彈性視為在本地與遠程資源組成的資源池中進行資源管理、測量、預(yù)測和調(diào)整適應(yīng)并實時處理申請的一種可被計量能力。該定義認為彈性可以作為一種能夠被量化的能力反映,但未闡述清楚彈性如何被計量的問題。
本文對云平臺彈性性能的定義為:云服務(wù)提供商能夠在規(guī)定時間內(nèi)根據(jù)用戶需求,動態(tài)分配資源,在性價比最優(yōu)的同時,保證用戶服務(wù)正常運行。
2.2 彈性性能測量
云平臺彈性性能測量一般通過對運行實例的CPU、I/O、帶寬、內(nèi)存等資源狀態(tài)進行分析,從而判斷云平臺的彈性性能是否滿足要求。本文通過對運行實例CPU指標(biāo)研究進行彈性檢測。
從上述對各廠商彈性性能研究可以得知,一般云平臺彈性觸發(fā)時間都在5min以內(nèi)。因此以5min為閾值,彈性反應(yīng)時間超出閾值,則表明彈性不達標(biāo);在5min內(nèi)完成彈性伸縮,則表明彈性達標(biāo)。同時,對彈性性能等級進行劃分,超出時間越多,表明彈性性能越差;若發(fā)生系統(tǒng)宕機情況,則直接記為零分。
本文中,云平臺彈性性能記為Y,被測試運行實例CPU負載持續(xù)高于80%的時間為X,則云平臺彈性性能為:
3 彈性測試實驗
3.1 彈性檢測原理
本文通過對云平臺上運行實例的CPU狀態(tài)進行分鐘級實時監(jiān)測,同時進行數(shù)據(jù)分析,判斷其能否在不同負載情況下實時觸發(fā)云平臺彈性性能,保證服務(wù)正常運行。
首先運行Linux系統(tǒng)下性能監(jiān)控工具sar,獲取該實例的CPU使用狀態(tài),時間間隔設(shè)置為每分鐘檢測一次,并將檢測數(shù)據(jù)保存在以該時間命名的日志文件中。然后設(shè)置一段檢測時間,本文選擇1 000s,大于一般彈性觸發(fā)所需時間5min,保證了合理觸發(fā)時間。最后通過awk語句對采集到的日志文件進行數(shù)據(jù)處理,判斷云平臺彈性性能是否及時觸發(fā)。
如果運行實例的CPU負載在80%以上,且持續(xù)時間超過5min,那么判定云平臺并沒有按照要求觸發(fā)彈性性能,不能保證服務(wù)正常運行。如果運行實例的CPU負載在達到80%之后,5min內(nèi)逐漸回落到80%以下,那么說明云平臺及時觸發(fā)了彈性性能,保證了服務(wù)正常運行。如果運行實例的CPU負載一直低于80%,說明負載壓力給予不夠,應(yīng)該提升負載壓力。
3.2 負載設(shè)計
云計算中常見負載類型有起伏可控的平穩(wěn)型、可以預(yù)知的漸變型、不可預(yù)知的激變型3種[19]。其分別對應(yīng)云平臺運行時彈性服務(wù)的3種狀態(tài):非觸發(fā)彈性狀態(tài)、手動調(diào)整伸縮組狀態(tài)以及自動伸縮彈性狀態(tài)。
起伏可控的平穩(wěn)型一般出現(xiàn)在客戶服務(wù)淡季,資源需求量較低,在一定時間內(nèi)云平臺上的負載變化很小。如12306鐵路部門在運行服務(wù)淡季,網(wǎng)易、騰訊等游戲服務(wù)商在工作日時間。
可以預(yù)知的漸變型是指云計算服務(wù)提供商能夠通過分析判斷或者前期經(jīng)驗總結(jié),提前對接下來一段時間內(nèi)可能發(fā)生的負載變化進行預(yù)判,用戶通過手動添加伸縮組的方式保證服務(wù)正常運行。如游戲提供商在工作日19-22點以及周末大型游戲活動期間,高校選課系統(tǒng)在學(xué)期初學(xué)生選課期間。
不可預(yù)知的激變型通常出現(xiàn)在用戶業(yè)務(wù)量暴增期間,用戶并不清楚自己將在接下來一段時間內(nèi)可能接受到多大負載量。如新開發(fā)某款A(yù)PP突然變得火爆,運營商如果沒有接入云架構(gòu)做好準(zhǔn)備,就很可能由于突增的訪問導(dǎo)致業(yè)務(wù)崩潰;淘寶在“雙十一”活動期間、12306在春運或者旅游黃金周之前,雖然都會有一定分析預(yù)判,但是仍然無法獲知具體業(yè)務(wù)量大小。
3.3 核心代碼實現(xiàn)
核心代碼實現(xiàn)如下:
4 實驗仿真與分析
4.1 實驗環(huán)境
實驗環(huán)境為利用Openstack開源資源搭建的一個測試云平臺,實例上運行的操作系統(tǒng)為64位Ubuntu14.04。
表2中,os01上部署的主要是各部件控制器,包括計算節(jié)點nova、網(wǎng)絡(luò)節(jié)點neutron、塊存儲節(jié)點cinder、對象存儲節(jié)點swift;os02、os03為計算節(jié)點;os04、os05、os06為存儲節(jié)點ceph;os07為身份認證管理系統(tǒng)Keystone;os08為服務(wù)頁面Web;os09、os10為測試實例。
4.2 實驗過程與數(shù)據(jù)分析
通過3種實驗,在前文提出的3種不同負載情況下對云平臺彈性性能進行測試。
實驗一:開啟os10,利用loadrunner對os09運行實例的CPU進行加壓,使其CPU利用率介于30%~80%之間,持續(xù)1 000s。
實驗二:開啟os10,利用loadrunner對os09運行實例的CPU進行線性加壓,使其CPU利用率逐步達到80%,持續(xù)1 000s。
實驗三:將os10關(guān)閉并脫離云計算平臺,利用loadrunner對os09運行實例的CPU進行加壓,模擬暴增壓力,極短時間內(nèi)使其CPU利用率達到80%以上,持續(xù)1 000s。
如圖1所示,為方便集中展示,將處理結(jié)果統(tǒng)一保存在文件result.txt中,并將其反饋到控制主機Os01,可以根據(jù)實驗次序分別查看。在實驗一中,由于loadrunner產(chǎn)生的負載壓力不足,沒有達到云平臺觸發(fā)彈性要求,因此并沒有觸發(fā)彈性規(guī)則。在實驗二中,由于Os09實例的CPU負載超過了80%,在規(guī)定時間5min內(nèi)觸發(fā)了彈性規(guī)則,通過均衡負載降低了CPU利用率,因此滿足彈性要求,彈性指數(shù)為100%。在實驗三中,由于提前關(guān)閉了備用彈性實例os10,因此在os09實例的CPU利用率達到80%后無法觸發(fā)彈性規(guī)則,在1 000s內(nèi)其利用率一直高達80%以上,所以根據(jù)公式計算得知彈性指數(shù)為31.3%。
綜上所述,該檢測工具能夠正確檢測云平臺彈性性能。
5 結(jié)語
本文提出一種基于第三方的云平臺彈性性能檢測工具,算法通過對連續(xù)時間內(nèi)用戶實例CPU的負載情況進行監(jiān)控分析,判斷該云平臺彈性性能是否有效,為云計算彈性性能檢測提供了技術(shù)保障[20]。但是該工具還存在一定缺陷:僅部署在一個運行實例上,因此無法獲取其它實例的運行情況,不能完整得出整個云平臺的彈性性能。同時,單一CPU檢測僅能從一個側(cè)面反映實例的運行情況。因此,下一步研究重點為多運行實例和多指標(biāo)檢測分析與算法優(yōu)化。
參考文獻:
[1] ARMBRUST M,F(xiàn)OX O,GRIFFITH R,et al. Above the clouds:a berkeley view of cloud computing[J]. Eecs Department University of California Berkeley,2009,53(4):50-58.
[2] LIMRUNGSI N,ZHAO J,XIANG Y,et al. Providing reliability as an elastic service in cloud computing[C]. IEEE International Conference on Communications,2012,11(18):2912-2917.
[3] CALHEIROS R N,TOOSI A N,VECCHIOLA C,et al. Acoordinator for scaling elastic applications across multiple clouds[J]. Future Generation Computer Systems,2012,28(8):1350-1362.
[4] MOLDOVAN D,COPLI G,TRUONG H L,et al. Mela:monitoring and analyzing elasticity of cloud services[C]. Cloud Computing Technology and Science,2013,1:80-87.
[5] SHARMA U, SHENOY P, SAHU S, et al. Kingfisher: a system for elastic cost-aware provisioning in the cloud[J]. Infocom,IEEE,2011,28(6):206-210.
[6] KHATUS S, GHOSH A, MUKHERJEE N. Optimizing the utilization of virtual resources in Cloud environment[J]. IEEE International Conference on Virtual Environments Human-computer Interfaces & Measurement Systems,2010:82-87.
[7] GHANBARI H, SIMMONS B, LITOIU M, et al. Optimal autoscaling in a IaaS cloud[C]. International Conference on Autonomic Computing ACM,2012:173-178.
[8] GALANTE, GUILHERME, BONA L C E D. A survey on cloud computing elasticity[C]. IEEE Fifth International Conference on Utility and Cloud Computing,2013:236-270.
[9] COUTINHO E F, SOUSA F R D C, REGO P A L, et al. Elasticity in cloud computing: a survey[J].? Annals of Telecommunications,2015,70(7):289-309.
[10] KOPEREK P,F(xiàn)UNIKA W. Dynamic business metrics-driven resource provisioning in cloud envuionments[C]. International Conference on Parallel Processing and Applied Mathematics,2016:171-180.
[11] HASAN M Z, MAGANA E, CLEMM A, et al. Integrated and autonomic cloud resource scaling[J]. Network Operations & Management Symposium,2012,104(5):1327-1334.
[12] 王曉鈺. 基于云平臺可彈性擴展的Web應(yīng)用系統(tǒng)的研究與實現(xiàn)[D]. 北京:北京郵電大學(xué),2018.
[13] 徐勁松. SLA約束下的云資源調(diào)度關(guān)鍵技術(shù)研究[D]. 南京:南京郵電大學(xué),2011.
[14] 李喬,鄭嘯.? 云計算研究生現(xiàn)狀綜述[J]. 計算機科學(xué),2011,38(4):32-37.
[15] MELL P,GRANCE T.The NIST definition of cloud computing[J]. Communications of the ACM,2011,53(6):50.
[16] SCHOUTIOU E. Rapid elasticity and the cloud,September 2012[EB/OL]. http://thoughtsoncloud.com/index.php/2012/09/rapid-elasticity-and-the-cloud.
[17] 邊爽. 云計算系統(tǒng)資源彈性調(diào)度的評測方法研究[D]. 哈爾濱:哈爾濱工業(yè)大學(xué),2015.
[18] COHEN R. Defining elastic computing,September 2009[EB/OL]. http://www.elasticvapor.com/2009/09/defining-elastic-com-putting.html,2013.
[19] 陳龍,張國慶,陳寧江,等. 可區(qū)分服務(wù)的反饋式Web應(yīng)用負載均衡策略[J]. 廣西大學(xué)學(xué)報:自然科學(xué)版,2012,37(6):1170-1176.
[20] 楊祥宏. 基于IaaS云平臺的性能評測與建模方法研究[D]. 杭州:杭州電子科技大學(xué),2016.
(責(zé)任編輯:何 麗)