張曉峰 李欣 孫海春 趙曉凡 中國人民公安大學信息技術與網(wǎng)絡安全學院
云計算是一種商業(yè)模式。在該模式的定價機制中,最常用的付費方式是按需付費,其中彈性是按需付費的核心。彈性表現(xiàn)良好的云服務,既能保障用戶租賃服務的最高性價比,又能保障云服務提供商的最低成本。
本文將衡量一個云的資源調(diào)配能力的指標定義為云彈性。具體思路為:將云彈性完全量化并客觀打分,借助層次分析法,以得分高低對云彈性優(yōu)劣進行衡量;利用心跳包技術以及閾值判斷實現(xiàn)云彈性的客觀檢測;最后,開發(fā)相應的檢測工具軟件,并對其效果和性能進行了評估。
目前對于云服務的評測缺乏全面系統(tǒng)的研究。雅虎公司開發(fā)的YSCB框架的主要指標為:scale-up測試靜態(tài)可擴展性,speedup測試動態(tài)可擴展性。IBM設計研發(fā)了一種CloudBench。思博倫公司提出了PASS測試方法,測試系統(tǒng)的可擴展性。C.Binig提出的Enhanced TPC-W benchmark框架,通過測試服務器的性能指標吞吐率和響應時間來評估云可擴展性。
關于云服務評測有如下幾方面問題:一是指標評價體系比較單一;二是在彈性評測中缺乏有效的方法對云平臺的彈性能力進行量化。同時,已發(fā)布SLA中關于資源管理與調(diào)配能力的表述也不具有可比性(表1)。因此,需要對SLA中的云的資源調(diào)配能力進行定義及檢測,為用戶提供更多的參考。
?
關于彈性的定義,NIST提出云計算提供的快速彈性通過縮減或者擴展資源來實現(xiàn);IBM 認為云計算系統(tǒng)資源的擴展或者縮減過程能夠自動實現(xiàn); OCDA(Open Data Center Alliance)將用戶負載的增加或者釋放云計算系統(tǒng)資源的能力即為彈性。歸納彈性定義現(xiàn)狀,得出云平臺的彈性應該具備以下幾個關鍵點:(1)實時動態(tài)性;(2)迅速;(3)自動化。綜上給出彈性定義。
定義1 (云彈性E)云彈性是衡量一個云的資源調(diào)配能力的指標,記為E,表示為:
其中,Ec、 En、 ES分別表示計算、網(wǎng)絡以及存儲資源的彈性;w1、 w2、 w3分別代表計算、網(wǎng)絡以及存儲資源的權重,且滿足w1+ w2+ w3=1。
本小節(jié)基于剖析彈性評估要素及其關聯(lián)關系的思路,借助層次分析法理論,實現(xiàn)云平臺彈性的量化評估。
1. 計算資源的量化
根據(jù)SLA的研究現(xiàn)狀,一般會指定計算資源的擴展范圍以及擴展極限,根據(jù)文獻[9],擴展速度需要被考慮。計算資源彈性定義如下。
定義2(云平臺計算資源彈性Ec) 云平臺計算資源彈性記為Ec,表示為:
其中,vec代 表彈性擴展的速度,LC代表擴展的能力極限。w4、 w5為 權重。且滿足w4+ w5=1。
定義3(云平臺計算資源擴展速度vec)云平臺計算資源擴展速度記為vec,表示為:
其中,△CC為 CPU利用率的改變量,tC為實際間隔時間,設置單位為秒。vei為單次測試中的擴展速度,多次測量求平均值,表示為:
其中,n為擴展次數(shù)。
Lc是擴展能力極限,具體得分見表2:
L 5 0%c 5 0% L 1 0 0%c L 1 0 0%c
2. 存儲資源的量化
定義4(云平臺存儲資源彈性Es) 云平臺計算資源彈性記為Es,表示為:
其中,ms代 表存儲資源的擴展方式,Ls為擴展能力極限,w6、 w7為 權重,且滿足w6+ w7=1。量化打分如表3與表4所示。
?
?
3. 網(wǎng)絡資源的量化
網(wǎng)絡資源主要包括帶寬資源,由于帶寬資源的擴展速度非常快,考慮擴展方式與擴展極限,網(wǎng)絡資源彈性定義如下。
定義5(云平臺網(wǎng)絡資源彈性En) 云平臺網(wǎng)絡資源彈性記為En,表示為:
其中,mn代表網(wǎng)絡資源的擴展方式,有自動擴展與手工申請擴展兩種,Ln為擴展能力極限,具體分值同上表3與表4,w8、 w9為 權重,且滿足w8+ w9=1。
本文提出了基于心跳機制獲取CPU利用率的方法,并根據(jù)設定的閾值判斷彈性調(diào)度開始與結束的時間,得到擴展速度,實現(xiàn)彈性的檢測。
本文利用第三方對云平臺的彈性進行測試,通過客戶端通信方式實現(xiàn)遠程訪問云平臺,并利用發(fā)送心跳包的機制來間接測量彈性調(diào)度的時間。實現(xiàn)的框架圖如下圖1所示:
本方法的基本功能如下:
(1)利用心跳機制在第三方與云服務提供商之間實現(xiàn)通信;(2)施加負載,觸發(fā)彈性資源調(diào)度。(3)返回得到CPU利用率以及系統(tǒng)時間。被測系統(tǒng)將當前時刻的CPU利用率返回給第三檢測方。
(1)心跳機制的實現(xiàn):本方法中使用Socket實現(xiàn)TCP程序開發(fā)。測試中,由客戶端向服務器端發(fā)送心跳包,被測方接收到心跳包后,將當前的CPU利用率以及系統(tǒng)時間返回給檢測方,并在客戶端顯示。
(2)負載的實現(xiàn):典型的負載類型主要包括以下幾種:穩(wěn)定型、漸變型以及激增型負載,利用Loadrunner等負載生成工具可以得到上述三種負載。
(3)數(shù)據(jù)處理:利用心跳包中數(shù)據(jù),再根據(jù)2.2中的方法得到最終定量化結果。
實驗硬件環(huán)境:Intel(R) Core(TM) i5-4200U CPU@ 1.60GHz,3.2GHz 4GB內(nèi)存。
軟件環(huán)境:Eclipse編譯工具,java語言。
云服務提供商利用服務器搭建的基于openstack的云架構,操作系統(tǒng)為centOS 7.2.1511,通過IP端口可以實現(xiàn)本機(即第三檢測方)與云(即模擬云服務提供商)的連接與訪問。
(1)權重值的設置采取層次分析法確定權重值w1、w2、…、w9。根據(jù)三種資源需求的調(diào)研,設置w1=0.5,w2=0.2,w3=0.3,利用層次分析法確定w4、…、w9,w4=0.83,w5=0.17,w6=0.83,w7=0.13,w8=0.83,w9=0.17,三種典型負載權重各占1/3。
(2)設置△CC。CPU利用率的改變量設置為5%比較合理。tc的單位設置為秒。擴展速度相應得分見表5:
v 5ec0.1 7 v 5ec0.0 8 3 v 0.1 7ecv 0.0 8 3 e c
若CPU利用率降低5%所用的時間低于或者1分鐘,則擴展速度為vec≥5,若所用時間超過1分鐘但是小于30分鐘,則擴展速度0.17≤vec<5 ,若所用時間超過30分鐘但是小于1小時,則擴展速度0.083≤vec<0.17 ,若時間達到1小時以上,則擴展速度vec<0.083。
(3)彈性擴展的量綱及粒度。彈性測試前必須要確定彈性擴展的量綱。資源調(diào)度的粒度本文中規(guī)定資源量綱為虛擬機,粒度為一臺虛擬機配置雙核CPU。
(4)彈性調(diào)度閾值的設置。很多云服務商將80%定為彈性調(diào)度的CPU利用率閾值上限。彈性調(diào)度的開始時間為通過加壓使得CPU利用率達到80%的最小時間,觀察CPU的利用率是否結束彈性調(diào)度的時間為使得CPU利用率降到80%的最小時間,兩者相減即為一次彈性調(diào)度時間。計算得到CPU利用率降低5%所用的時間,兩者相比記為一次彈性擴展的速度。
當CPU的利用率低于30%時,認為開始進行彈性的縮減調(diào)度,則計算方法同理,得到CPU利用率增加5%所用的時間,兩者的比值參照表5進行。
(5)實驗參數(shù)設置:開始實驗前,需要先輸入IP地址及端口,輸入心跳包發(fā)送次數(shù)為20次,設置心跳包的發(fā)送時間間隔為5000ms。
(6)負載場景設置。
實驗一:加入穩(wěn)定型負載,整體利用率較高。
從CPU利用率達到80%開始,每次心跳包間隔的時間為10s、5s,CPU利用率分別降低了6%、23%,如表6所示:
C C TC
計算兩次的平均擴展速度,得到ve1= 0.60,ve2=4.58,求取平均值,vec=2.59,根據(jù)表8得分為0.7。
實驗二:施加激增型負載時,CPU利用率迅速上升,超過80%,如圖4所示。
從CPU利用率達到80%開始,每次心跳包間隔的時間為17s、5s、7s、11s、9s、10s,CPU利用率分別降低了2%、9%、8%、-2%、37%、,由于CPU利用率降低37%為異常值,觀測CPU利用率從82%降低至75%所用時間為19s,CPU利用率的降低量為7%,CPU利用率增長2%為異常值,可用數(shù)據(jù)如表7所示:
C C TC
計算四次的平均擴展速度,得到ve1= 0.12,ve2=1.80,ve3= 1.14,ve4= 0.37求取平均值,vec=0.86,根據(jù)表5得分為0.7。
實驗三:施加漸變型負載時,緩慢達到CPU利用率的閾值上限,如圖5所示。
從CPU利用率達到80%開始,每次心跳包間隔的時間為10s、10s、8s,CPU利用率分別降低了4%、-2%、28%,將第二次與第三次的結果合并,得到CPU利用率降低26%用時18s,可用數(shù)據(jù)如表8所示:
C C TC
計算兩次的平均擴展速度,得到ve1= 0.40,ve2=1.44,求取平均值,vec=0.92。根據(jù)表5得分為0.7。
由用戶根據(jù)層次分析法得到三種負載下權重,計算得到的最終值,擴展速度的最終得分為0.7。
進行20次測試,設置每次心跳包發(fā)送間隔為5000ms,發(fā)送心跳包此時為20次(返回得到11次),每次測試中增加負載,檢驗實驗運行的總時間,如下表9所示:
由表9分析可得,該算法的耗時隨著數(shù)據(jù)規(guī)模的增長而增長,但即使很大的負載對于時間的影響較小,在可接受范圍內(nèi),擬合效果圖如圖5所示。
綜上所述,該算法能夠實現(xiàn)云彈性的可靠檢測,在檢測耗時上可達到正常的要求。
本文提出了一種云平臺彈性檢測方法,并以第三檢測方的角度提出了一種全新的,基于心跳機制和閾值的云平臺彈性擴展速度的檢測算法,經(jīng)實驗驗證該算法具有良好的實時性。但另一方面,該方法的缺陷在于網(wǎng)絡、存儲資源的彈性檢測方法不夠完善。因此,下一步的研究重點是完善彈性檢測方法。