宋彩利,梁 斌,李 皎
(西安石油大學(xué) 計(jì)算機(jī)學(xué)院,陜西 西安 710065)
云服務(wù)的最終目的是使云用戶可以穩(wěn)定、快捷和方便地使用彈性的計(jì)算和存儲(chǔ)服務(wù)。因此,提高云數(shù)據(jù)中心的穩(wěn)定性不僅可以提升用戶的使用體驗(yàn),更能增加云服務(wù)提供商收益。然而,大型云數(shù)據(jù)中心都是由低性能的物理機(jī)構(gòu)成,通過虛擬化技術(shù)將其以虛擬機(jī)的形式租用給云用戶,這樣就會(huì)由于機(jī)器性能不穩(wěn)定而導(dǎo)致虛擬機(jī)故障?,F(xiàn)代云數(shù)據(jù)中心為了提升云服務(wù)的穩(wěn)定性和可靠性,通常在建立虛擬機(jī)時(shí)會(huì)設(shè)計(jì)合理的容錯(cuò)機(jī)制從而保證云任務(wù)順利執(zhí)行。但是,隨著云數(shù)據(jù)中心規(guī)模不斷擴(kuò)大,大量的故障和容錯(cuò)問題已經(jīng)成為制約云數(shù)據(jù)中心進(jìn)一步發(fā)展的瓶頸之一。
云數(shù)據(jù)中心針對(duì)虛擬機(jī)故障的容錯(cuò)策略主要可以分為副本復(fù)制和重調(diào)度。副本復(fù)制一般開始于云任務(wù)映射初始階段。當(dāng)云數(shù)據(jù)中心的調(diào)度系統(tǒng)在進(jìn)行云任務(wù)映射時(shí),為了避免虛擬機(jī)故障,會(huì)激活一些冗余的虛擬機(jī)對(duì)部分云任務(wù)進(jìn)行多次映射。其通過增加副本數(shù)量的方法,提升了云任務(wù)順利完成的概率。這種方法雖然簡(jiǎn)單方便,但是也存在很多隱患。首先,由于虛擬機(jī)的故障是一個(gè)隨機(jī)事件,調(diào)度系統(tǒng)并不能預(yù)測(cè)故障的發(fā)生,從而導(dǎo)致命中故障的幾率較低。其次,冗余的虛擬機(jī)會(huì)帶來云服務(wù)提供商成本的上升從而降低其收益。最后,副本數(shù)量的選擇也是一個(gè)復(fù)雜的問題,設(shè)計(jì)人員需要綜合統(tǒng)計(jì)學(xué)和半導(dǎo)體等多學(xué)科知識(shí)綜合進(jìn)行考慮,因此它的復(fù)雜度帶來的損失將遠(yuǎn)大于問題自身的收益。重調(diào)度策略根據(jù)虛擬機(jī)的執(zhí)行情況進(jìn)行動(dòng)態(tài)的調(diào)節(jié),當(dāng)執(zhí)行云任務(wù)的虛擬機(jī)發(fā)生故障時(shí),該調(diào)度系統(tǒng)會(huì)為失效云任務(wù)重新選擇虛擬機(jī)進(jìn)行映射。
之前的學(xué)者對(duì)云數(shù)據(jù)中心的調(diào)度和重調(diào)度算法進(jìn)行了部分的研究。Yao等[1]提出了一種免疫機(jī)制,針對(duì)云系統(tǒng)(IRW)中的工作流提出了一種重新調(diào)度算法。有4個(gè)單位可以模仿IRW算法中的免疫系統(tǒng)。監(jiān)視單元監(jiān)視資源池中每個(gè)虛擬機(jī)的可能故障。一旦檢測(cè)到資源故障,就會(huì)觸發(fā)響應(yīng)單元進(jìn)行搜索存儲(chǔ)單元或?qū)W習(xí)單元中的適當(dāng)策略,用于重新安排可用時(shí)間資源。如果沒有可用的虛擬機(jī)都能滿足服務(wù)質(zhì)量,則將為該云任務(wù)創(chuàng)建新的虛擬機(jī)。Liang等[2]提出基于內(nèi)存利用率的云任務(wù)調(diào)度算法從而提高物理機(jī)綜合利用率并降低云數(shù)據(jù)中心能耗。Topcuoglu等[3]針對(duì)有限數(shù)量的異構(gòu)處理器提出了兩種新穎的調(diào)度算法,目的是同時(shí)滿足高性能和快速調(diào)度時(shí)間要求,分別稱為異構(gòu)最早完成時(shí)間(HEFT)算法和關(guān)鍵路徑-處理器(CPOP)算法。Chen等[4]考慮了互聯(lián)網(wǎng)托管中同質(zhì)資源的能源效率管理問題,其主要挑戰(zhàn)是確定資源需求使得每個(gè)應(yīng)用程序在其當(dāng)前請(qǐng)求負(fù)載級(jí)別并以最有效的方式分配資源,這樣可以根據(jù)可用預(yù)算和當(dāng)前用戶的服務(wù)需求進(jìn)行協(xié)商,即平衡資源使用成本以及收益。Raghavendra等[5]通過組合和管理數(shù)據(jù)中心環(huán)境協(xié)調(diào)5種不同的電力管理政策,從控制理論的角度探討了問題并應(yīng)用了一個(gè)反饋控制循環(huán)以協(xié)調(diào)控制器的動(dòng)作?;贚P的無變化VM放置算法可以以最低的能耗生成VM放置。另一方面,該方法的可行性驅(qū)動(dòng)隨機(jī)VM放置(FDSP)算法與基于LP的算法無縫配合,以實(shí)現(xiàn)理想的放置可行性。王鵬等[6]實(shí)現(xiàn)了云計(jì)算集群相空間投影在不同負(fù)載請(qǐng)求情況下平穩(wěn)的點(diǎn)狀聚集。通過仿真實(shí)驗(yàn)利用相空間負(fù)載均衡度、廣義溫度、廣義熵等參數(shù)和集群的相空間投影。Dodonov等[7]提出了一種基于預(yù)測(cè)的方法用于網(wǎng)格中調(diào)度分布式應(yīng)用程序。文獻(xiàn)中提議,遷移如果較低,則傳達(dá)流程預(yù)期通信的成本與最小化總執(zhí)行時(shí)間目標(biāo),并證明了這一點(diǎn)可以有效地應(yīng)用于網(wǎng)格。但是由于虛擬機(jī)遷移成本較高,因此無法真正應(yīng)用于虛擬化數(shù)據(jù)中心。Plankensteiner等[8]提出了一種新的啟發(fā)式方法,稱為“重新提交影響”,以支持科學(xué)流程中的容錯(cuò)執(zhí)行異構(gòu)并行和分布式計(jì)算環(huán)境。與相關(guān)方法相比,該方法可以有效地使用在新的或不熟悉的環(huán)境中,即使沒有歷史執(zhí)行或故障跟蹤模型。Moghaddam等[9]提出的虛擬機(jī)整合算法在每個(gè)階段都包含不同的模型。在第一階段,為各個(gè)VM開發(fā)了不同的微調(diào)機(jī)器學(xué)習(xí)(ML)預(yù)測(cè)模型,以預(yù)測(cè)觸發(fā)主機(jī)遷移的最佳時(shí)間。對(duì)于第二階段,從字典的角度來考慮選擇虛擬機(jī)進(jìn)行遷移時(shí)的遷移時(shí)間和主機(jī)CPU使用率。最后,開發(fā)了一種基于最佳適合遞減(BFD)算法的新方法,為要遷移的VM選擇目標(biāo)主機(jī)。與基準(zhǔn)VM整合算法進(jìn)行了比較,該算法使用本地回歸來檢測(cè)過度利用的主機(jī),VM選擇階段所需的遷移時(shí)間最短,并且Power-Aware最適合主機(jī)選擇階段。最終,該算法大幅降低了云數(shù)據(jù)中心能耗。Fei和Hadji等[10-11]為了增強(qiáng)系統(tǒng)利用率的性能測(cè)量而介紹了基于閾值的負(fù)載均衡概念,負(fù)載分配和負(fù)載均衡策略一起可以減少總執(zhí)行時(shí)間并增加系統(tǒng)吞吐量,并且討論了能耗和負(fù)載矩陣以保持定時(shí)更新。但是全局最優(yōu)解決方案會(huì)產(chǎn)生許多不必要的遷移,無法工作在大規(guī)模的云計(jì)算環(huán)境中。Khandelwal等[12]旨在提出回歸隨機(jī)森林模型,以預(yù)測(cè)提前一周和提前一天的現(xiàn)貨價(jià)格。該預(yù)測(cè)將幫助云用戶提前計(jì)劃何時(shí)購買競(jìng)價(jià)型實(shí)例,并且還幫助他們進(jìn)行投標(biāo)決策以最小化執(zhí)行成本和超標(biāo)失敗概率。Sharma等[13]針對(duì)數(shù)據(jù)中心的熱效資源管理進(jìn)行了大量的研究工作,研究表明軟件驅(qū)動(dòng)的熱管理和溫度感知工作負(fù)載的放置帶來了額外的節(jié)能。然而,虛擬化數(shù)據(jù)中心背景下的熱管理問題尚未進(jìn)行調(diào)查,且沒有研究根據(jù)當(dāng)前資源利用率通過熱量和網(wǎng)絡(luò)優(yōu)化虛擬化數(shù)據(jù)中心綜合優(yōu)化的方法進(jìn)行虛擬機(jī)放置。Chen等[14]提出了一種動(dòng)態(tài)任務(wù)重排和重新調(diào)度算法,從任務(wù)之間的優(yōu)先級(jí)約束中利用調(diào)度靈活性。算法可以優(yōu)化多個(gè)工作流之間的資源分配,并且通常會(huì)停止延遲執(zhí)行對(duì)后續(xù)任務(wù)的影響。
這些算法雖然解決了部分技術(shù)問題。但是它們都未考慮以下幾個(gè)方面。首先,云數(shù)據(jù)中心也會(huì)提供包含不同頻率CPU的虛擬機(jī)供云用戶選擇,在進(jìn)行失效云任務(wù)的重調(diào)度時(shí),系統(tǒng)可以根據(jù)它的截止時(shí)間選擇高頻率CPU的虛擬機(jī)進(jìn)行映射從而節(jié)約成本。其次,由于之前的研究中對(duì)部分云任務(wù)進(jìn)行放棄,這就意味著最終無法向云用戶交付結(jié)果。這樣不僅會(huì)帶來收益的降低,更重要的是服務(wù)品牌和企業(yè)形象的損失。延遲的交付雖然會(huì)降低云用戶再次購買云服務(wù)的幾率但是至少保證了企業(yè)的基本信譽(yù)。因此即使會(huì)產(chǎn)生較大的代價(jià),云服務(wù)提供商也應(yīng)該盡可能地完成所有的云任務(wù)。最后,延遲交付的賠償也決定了云服務(wù)提供商的最終收益,重調(diào)度策略必須根據(jù)賠償比率進(jìn)行合理的設(shè)計(jì)使得收益最大化。
基于以上原因,提出了面向云數(shù)據(jù)中心的成本感知容錯(cuò)算法(Cost-aware Fault-tolerant Algorithm for Cloud Data Centers,CAFT)。該調(diào)度策略通過提高云任務(wù)的故障修復(fù)率從而降低云服務(wù)提供商的損失。
首先介紹云數(shù)據(jù)中心的整體架構(gòu)。研究的云數(shù)據(jù)中心通過虛擬化技術(shù)向云用戶提供服務(wù)。該云數(shù)據(jù)中心包含了虛擬機(jī)集合VM={vm1,vm2,…,vmn},其中n代表了該云數(shù)據(jù)中心所能提供的虛擬機(jī)總數(shù)。每個(gè)虛擬機(jī)可以表示為vmi={ci,mi,si,pi,ni,ti,ei},其中ci,mi,si,pi,ni,ti,ei分別代表每臺(tái)虛擬機(jī)包含的CPU核數(shù)量、內(nèi)存大小(單位:GB)、CPU核的處理速度(單位為MIPS)、CPU核的使用價(jià)格(單位為$/h,低頻=price_low,高頻=price_high)、該虛擬機(jī)上所運(yùn)行的云任務(wù)編號(hào)、虛擬機(jī)的運(yùn)行時(shí)間(單位為秒)及虛擬機(jī)的狀態(tài)(1:正常,2:故障和3:副本)。云用戶所提交的云任務(wù)也可以表示為一個(gè)云任務(wù)集合CT={ct1,ct2,…,ctm},其中m代表這個(gè)集合中云任務(wù)的個(gè)數(shù)。通過調(diào)度算法依次將該集合中的云任務(wù)映射到相應(yīng)的虛擬機(jī)上執(zhí)行,每個(gè)云任務(wù)都可以描述為ctj={lj,mj,dj,tj,pj,fj}的形式,其中l(wèi)j,mj,dj,tj,pj,fj分別代表該云任務(wù)的長(zhǎng)度(單位為百萬指令集)、需要的內(nèi)存大小(單位:GB)、該云任務(wù)的截止時(shí)間(單位:s)、該云任務(wù)的實(shí)際需要時(shí)間(單位:s)、完成該云任務(wù)的收益(單位:$)及故障所付出的代價(jià)(單位:$)。
云任務(wù)i的實(shí)際需要時(shí)間計(jì)算方法如下:
ct.tj=ct.lj/((f/1000)×vm.ci×0.9)
(1)
其中f為虛擬機(jī)的CPU頻率。云數(shù)據(jù)中心由于其虛擬機(jī)性能的波動(dòng),一般都會(huì)有10%的冗余。因此,提供給云用戶的截止時(shí)間為實(shí)際需要時(shí)間的1.1倍[15]。云任務(wù)i的截止時(shí)間計(jì)算方法如下:
ct.dj=1.1ct.tj
(2)
云用戶需要租用云數(shù)據(jù)中心的虛擬機(jī)完成自己所提交的云任務(wù),成熟的云數(shù)據(jù)中心都提供標(biāo)準(zhǔn)規(guī)格的虛擬機(jī)讓用戶選擇。例如Amazon的美國(guó)東部(俄亥俄)數(shù)據(jù)中心所提供的常規(guī)虛擬機(jī)包含4個(gè)系列,表1所示的參數(shù)為每個(gè)系列的最低型號(hào)。例如m5a.large(Low-frequency Universal)為該系列虛擬機(jī)的最低配置,它的CPU核數(shù)量和內(nèi)存大小固定為1∶4。而對(duì)于計(jì)算型云任務(wù)通常需要較大CPU的虛擬機(jī),則可以選擇m5a.large(Low-frequency Computational)低頻計(jì)算型虛擬機(jī),它的CPU數(shù)量和內(nèi)存大小固定為1∶2。同時(shí),該云數(shù)據(jù)中心還提供了高頻的虛擬機(jī)系列m5a.large(High-frequency Universal)和m5n.large(High-frequency Computational),這兩種系列虛擬機(jī)的配置與低頻的配置相比只是頻率不同。同時(shí),云計(jì)算中心還提供了這4種虛擬機(jī)對(duì)應(yīng)的同比例擴(kuò)大后的虛擬機(jī)。m5a.large(Low-frequency Universal)擴(kuò)大一倍后的虛擬機(jī)為m5a.xlarge(Low-frequency Universal),m5a.24xlarge(Low-frequency Universal)為該系列配置最大的虛擬機(jī)。它的CPU核數(shù)量、內(nèi)存大小都擴(kuò)大了24倍,當(dāng)然其租用價(jià)格也會(huì)根據(jù)配置同比例上升。
表1 虛擬機(jī)價(jià)格(Amazon的美國(guó)東部(俄亥俄)數(shù)據(jù)中心)Tab.1 Price of virtual machines (Amazon's East (Ohio) data center)
假設(shè)云用戶提交了一個(gè)云任務(wù)的集合,云數(shù)據(jù)中心需要對(duì)它們進(jìn)行映射。只分析其中的前3個(gè)云任務(wù),它們的參數(shù)見表2。首先,為了滿足云任務(wù)的內(nèi)存需求且使得費(fèi)用最低,一般都會(huì)選擇滿足內(nèi)存需求的最小規(guī)模虛擬機(jī)。假設(shè)初始映射時(shí)都選擇低頻通用型虛擬機(jī),云任務(wù)ct1在進(jìn)行映射時(shí)會(huì)選擇m5a.large(Low-frequency Universal)型虛擬機(jī),分別根據(jù)式(1)和(2)計(jì)算實(shí)際需要時(shí)間和截止時(shí)間,同時(shí)針對(duì)其它的云任務(wù)也采用相同的方法進(jìn)行部署。
表2 云任務(wù)映射前的參數(shù)Tab.2 Parameters before cloud task mapping
當(dāng)云數(shù)據(jù)中心的虛擬機(jī)發(fā)生了故障,其對(duì)應(yīng)的云任務(wù)就會(huì)執(zhí)行失敗。調(diào)度系統(tǒng)為了繼續(xù)執(zhí)行失效云任務(wù)則需要重新調(diào)度云任務(wù)并且激活新的虛擬機(jī)進(jìn)行映射,如果激活相同配置的虛擬機(jī)則有可能導(dǎo)致云任務(wù)的完成時(shí)間超過截止時(shí)間,尤其是故障發(fā)生較晚的情況下,這種超時(shí)更加明顯,使云服務(wù)提供商不僅面臨較高的賠償同時(shí)還會(huì)影響其聲譽(yù)。因此,調(diào)度系統(tǒng)通常會(huì)同比例地?cái)U(kuò)大虛擬機(jī)配置從而確保云任務(wù)能夠按時(shí)完成。但是,這樣也會(huì)大幅地增加云服務(wù)提供商的運(yùn)營(yíng)成本。通過對(duì)Amazon和Alibaba Cloud等云服務(wù)提供商所提供的虛擬機(jī)進(jìn)行分析,云用戶通常租用的是低頻通用型虛擬機(jī),也可以通過使用高頻型或計(jì)算型虛擬機(jī)進(jìn)行執(zhí)行速率的提升,從表1中可以看出它們的價(jià)格依次上升。據(jù)此筆者提出失效云任務(wù)分類定義。
定義1.失效云任務(wù)分類。對(duì)于失效云任務(wù)進(jìn)行重映射時(shí),可以通過改變虛擬機(jī)的類型從而使失效云任務(wù)滿足其截止時(shí)間。若使用原配置的虛擬機(jī)則可滿足截止時(shí)間則將該失效云任務(wù)歸為低頻通用型云任務(wù)。若需將故障CPU的頻率升高為3.1 GHz則可滿足截止時(shí)間,則將該失效云任務(wù)歸為高頻通用型云任務(wù)。若需將故障CPU核數(shù)量和內(nèi)存大小的比率升高為4∶8則可滿足截止時(shí)間,則將該失效云任務(wù)歸為低頻計(jì)算型云任務(wù)。若需同時(shí)升高兩個(gè)方面可滿足截止時(shí)間,則將該失效云任務(wù)歸為高頻計(jì)算型云任務(wù)。若上面都不能滿足,則將4種配置的虛擬機(jī)同比例擴(kuò)大后選擇成本最小的虛擬機(jī)進(jìn)行歸類和重映射。
依然采用前面的示例進(jìn)行演示。假設(shè)虛擬機(jī)產(chǎn)生故障時(shí)間隨機(jī)且其它參數(shù)不變,按照失效云任務(wù)動(dòng)態(tài)分類定義進(jìn)行分類,這3個(gè)失效云任務(wù)的分類結(jié)果見表3。
表3 虛擬機(jī)故障后的云任務(wù)分類Tab.3 Classification of cloud tasks after virtual machine failure
經(jīng)過上面的分析,已經(jīng)對(duì)失效云任務(wù)進(jìn)行了分類,之后按照其所需的虛擬機(jī)參數(shù)激活相應(yīng)的虛擬機(jī)進(jìn)行重映射,重調(diào)度之后的虛擬機(jī)參數(shù)見表4。
表4 重調(diào)度后的虛擬機(jī)參數(shù)Tab.4 Parameters of virtual machine after rescheduling
通過上面的示例可以看出,3個(gè)失敗的云任務(wù)在重映射后都滿足了截止時(shí)間的要求。同時(shí),失效云任務(wù)根據(jù)分類定義合理地選擇了虛擬機(jī)。這樣避免了盲目擴(kuò)大虛擬機(jī)的容量,從而節(jié)約了運(yùn)營(yíng)的成本。
CAFT算法通過提高云任務(wù)的故障修復(fù)率從而降低云服務(wù)提供商的損失。CAFT算法主要包括以下8個(gè)步驟:
Step 1:根據(jù)虛擬機(jī)的運(yùn)行情況,依次選取故障虛擬機(jī)上的失效云任務(wù)。
Step 2:根據(jù)失效云任務(wù)的截止時(shí)間和故障虛擬機(jī)的參數(shù)確定云任務(wù)的類型。若為低頻通用型云任務(wù)則轉(zhuǎn)向Step 3,若為高頻通用型云任務(wù)則轉(zhuǎn)向Step 4,若為低頻計(jì)算型云任務(wù)則轉(zhuǎn)向Step 5,若為高頻計(jì)算型云任務(wù)則轉(zhuǎn)向Step 6,若上面都不能滿足則轉(zhuǎn)向Step 7。
Step3:在空閑的虛擬機(jī)隊(duì)列中選擇與原故障虛擬機(jī)參數(shù)相同的低頻通用型虛擬機(jī)進(jìn)行映射。之后轉(zhuǎn)向Step 8。
Step4:在空閑的虛擬機(jī)隊(duì)列中選擇與原故障虛擬機(jī)參數(shù)相同的高頻通用型虛擬機(jī)進(jìn)行映射。之后轉(zhuǎn)向Step 8。
Step5:在空閑的虛擬機(jī)隊(duì)列中選擇與原故障虛擬機(jī)參數(shù)相同的低頻計(jì)算型虛擬機(jī)進(jìn)行映射。之后轉(zhuǎn)向Step 8。
Step6:在空閑的虛擬機(jī)隊(duì)列中選擇與原故障虛擬機(jī)參數(shù)相同的高頻計(jì)算型虛擬機(jī)進(jìn)行映射。之后轉(zhuǎn)向Step 8。
Step7:將4種虛擬機(jī)參數(shù)同比例擴(kuò)大后轉(zhuǎn)向Step 2。
Step8:判斷是否存在未重映射的云任務(wù),若有則重復(fù)Step 2,否則結(jié)束整個(gè)調(diào)度算法。
為了驗(yàn)證CAFT算法的效果,利用CloudSim實(shí)現(xiàn)了該策略。同時(shí)在CloudSim中又嵌入了一個(gè)仿真驗(yàn)證平臺(tái),在該仿真驗(yàn)證平臺(tái)中模擬實(shí)現(xiàn)了IRW算法、RI算法和DTRDT算法。IRW算法主要是采用相同性能的虛擬機(jī)完成容錯(cuò)。RI算法相對(duì)于IRW算法加入了10%的副本復(fù)用。DTRDT算法在重調(diào)度時(shí)選擇了容量同比例擴(kuò)大的虛擬機(jī)完成部署。之后,又在該平臺(tái)中加入了比較模塊,它能夠?qū)Σ煌成渌惴ㄖg的云數(shù)據(jù)中心故障修復(fù)率和云服務(wù)提供商的損失進(jìn)行比較,同時(shí)Gao、Dorterler、Chen等[16-18]中的方法生成相應(yīng)的云任務(wù)參數(shù)進(jìn)行仿真。其它虛擬機(jī)參數(shù)參考Amazon所提供的真實(shí)虛擬機(jī)參數(shù),如表5所示。本節(jié)將從云數(shù)據(jù)中心故障修復(fù)率和云服務(wù)提供商的損失進(jìn)行驗(yàn)證,結(jié)果取1 000次仿真的平均值。云數(shù)據(jù)中心故障修復(fù)率為所有失敗云任務(wù)重調(diào)度后按時(shí)完成的比例。云服務(wù)提供商的損失就是為了執(zhí)行失敗的云任務(wù)所多建立的虛擬機(jī)的費(fèi)用加上違約的賠償金。云數(shù)據(jù)中心故障修復(fù)率:
Fault_repair=n1/n2
(3)
其中,n1表示被修復(fù)的故障數(shù)量,n2表示所有的故障數(shù)量。
云服務(wù)提供商的損失:
(4)
其中,ct.fj表示編號(hào)為j的云任務(wù)的損失(單位:$)。
驗(yàn)證算法效果隨云任務(wù)數(shù)量的變化。虛擬機(jī)故障率取0.01,虛擬機(jī)價(jià)格取0.086,其它參數(shù)如表5所示。
表5 仿真參數(shù)Tab.5 Simulation parameters
從圖1中可以看出,CAFT算法的故障修復(fù)率接近100%。這主要是因?yàn)樵谶M(jìn)行虛擬機(jī)的選擇時(shí)按照失效云任務(wù)分類定義從小到大依次尋找可以滿足截止時(shí)間的虛擬機(jī),同時(shí),升高頻率和加大CPU的比例都可以加快云任務(wù)的執(zhí)行速度。IRW算法在選擇虛擬機(jī)時(shí)依舊采用原來的配置,因此大量的失效云任務(wù)超出了截止時(shí)間。RI算法增加了副本復(fù)制技術(shù),它在云數(shù)據(jù)中心內(nèi)增加了10%的虛擬機(jī)副本,這樣雖然可以提高一些故障修復(fù)率但效果并不明顯。DTRDT算法在進(jìn)行虛擬機(jī)選擇時(shí)只是單純地?cái)U(kuò)大虛擬機(jī)配置,而沒有利用升高頻率和CPU比例的方法,因此故障修復(fù)率稍遜于CAFT策略。4種算法的效果隨云任務(wù)數(shù)量的增大表現(xiàn)較為穩(wěn)定。從圖2可以看出RI算法的云服務(wù)提供商的損失最大,這主要是因?yàn)樗捎昧烁北緩?fù)制技術(shù)增加了額外的冗余。IRW算法和DTRDT算法的云服務(wù)提供商的損失略高于CAFT算法,這主要是因?yàn)樗鼈兊墓收闲迯?fù)率較低,因而造成賠償?shù)慕痤~較大。
圖1 云數(shù)據(jù)中心故障修復(fù)率隨云任務(wù)數(shù)量的變化Fig.1 Variation of failure repair rate of cloud data center with the number of cloud tasks
圖2 云服務(wù)提供商的損失隨云任務(wù)數(shù)量的變化Fig.2 Variation of loss of cloud service provider with the number of cloud tasks
驗(yàn)證算法效果隨虛擬機(jī)價(jià)格的變化。云任務(wù)數(shù)量取10 000,虛擬機(jī)故障率取0.01,其他參數(shù)見表5。
圖3和圖4中選取的為Amazon在美國(guó)東部(俄亥俄)、亞太地區(qū)(新加坡)、亞太地區(qū)(東京)和歐洲(愛爾蘭)的4個(gè)云數(shù)據(jù)中心的真實(shí)價(jià)格??梢钥闯鰺o論是哪個(gè)數(shù)據(jù)中心,CAFT算法的故障修復(fù)率都高于其它3種算法,相應(yīng)的云服務(wù)提供商的損失也小于其它3種算法,這也說明了本文所提出的算法的通用性。
圖3 云數(shù)據(jù)中心故障修復(fù)率隨虛擬機(jī)價(jià)格的變化Fig.3 Variation of failure repair rate of cloud data center with the price of virtual machines
圖4 云服務(wù)提供商的損失隨虛擬機(jī)價(jià)格的變化Fig.4 Variation of loss of cloud service provider with the price of virtual machines
(1)分析了云數(shù)據(jù)中心的整體架構(gòu)和模型。
(2)研究了云任務(wù)的初始化映射和虛擬機(jī)故障。
(3)提出了面向云數(shù)據(jù)中心的成本感知容錯(cuò)算法(CAFT)。
(4)借助CloudSim實(shí)現(xiàn)了該算法,利用Amazon云數(shù)據(jù)中心的真實(shí)數(shù)據(jù)驗(yàn)證了所提出的CAFT算法的效果。相比于IRW、RI和DTRDT算法,CAFT算法極大地提高了云數(shù)據(jù)中心故障修復(fù)率,降低了云服務(wù)提供商的損失。