摘 要:隨著云計(jì)算應(yīng)用范圍的擴(kuò)展,人們對(duì)于云計(jì)算可用性的擔(dān)憂也與日俱增。由于可用性的內(nèi)在復(fù)雜性,用戶缺乏對(duì)云計(jì)算平臺(tái)進(jìn)行風(fēng)險(xiǎn)評(píng)估的能力。本文通過(guò)對(duì)云計(jì)算進(jìn)行分層(IaaS,PaaS和SaaS)可用性分析,提出來(lái)一種基于分層結(jié)構(gòu)及其層間關(guān)系的云計(jì)算可用性定量計(jì)算模型,并給出了具體的計(jì)算和仿真實(shí)例。
關(guān)鍵詞:云計(jì)算;可用性;定量計(jì)算
中圖分類號(hào):TP393.08
根據(jù)Gartner的分析報(bào)告,云計(jì)算市場(chǎng)在2011年到2013年間保持了兩位數(shù)以上的增長(zhǎng)[1]。越來(lái)越多的企事業(yè)單位考慮將其數(shù)據(jù)和應(yīng)用遷移到云平臺(tái),隨之而來(lái)的是更多對(duì)云計(jì)算可用性和可靠性的擔(dān)憂。UCBerkeley的Michael Armbrust等人提出的云計(jì)算必須克服的十大障礙中,可用性保證位列第一[2]。許多知名的云服務(wù)提供商,如亞馬遜、微軟等都曾發(fā)生較為嚴(yán)重的故障,給用戶帶來(lái)了巨大損失[3]。由于可用性的內(nèi)在復(fù)雜性,用戶缺乏對(duì)云計(jì)算平臺(tái)進(jìn)行風(fēng)險(xiǎn)評(píng)估的能力,現(xiàn)實(shí)需要一種可對(duì)云計(jì)算可用性進(jìn)行定量計(jì)算的分析模型。
1 可用性定量計(jì)算模型
云計(jì)算的可用性可以是一個(gè)很寬泛的概念,為避免因涉及過(guò)多因素而造成量化計(jì)算不可行的問(wèn)題,本文將首先對(duì)其進(jìn)行較為嚴(yán)格的定義,進(jìn)而提出自己的量化計(jì)算模型。
1.1 云計(jì)算可用性定義
傳統(tǒng)電信業(yè)對(duì)可用性的定義為系統(tǒng)處在可工作狀態(tài)的時(shí)間占總時(shí)間的比例[4],如式(1):
Availability=MTTF/(MTTF+MTTR) (1)
其中Availability為可用性,MTTF(mean time to failure)為平均故障間隔,MTTR(mean time to repair)為平均恢復(fù)時(shí)間。
但這種簡(jiǎn)單的定義無(wú)法體現(xiàn)云計(jì)算可用性的內(nèi)在復(fù)雜性,根據(jù)目前主流的云計(jì)算模型[2],可將其劃分為三個(gè)層面:IaaS(Infrastructure as a Service),PaaS(Platform as a Service),SaaS(Software as-a Service)。云計(jì)算可用性應(yīng)考慮到包括IaaS,PaaS和SaaS的可靠性、延時(shí)、網(wǎng)絡(luò)攻擊以及三個(gè)層面之間的連接故障等可能導(dǎo)致用戶的需求不能滿足的因素,相應(yīng)的,其整體的可用性可表示為式(2):
Availability=∏(AvailabilityIaaS,AvailabilityPaaS,AvailabilitySaaS)
(2)
而三個(gè)層面單獨(dú)的可用性,同樣可用式(1)進(jìn)行計(jì)算,具體的計(jì)算方法在下節(jié)進(jìn)行討論。
1.2 分層結(jié)構(gòu)可用性
本節(jié)將對(duì)云計(jì)算分層結(jié)構(gòu)的可用性進(jìn)行具體說(shuō)明。首先定義幾個(gè)同時(shí)適用于三層結(jié)構(gòu)的概念:
(1)服務(wù)單元SU(Service Unit)。能夠獨(dú)立向上一層(IaaS的上一層為其它IaaS、PaaS或用戶,PaaS的上一層為其它PaaS或用戶,SaaS的上一層為其它SaaS或用戶)提供服務(wù)的單元。位于同一層的SU相互獨(dú)立,單個(gè)SU失效不影響其它SU的功能和性能。對(duì)IaaS來(lái)說(shuō),SU可以是RAID(Redundant Array of Independent Disks)陣列[5]中的單塊硬盤(pán)或某個(gè)數(shù)據(jù)中心;對(duì)PaaS來(lái)說(shuō),SU可以是某個(gè)網(wǎng)站鏡像或數(shù)據(jù)庫(kù)實(shí)例;對(duì)SaaS來(lái)說(shuō),SU可以是某個(gè)軟件實(shí)例。
(2)服務(wù)集合SS(Service Set)。由多個(gè)SU和數(shù)個(gè)(1個(gè)或多個(gè))控制單元(CU,Control Unit)組成,作為一個(gè)邏輯整體(SU)向上一層提供服務(wù),其結(jié)構(gòu)如圖1所示。CU用來(lái)監(jiān)測(cè)組成SS的多個(gè)SU的狀態(tài),控制能夠提供最優(yōu)服務(wù)的SU向上一層提供服務(wù)。當(dāng)SS具有多個(gè)SU時(shí),本文稱其具有抗單點(diǎn)失效性[6]。為簡(jiǎn)單分析,本文將CU作為一個(gè)整體考慮,不考慮其單點(diǎn)失效性。
圖1 SS結(jié)構(gòu)邏輯結(jié)構(gòu)
(3)絕對(duì)可用性AA(Absolute Availability)。在設(shè)定下層可用性為100%的假設(shè)下,本級(jí)的可用性定義為AA。
(4)實(shí)際可用性PA(Practical Availability)。PA需要遞歸定義,設(shè)第i-1層的實(shí)際可用性為PAi-1,則第i層的PAi=AAi*PAi-1。
對(duì)屬于同一層同一個(gè)SS的SU來(lái)說(shuō),有AAsui=AAsuj=Ω,Ω為一個(gè)常量(如99%,99.99%等)。
對(duì)含有N個(gè)SU的SS來(lái)說(shuō),其AAss=Max(AAsu1,AAsu2,…,AAsuN),即SS的CU會(huì)選擇可用性最高的一個(gè)AU向上一級(jí)提供服務(wù)。
在云計(jì)算的實(shí)際的分層部署中,設(shè)第i層的向上一層提供服務(wù)的SS實(shí)際可用性為PAssi,則第i+1層的SU實(shí)際可用性可表示為式(3):
PAsu(i+1)=AAsu(i+1)*PAssi (3)
同樣的,則第i+1層的SS實(shí)際可用性可表示為式(4):
PAss(i+1)=Max(AAsuk*PAssi) 其中0 即每一層的真實(shí)可用性取決于本身的可用性和下一層所提供的可用性。 1.3 部署結(jié)構(gòu) 為對(duì)云計(jì)算可用性進(jìn)行量化計(jì)算,需要對(duì)其部署結(jié)構(gòu)進(jìn)行明確。本文主要考慮以下三種結(jié)構(gòu),下文圖2、圖3和圖4中的每個(gè)方框代表一個(gè)SS。 (1)線型結(jié)構(gòu)。線型結(jié)構(gòu)的部署拓?fù)淙鐖D2所示,IaaS,PaaS和SaaS均只部署了一個(gè)SS依次向上提供服務(wù),該種結(jié)構(gòu)在每一層都存在單點(diǎn)失效的問(wèn)題,可用性保證能力較差,但其結(jié)構(gòu)簡(jiǎn)單、部署維護(hù)難度低,加之成本較為低廉,也存在一定比例的實(shí)際應(yīng)用。 圖2 線型結(jié)構(gòu)部署拓?fù)?/p> (2)單層分支結(jié)構(gòu)。單層分支結(jié)構(gòu)的部署拓?fù)淙鐖D3所示,圖3(a)、圖3(b)、圖3(c)分別表示對(duì)IaaS,PaaS和SaaS進(jìn)行擴(kuò)展得到的部署拓?fù)?。在?shí)際應(yīng)用中,往往是選擇可用性較低的一層進(jìn)行擴(kuò)展,以提高整個(gè)服務(wù)的可用性。 圖3 單層分支結(jié)構(gòu)部署拓?fù)?/p> (3)樹(shù)形結(jié)構(gòu)。對(duì)于可用性要求高,且可以接受較高開(kāi)銷的云計(jì)算服務(wù),往往采用樹(shù)形結(jié)構(gòu),如圖4所示,該結(jié)構(gòu)可根據(jù)需要對(duì)三層結(jié)構(gòu)都進(jìn)行不同程度的擴(kuò)展,系統(tǒng)的可用性可得到較高的保證,但其結(jié)構(gòu)復(fù)雜,控制困難且開(kāi)支較大。 圖4 樹(shù)形結(jié)構(gòu)部署拓?fù)?/p> 2 基于模型的定量計(jì)算與仿真 2.1 定量計(jì)算方法 根據(jù)1.3節(jié)給出的部署結(jié)構(gòu),分別討論其可用性定量計(jì)算方法。 (1)線型結(jié)構(gòu)。如圖2所示,該種結(jié)構(gòu)的可用性計(jì)算較為簡(jiǎn)單,設(shè)IaaS節(jié)點(diǎn)的AAIaaS=PAIaaS,則有: PAPaaS=AAPaaS*PAIaaS PASaaS=AASaaS*PAPaaS=AASaaS*AAPaaS*PAIaaS (2)單層分支結(jié)構(gòu)。以圖3(a)給出的部署結(jié)構(gòu)舉例說(shuō)明。設(shè)IaaS節(jié)點(diǎn)的AAIaaSi=PAIaaSi,則有: PAIaaS=1-(1-AAIaaS1)*(1-AAIaaS2) PAPaaS=AAPaaS*PAIaaS PASaaS=AASaaS*PAPaaS=AASaaS*AAPaaS*(1-(1-AAIaaS1)*(1-AAIaaS2)) (3)樹(shù)形結(jié)構(gòu)。同樣,對(duì)圖4給出的部署結(jié)構(gòu),設(shè)IaaS節(jié)點(diǎn)的AAIaaSi=PAIaaSi,則有: PAIaaS=(1-(1-AAIaaS1)*(1-AAIaaS2))*(1-(1-AAIaaS3)*(1-AAIaaS4)) PAPaaS=1-(1-PAPaaS1)*(1-PAPaaS2)=1-(1-AAPaaS1*(1-(1-AAIaaS1)*(1-AAIaaS2)))*(1-AAPaaS2*(1-(1-AAIaaS3)*(1-AAIaaS4))) PASaaS=AASaaS*PAPaaS=AASaaS*(1-(1-PAPaaS1)*(1-PAPaaS2)) 2.2 仿真實(shí)驗(yàn)數(shù)據(jù) 基于VS2008平臺(tái),利用C#語(yǔ)言實(shí)現(xiàn)了對(duì)圖4所示樹(shù)形結(jié)構(gòu)可用性的仿真模擬實(shí)驗(yàn),實(shí)驗(yàn)使用Timer類實(shí)現(xiàn)時(shí)間推進(jìn)機(jī)制,利用Rand函數(shù)實(shí)現(xiàn)可用性的概率設(shè)定,利用2.1節(jié)給出的計(jì)算方式完成模擬仿真。設(shè)各SS的絕對(duì)可用性均為99.9%。共進(jìn)行了5次仿真實(shí)驗(yàn),每次實(shí)驗(yàn)的時(shí)長(zhǎng)為10萬(wàn)個(gè)時(shí)間單位,PASaaS結(jié)果如表1所示,由表1可知,仿真實(shí)驗(yàn)得到的數(shù)據(jù)與理論計(jì)算值基本一致,其中的不一致可能來(lái)自仿真時(shí)間長(zhǎng)度有限帶來(lái)的偶然因素,說(shuō)明了可用性量化計(jì)算的有效性。 表1 仿真實(shí)驗(yàn)數(shù)據(jù) 序號(hào)PASaaS值 實(shí)驗(yàn)199.8989% 實(shí)驗(yàn)299.8996% 實(shí)驗(yàn)399.8969% 實(shí)驗(yàn)499.8899% 實(shí)驗(yàn)599.8939% 理論值99.8999% 3 小結(jié)與展望 本文根據(jù)云計(jì)算可用性的影響因素,將云計(jì)算劃分為3個(gè)層次,基于自己定義的SU、SS等概念,給出了一種分層計(jì)算的云計(jì)算可用性量化計(jì)算模型和具體的計(jì)算方法,并通過(guò)仿真實(shí)驗(yàn)驗(yàn)證了模型的有效性,可有效支持服務(wù)提供商和用戶對(duì)云計(jì)算可用性評(píng)估的需求,但該模型的部署結(jié)構(gòu)還不夠一般化,需要進(jìn)一步改進(jìn),以提高其通用性和易用性。 參考文獻(xiàn): [1]Gartner Says Worldwide Public Cloud Services Market to Total $131 Billion.http://www.gartner.com/resId=2332215 [2]Michael Armbrust,Armando Fox, Rean Griffith,Anthony D.Joseph,Randy Katz,Andy Konwinski,Gunho Lee,David Patterson,Ariel Rabkin,Ion Stoica and Matei Zaharia.Above the Clouds:A Berkeley View of Cloud Computing.Technical Report No.UCB/EECS-2009-28. [3]馮登國(guó),張敏,張妍.云計(jì)算安全研究.軟件學(xué)報(bào),2011(01):71-83. [4]Federal Standard 1037C.General Services Administration,MIL-STD-188. [5]Common RAID Disk Drive Format (DDF) standard. SNIA.org.SNIA. Retrieved 2012-08-26. [6]可靠性維修性保障性術(shù)語(yǔ)[Z].中華人民共和國(guó)國(guó)家軍用標(biāo)準(zhǔn),2005. 作者簡(jiǎn)介:楊志明(1984.06-),男,云南大理人,在讀研究生,研究方向:計(jì)算機(jī)網(wǎng)絡(luò);張嘉慧(1984.10-),男,甘肅民勤人,在讀研究生,研究方向:計(jì)算機(jī)網(wǎng)絡(luò)。 作者單位:國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院,長(zhǎng)沙 410073