李博
(遼寧撫順職業(yè)技術(shù)學(xué)院遼寧撫順113122)
?
基于云計(jì)算的實(shí)驗(yàn)平臺(tái)虛擬機(jī)容錯(cuò)技術(shù)研究
李博
(遼寧撫順職業(yè)技術(shù)學(xué)院遼寧撫順113122)
摘要:隨著大規(guī)模計(jì)算技術(shù)的發(fā)展,虛擬機(jī)技術(shù)已經(jīng)成為云計(jì)算中的重要技術(shù)。為了提高云計(jì)算實(shí)驗(yàn)平臺(tái)的運(yùn)行效率,提出了一種虛擬機(jī)容錯(cuò)機(jī)制,并進(jìn)行了研究,詳細(xì)論述了實(shí)現(xiàn)的過程以及關(guān)鍵技術(shù)。通過實(shí)驗(yàn)表明,該容錯(cuò)技術(shù)能有效的提高實(shí)驗(yàn)平臺(tái)的性能。
關(guān)鍵詞:云計(jì)算;實(shí)驗(yàn)平臺(tái);虛擬機(jī);容錯(cuò)技術(shù)
隨著云計(jì)算技術(shù)的蓬勃發(fā)展與普及,憑借其方?、快速、低成本的特性成為眾多企事業(yè)單位部署IT系統(tǒng)帶來了新的變化。云計(jì)算技術(shù)具有非常便利的可擴(kuò)展性,能夠根據(jù)用戶需求進(jìn)行動(dòng)態(tài)的分配資源,提高了系統(tǒng)資源的利用率。在本地機(jī)器上不需要安裝應(yīng)用軟件,降低了實(shí)驗(yàn)室硬件成本。云計(jì)算技術(shù)通過虛擬化操作能夠在一臺(tái)物理機(jī)上可以同時(shí)運(yùn)行多個(gè)操作系統(tǒng),不受地理位置限制,擁有易維護(hù)和運(yùn)行環(huán)境相對(duì)獨(dú)立等優(yōu)點(diǎn)。然而只要是計(jì)算機(jī)系統(tǒng),不管什么系統(tǒng)總有發(fā)生錯(cuò)誤的時(shí)候,為了減少損失,這時(shí)候就需要容錯(cuò)機(jī)制,完善的容錯(cuò)機(jī)制,可以大提升整體云實(shí)驗(yàn)平臺(tái)的運(yùn)行效率。
本研究在研究云計(jì)算環(huán)境的基礎(chǔ)上,提出了云計(jì)算實(shí)驗(yàn)平臺(tái)和容錯(cuò)技術(shù)相結(jié)合的方法。
1.1云計(jì)算技術(shù)
云計(jì)算技術(shù)是信息技術(shù)作為服務(wù)(IT as a Servjce)來提供的一種計(jì)算服務(wù)方式,這種方式很像是水、電、氣的供應(yīng),人們只需擰開龍頭或開關(guān),而不必親自去構(gòu)建龐大而復(fù)雜的管道及電路[1]。一個(gè)成功的云計(jì)算平臺(tái)可以最大限度地發(fā)揮現(xiàn)有軟件開發(fā)經(jīng)驗(yàn)、設(shè)備性能和數(shù)據(jù)資源的優(yōu)勢(shì),使得人們消費(fèi)IT服務(wù)就如同消費(fèi)水、電、氣一樣便捷。云計(jì)算技術(shù)主要包括IaaS(基礎(chǔ)設(shè)施即服務(wù))、PaaS(平臺(tái)即服務(wù))、SaaS(軟件即服務(wù))3種服務(wù)模式[2]。利用云計(jì)算技術(shù),用戶進(jìn)行的操作平臺(tái)都是基于Web,而非基于“桌面”。在任何地點(diǎn)任何時(shí)間只要通過一臺(tái)能夠連接到因特網(wǎng)的終端設(shè)備,就可以訪問所需的程序和文檔。讓用戶無論身在何處,隨時(shí)都能連接至自己的數(shù)據(jù),就能檢索自己的文件,繼續(xù)處理上次未完成的工作。
1.2虛擬化技術(shù)
現(xiàn)在電腦硬件設(shè)備發(fā)展迅速,性能也越來越好,雖然有好的設(shè)備,但是資源使用率卻無法提升,通過虛擬化技術(shù),可將資源重新分配,利用軟件技術(shù)來模擬硬件設(shè)備,讓運(yùn)行單一作業(yè)系統(tǒng)的機(jī)器可以同時(shí)運(yùn)行多個(gè)作業(yè)系統(tǒng),使得該臺(tái)機(jī)器的字眼使用率提高,之前可能需要五臺(tái)機(jī)器來運(yùn)行的程序,只需要一臺(tái)就可以運(yùn)行,大大的節(jié)省了能源的開銷[3]。云計(jì)算的概念主要是使用虛擬化的技術(shù)給用戶提供一臺(tái)和實(shí)際設(shè)備相同功能的機(jī)器,用戶不需要知道這臺(tái)機(jī)器在何處也不需要擔(dān)心管理和維修的問題,而管理員可以根據(jù)用戶的需求來提供服務(wù)。
一般來銳,虛擬化技術(shù)是一種資源管理的技術(shù),它可以將物理設(shè)備上的硬件、網(wǎng)絡(luò)、存鍺空間、軟件等資源重新分配,原本每臺(tái)設(shè)備都只可以提供給一個(gè)用戶使用,但是通過虛擬化技術(shù)可以將這些資源進(jìn)行分割,使得資源更加的充分利用[4]。
1.3容錯(cuò)技術(shù)
實(shí)現(xiàn)容錯(cuò)的主要思路為:使用備用的設(shè)備,目的不是加快運(yùn)算,而是為了確保數(shù)據(jù)的正確性和安全性[5]。這里主要是利用快照技術(shù)。
快照(snapshot)的概念和照相機(jī)相似,照相機(jī)照出的照片只是記錄當(dāng)時(shí)的影像,而對(duì)系統(tǒng)而言是記錄系統(tǒng)的狀態(tài)·傳統(tǒng)的備份方法就是將整個(gè)系統(tǒng)拷貝到另外的空間中存放,花費(fèi)的成本高、耗時(shí)大,因此出現(xiàn)了快照技術(shù)[6]。
快照技術(shù)是利用一個(gè)表格記錄系統(tǒng)當(dāng)前的狀態(tài),表格上的每一格代表的是硬盤的某一區(qū)域。當(dāng)硬盤上的資源有所變化時(shí),就在對(duì)應(yīng)區(qū)域的表格上進(jìn)行標(biāo)注。快照可以很小,只需要包含這個(gè)表格以及所有改變的標(biāo)注即可。所以產(chǎn)生快照可以很快,也可以保存很多個(gè)。當(dāng)需要進(jìn)行還原恢復(fù)時(shí),就用現(xiàn)在的硬盤狀態(tài)作為基礎(chǔ),將快照中的標(biāo)注更換回去即可。
創(chuàng)建一個(gè)快照,在不同設(shè)備下需要不同的指令,但是對(duì)于大部分的系統(tǒng)來說哦,主要包括以下步驟:
1)發(fā)生create指令;
2)指令通知操作系統(tǒng)暫停應(yīng)用程序和信息系統(tǒng)的運(yùn)行;
3)更新信息系統(tǒng)中的數(shù)據(jù),結(jié)束目前所有的讀取和寫入操作;
4)建立快照點(diǎn);
5)建立完成,釋放暫停的應(yīng)用程序和信息系統(tǒng),使系統(tǒng)繼續(xù)運(yùn)行。
實(shí)驗(yàn)平臺(tái)的底層云計(jì)算系統(tǒng)使用OpenNebu1a,跟目前市面上已知的云計(jì)算系統(tǒng)相比,OpenNebu1a有著更多的穩(wěn)定性。用戶通過用戶接口可以知道當(dāng)前虛擬機(jī)的狀態(tài)以及各自所擁有的快照資料,本文所提出的容錯(cuò)技術(shù)主要可分為桑部分(自動(dòng)快照、快照管理、自動(dòng)還原),由于系統(tǒng)發(fā)生錯(cuò)誤的時(shí)間不一定,如果通過人工進(jìn)行管理和監(jiān)測(cè),很難再第一時(shí)間發(fā)現(xiàn)錯(cuò)誤和解決,因此容錯(cuò)技術(shù)將全部自動(dòng)化運(yùn)行,通過定期的發(fā)生監(jiān)測(cè)包來確認(rèn)虛擬機(jī)狀態(tài),發(fā)生問題時(shí)將自動(dòng)旋轉(zhuǎn)最新一次的快照進(jìn)行還原恢復(fù),并定期的對(duì)虛擬機(jī)進(jìn)行快照,用戶可以選擇快照進(jìn)行還原恢復(fù)。系統(tǒng)架構(gòu)如圖1所示。

圖1 系統(tǒng)架構(gòu)圖
當(dāng)用戶登錄系統(tǒng)后,通過用戶界面可以對(duì)快照進(jìn)行預(yù)覽、新增和刪除,而在運(yùn)行界面的有兩項(xiàng)功能,第一項(xiàng)自動(dòng)化快照,系統(tǒng)將自動(dòng)的對(duì)指定的虛擬機(jī)進(jìn)行快照,然而快照建立完成后會(huì)備份一份到外部的NAS存儲(chǔ)空間;第二項(xiàng)就是自勤化還原,系統(tǒng)將定期監(jiān)測(cè)虛擬機(jī)的狀態(tài)以及發(fā)送監(jiān)測(cè)包,當(dāng)系統(tǒng)發(fā)生錯(cuò)誤時(shí),自動(dòng)化還原機(jī)制將會(huì)自動(dòng)使用最新的快照進(jìn)行還原恢復(fù)操作,從而將用戶的損失降低。運(yùn)行流程如圖2所示。

圖2 快照流程圖
2.1自動(dòng)快照
通過對(duì)虛擬機(jī)進(jìn)行自動(dòng)化快照,不再需要通過管理員或用戶使用指令來建立快照。自動(dòng)化快照中包含兩種不同類型的快照,第一種是完整型快照,第二種是快速型快照,完整型快照所提供的保護(hù)模式較完善,可以將虛擬機(jī)恢復(fù)到之前運(yùn)行的狀態(tài),但是所需要的建立快照的時(shí)間較長(zhǎng),而快速型快照創(chuàng)建快照的時(shí)間較短,但無法提供即時(shí)性的完整保護(hù)。
在建立快照時(shí),由于快照本身的機(jī)制需要暫時(shí)的將中斷虛擬機(jī)的服務(wù),因此建立快照的時(shí)間將會(huì)影響用戶中斷連接的時(shí)間,完整型的快照所需時(shí)間平均為3~5分鐘,用戶使用虛擬機(jī)的時(shí)間越長(zhǎng),建立快照的時(shí)間也會(huì)增加,而快速型的快照平均約在10秒內(nèi)完成,由于兩種類型的快照各有優(yōu)缺點(diǎn),因此本容錯(cuò)技術(shù)將綜合兩者的特點(diǎn)來進(jìn)行,以達(dá)到最佳的效果。
將自動(dòng)化快照進(jìn)行優(yōu)化,可以得到以下3種:高級(jí)型,提供的保護(hù)效果最好,但建立整型快照的次數(shù)較頻繁,用戶被中斷服務(wù)的時(shí)間較長(zhǎng),此類型比較適用在運(yùn)行程序所需時(shí)間較長(zhǎng)的虛擬機(jī)上,由于還原的程序需要持續(xù)運(yùn)行,隱藏需要適用完整型的快照去還原,為了讓用戶在使用最高等級(jí)容錯(cuò)機(jī)制,也不會(huì)因?yàn)轭l繁中斷服務(wù)而影響用戶的操作,我們選擇每3個(gè)小時(shí)執(zhí)行一次完整型快照搭配每個(gè)小時(shí)執(zhí)行一次快速型快照;中級(jí)型,用戶主要保護(hù)的是虛擬機(jī)中的信息系統(tǒng),隱藏需要將兩個(gè)完整型快照的時(shí)間間隔拉長(zhǎng),相對(duì)減少中斷服務(wù)的時(shí)間,但是當(dāng)發(fā)生錯(cuò)誤需要還原時(shí),相對(duì)高級(jí)型而言會(huì)損失一定的數(shù)據(jù)。低級(jí)型,完全使用快速型快照,雖然時(shí)間短,但是保護(hù)的效果最差。
在建立快照后,本系統(tǒng)把快照儲(chǔ)存在兩個(gè)地方(本地云、外部?jī)?chǔ)存空間),除了本地產(chǎn)生快照以為,為了防止硬件機(jī)器發(fā)生錯(cuò)誤,導(dǎo)致虛擬機(jī)和快照出錯(cuò),將快照備份到外部存儲(chǔ)空間,可以將系統(tǒng)發(fā)生錯(cuò)誤的損失降到最低。快照流程如圖3所示。
運(yùn)行構(gòu)成代碼如下:
每3個(gè)小時(shí)執(zhí)行一次
ruby fu11snapshot.rb//執(zhí)行完整型快照

圖3 快照運(yùn)行流程圖
scp snapshotname to KAS //執(zhí)行本地云和外部存儲(chǔ)空間
sq1(update new snapshot)//更新數(shù)據(jù)庫
每3個(gè)小時(shí)執(zhí)行一次
ruby fastsnapshot.rb//執(zhí)行快速型快照
scp snapshotname to KAS //執(zhí)行本地云和外部存儲(chǔ)空間sq1(update new snapshot)//更新數(shù)據(jù)庫
2.2快照管理
為了讓用戶便于使用,我們將快照管理分為兩部分:本地云,每臺(tái)虛擬機(jī)建立快照時(shí),將對(duì)快照數(shù)據(jù)進(jìn)行命名,名稱包含虛擬機(jī)ID、快照建立時(shí)間以及快照種類,為了區(qū)分完整和快速型的快照數(shù)據(jù),在名稱后加上A、B以區(qū)分,在用戶界面中,將會(huì)完整得標(biāo)識(shí)快照的類型,由于存儲(chǔ)空間有限,每臺(tái)虛擬機(jī)在內(nèi)部保存最近10個(gè)最新的完整型快照數(shù)據(jù),快速型的快照所需的空間較小,所以不做嚴(yán)格的限制,但是在用戶界面上每臺(tái)虛擬機(jī)將顯示最新的10個(gè)快照(完整+快速),用戶也可以自行選擇虛擬機(jī)進(jìn)行快照或者選擇快照名稱進(jìn)行刪除。外部存儲(chǔ)空間,為了防止物理設(shè)備的故障,我們將快照備份到外部NAS存儲(chǔ)空間,為了讓虛擬機(jī)在其他的物理設(shè)備上可以正常運(yùn)行,在創(chuàng)建虛擬機(jī)時(shí),系統(tǒng)將自動(dòng)將虛擬機(jī)的映像傳送到NAS上進(jìn)行備份,當(dāng)發(fā)生故障時(shí),系統(tǒng)會(huì)使用映像和最新的快照在另外一臺(tái)物理設(shè)備上進(jìn)行還原。在外部存儲(chǔ)空間,每臺(tái)虛擬機(jī)可以保存最新的30個(gè)快照,因?yàn)楦呒?jí)型的快照每天會(huì)產(chǎn)生8個(gè)完整型快照,系統(tǒng)將用保存最近3天的快照供用戶來執(zhí)行還原操作,快速型快照保存最新的50個(gè)快照,提供優(yōu)化后的保護(hù)。快照管理流程如圖4所示。

圖4 快照管理流程圖
2.3快照還原
當(dāng)系統(tǒng)監(jiān)測(cè)到虛擬機(jī)狀態(tài)異常而告知關(guān)機(jī),會(huì)自動(dòng)使用最近一次的快速型快照進(jìn)行還原操作,而監(jiān)測(cè)到虛擬機(jī)為開機(jī)狀態(tài),發(fā)送監(jiān)測(cè)包對(duì)虛擬機(jī)有回應(yīng)時(shí),可能其狀態(tài)為虛擬機(jī)內(nèi)部線程運(yùn)行異常,此時(shí)需要使用完整型快照進(jìn)行還原,從而保障整個(gè)虛擬機(jī)恢復(fù)到正常的狀態(tài)繼續(xù)運(yùn)行,當(dāng)發(fā)送檢測(cè)報(bào)包沒有回應(yīng)時(shí),會(huì)強(qiáng)制把虛擬機(jī)關(guān)機(jī),使用快速型快照來進(jìn)行還原。快照還原流程如圖5所示。

圖5 快照還原流程圖
3.1平臺(tái)運(yùn)行環(huán)境
本實(shí)驗(yàn)平臺(tái)使用1臺(tái)客戶端計(jì)算機(jī),2臺(tái)服務(wù)器,云計(jì)算系統(tǒng)使用OpenNebu1a,客戶端計(jì)算機(jī)的操作系統(tǒng)為CentOS 6.5,CPU為Inte1 Core2 Quad Q6600,內(nèi)存為DDR3 4G;服務(wù)器的操作系統(tǒng)為CentOS 6.5,CPU為AMD 4180*2,內(nèi)存為DDR3 16G,采用OpenNebu1a虛擬化技術(shù)。外部存儲(chǔ)NAS的操作系統(tǒng)為Ubuntu 12.10,硬盤位1T。本容錯(cuò)機(jī)制從跨平臺(tái)的角度考慮,自動(dòng)化快照使用Ruby語言來編寫。
3.2性能測(cè)試
通過觀察快照的耗時(shí)來明確平臺(tái)的性能。實(shí)驗(yàn)結(jié)果如圖6、圖7所示。

圖6 建立快照
通過建立快照、還原快照的實(shí)驗(yàn)可以看出,完整型快照比快速型快照所花費(fèi)的時(shí)間更多,其性能較低,但是完整型提供的容錯(cuò)保護(hù)較好。
本文主要是研究提升基于云計(jì)算技術(shù)實(shí)驗(yàn)平臺(tái)的可靠度,通過優(yōu)化的容錯(cuò)機(jī)制來提高虛擬機(jī)的運(yùn)行效率,利用快照來保存虛擬機(jī)的狀態(tài),便于在系統(tǒng)出錯(cuò)或者誤刪文件時(shí),能夠利用快照進(jìn)行還原,從而降低了系統(tǒng)的損失。

圖7 還原快照
參考文獻(xiàn):
[1]趙廣才,張雪萍.云計(jì)算技術(shù)分析及其展望[J].電子設(shè)計(jì)工程,2011,19(22):4-10.
[2]鄭廣成.一種SOA云服務(wù)平臺(tái)架構(gòu)研究與應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件,2011,28(12):228-231.
[3]Saurabh Kumar Garg,Rajkumar Buyya,NetworkC1oudSjm:Mode11jng Para11e1 App1jcatjons jn C1oud Sjmu1atjons[C]. Proceedjngs of the 4th IEEE/ACM Internatjona1 Conference on Utj1jty and C1oud Computjng,2011,Me1bourne,Austra1ja,December:5-7.
[4]R. Wu,G. J. Ahn,H. Hu,and M. Sjngha1,Informatjon f1ow contro1 jn c1oud computjng,jn Co11aboratjve Computjng:Networkjng,App1jcatjonsandWorksharjng (Co11aborateCom),2010 6th Internatjona1 Conference on,2010:1-7.
[5]百度百科,容錯(cuò)技術(shù)[EB/OL].[2015-3-13]http://bajke. bajdu.com/vjew/391720.htm.
[6]IT168,如何使用Hyper-V快照功能[EB/OL].[2015-4-21]http://server.jt168.com/a2008/1125/211/000000211985.shtm1.
Research of VM fault tolerance technology for eXPerlmental Platform based on cloud comPutlng
LI Bo
(Fushun Vocational Technology Institute,F(xiàn)ushun 113122,China)
Abstract:Wjth the deve1opment of 1arge-sca1e computjng techno1ogy,the vjrtua1 machjne techno1ogy has become an jmportant techno1ogy jn c1oud computjng. In order to jmprove the effjcjency of experjmenta1 p1atform based on C1oud computjng,the VM fau1t to1erance techno1ogy was desjgned and research,the process and key techno1ogy was djscussed jn detaj1s. Experjments show that the fau1t to1erant techno1ogy can effectjve1y jmprove the performance of the experjmenta1 p1atform.
Key words:c1oud computjng;experjmenta1 p1atform;VM;fau1t to1erance techno1ogy
中圖分類號(hào):TN919.5
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1674-6236(2016)07-0179-03
收稿日期:2015-05-21稿件編號(hào):201505204
作者簡(jiǎn)介:李博(1982—),男,山東濱州人,碩士,實(shí)驗(yàn)師。研究方向:實(shí)驗(yàn)室技術(shù),云計(jì)算技術(shù)。