崔競(jìng)松,路昊宇,郭 遲,何 松
(1.武漢大學(xué)a.計(jì)算機(jī)學(xué)院;b.空天信息安全與可信計(jì)算教育部重點(diǎn)實(shí)驗(yàn)室,武漢430072; 2.武漢大學(xué)衛(wèi)星導(dǎo)航定位技術(shù)研究中心,武漢430079)
基于事件驅(qū)動(dòng)機(jī)制的虛擬化故障檢測(cè)恢復(fù)系統(tǒng)
崔競(jìng)松1a,1b,路昊宇1a,郭 遲2,何 松1a
(1.武漢大學(xué)a.計(jì)算機(jī)學(xué)院;b.空天信息安全與可信計(jì)算教育部重點(diǎn)實(shí)驗(yàn)室,武漢430072; 2.武漢大學(xué)衛(wèi)星導(dǎo)航定位技術(shù)研究中心,武漢430079)
為解決虛擬化條件下云平臺(tái)故障排除不及時(shí)的問(wèn)題,在開(kāi)源云平臺(tái)OpenStack上設(shè)計(jì)并實(shí)現(xiàn)一種虛擬化故障檢測(cè)恢復(fù)系統(tǒng)。該系統(tǒng)由GUI層、調(diào)度層、邏輯層和功能層組成,以事件驅(qū)動(dòng)機(jī)制為核心,將系統(tǒng)中傳遞的信息作為事件按時(shí)序進(jìn)行處理。以感知模塊、策略模塊、執(zhí)行模塊為主體,調(diào)用OpenStack API和Libvirt API實(shí)現(xiàn)與虛擬機(jī)管理層的交互。建立以信息獲取、分析處理、故障恢復(fù)為主要內(nèi)容的故障檢測(cè)恢復(fù)體系,通過(guò)對(duì)云平臺(tái)運(yùn)行環(huán)境的實(shí)時(shí)檢測(cè),獲取狀態(tài)參數(shù),根據(jù)策略對(duì)參數(shù)進(jìn)行分析判斷并制定應(yīng)對(duì)措施,實(shí)現(xiàn)對(duì)故障的自動(dòng)恢復(fù)。實(shí)驗(yàn)結(jié)果證明,該系統(tǒng)可以在無(wú)代理情況下對(duì)云平臺(tái)進(jìn)行實(shí)時(shí)檢測(cè)和故障自動(dòng)恢復(fù),增強(qiáng)云環(huán)境的安全性,提升云平臺(tái)的高可用性。
OpenStack云平臺(tái);負(fù)載均衡;事件驅(qū)動(dòng)機(jī)制;高可用性;虛擬化;云計(jì)算
云計(jì)算將大量的計(jì)算資源、存儲(chǔ)資源與軟件資源鏈接在一起,形成巨大規(guī)模的共享虛擬IT資源池[1],綜合分布式計(jì)算、虛擬化技術(shù)、負(fù)載均衡技術(shù)、網(wǎng)絡(luò)存儲(chǔ)技術(shù)等傳統(tǒng)計(jì)算機(jī)技術(shù)[2],屏蔽了底層的差異,把不同的、獨(dú)立的計(jì)算機(jī)資源抽象成統(tǒng)一的、共享的資源統(tǒng)一向外界提供服務(wù)[3]。在云計(jì)算環(huán)境下,IT領(lǐng)域按需服務(wù)的理念得到了真正體現(xiàn),云計(jì)算通過(guò)整合分布式資源,構(gòu)建應(yīng)對(duì)多種服務(wù)要求的計(jì)算環(huán)境,滿足用戶定制化要求,并可通過(guò)網(wǎng)絡(luò)訪問(wèn)相應(yīng)的服務(wù)資源[4]。
云平臺(tái)資源的高度集中化使得其高可用性變得非常重要,任何系統(tǒng)維護(hù)與宕機(jī)都可能引起較大規(guī)模的服務(wù)缺失[5]。對(duì)于一個(gè)計(jì)算中心而言,提供一種高可用性的能力服務(wù)于所有在其上運(yùn)行的應(yīng)用是要考慮的關(guān)鍵問(wèn)題之一[6]?,F(xiàn)有的云平臺(tái)都提供了一定的技術(shù)保證了云的高可用性,比如VMware vSphere[7]能夠檢測(cè)虛擬機(jī)所在物理主機(jī)運(yùn)行情況,但是對(duì)運(yùn)行中的虛擬機(jī)及應(yīng)用程序方面的監(jiān)測(cè)較少,一旦發(fā)生故障將不能得到及時(shí)處理,導(dǎo)致服務(wù)中斷。本文在OpenStack基礎(chǔ)上設(shè)計(jì)并實(shí)現(xiàn)一種基于事件驅(qū)動(dòng)機(jī)制的虛擬化故障檢測(cè)恢復(fù)系統(tǒng),從物理機(jī)、虛擬機(jī)、虛擬機(jī)應(yīng)用3個(gè)層次對(duì)云平臺(tái)環(huán)境進(jìn)行監(jiān)控,實(shí)時(shí)獲取運(yùn)行參數(shù),實(shí)現(xiàn)對(duì)故障的無(wú)代理檢測(cè)恢復(fù)。
OpenStack[8]是美國(guó)國(guó)家航空航天局和Rackspace公司共同開(kāi)發(fā)的開(kāi)源云計(jì)算平臺(tái),旨在為公共及私有云的建設(shè)與管理提供各種組件。系統(tǒng)在OpenStack基礎(chǔ)上,通過(guò)API調(diào)用整合形成GUI層、Scheduler[9]調(diào)度層、邏輯層和功能層,并按邏輯將功能層和邏輯層劃分為感知模塊、策略模塊和執(zhí)行模塊三大核心模塊,采用事件驅(qū)動(dòng)機(jī)制將各部分有機(jī)結(jié)合起來(lái),通過(guò)對(duì)事件的處理實(shí)現(xiàn)系統(tǒng)對(duì)故障的檢測(cè)和恢復(fù)功能。系統(tǒng)架構(gòu)如圖1所示。
圖1 系統(tǒng)架構(gòu)
(1)功能層:通過(guò)對(duì)Libvirt API[10]和OpenStack API的封裝調(diào)用,實(shí)現(xiàn)OpenStack和Libvirt進(jìn)行交互,連接系統(tǒng)和虛擬機(jī)管理層,同時(shí)功能層作為整個(gè)系統(tǒng)的最底層為其它各層的函數(shù)調(diào)用及相關(guān)功能提供支持。
(2)邏輯層:采用事件驅(qū)動(dòng)機(jī)制,將系統(tǒng)中傳遞的信息規(guī)范為事件由相應(yīng)的對(duì)象進(jìn)行處理。事件主要分為感知事件、策略事件和執(zhí)行事件。
(3)調(diào)度層:負(fù)責(zé)對(duì)事件隊(duì)列進(jìn)行操作,作為系統(tǒng)運(yùn)行的樞紐進(jìn)行調(diào)度,保證事件有條不紊地被執(zhí)行,對(duì)事件隊(duì)列滿、事件隊(duì)列空等各種異常進(jìn)行處理。
(4)GUI層:用來(lái)與用戶進(jìn)行交互,用戶可以通過(guò)該界面,獲得系統(tǒng)的運(yùn)行參數(shù),主要包括虛擬機(jī)的運(yùn)行狀態(tài)、虛擬機(jī)的資源占用等情況。同時(shí),用戶可以通過(guò)界面控制虛擬機(jī)的運(yùn)行狀況(比如停止某臺(tái)虛擬機(jī)),對(duì)系統(tǒng)的部分基本配置(比如打撈時(shí)間的設(shè)置等)進(jìn)行更改。
(5)核心模塊:三大模塊均由對(duì)應(yīng)的Handler和Function組成。感知模塊負(fù)責(zé)感知整個(gè)系統(tǒng)的運(yùn)行情況;策略模塊根據(jù)感知的結(jié)果進(jìn)行處理;執(zhí)行模塊負(fù)責(zé)執(zhí)行策略模塊制定的恢復(fù)策略,共同構(gòu)成系統(tǒng)的檢測(cè)恢復(fù)核心。
為了實(shí)現(xiàn)不同層面、不同模塊、不同進(jìn)程(線程)之間通信和信息處理,系統(tǒng)采用事件驅(qū)動(dòng)的方式,將感知到的信息、制定的策略等系統(tǒng)中傳遞的信息作為事件,由事件處理進(jìn)程進(jìn)行處理,平時(shí)事件處理進(jìn)程處于等待狀態(tài),由接收到的任何一個(gè)事件進(jìn)行驅(qū)動(dòng)[11]。事件驅(qū)動(dòng)主要設(shè)計(jì)3個(gè)類:Event事件類, Handler邏輯類,Scheduler調(diào)度類。在事件驅(qū)動(dòng)機(jī)制中,Event是派生所有事件的基類,用來(lái)標(biāo)識(shí)系統(tǒng)中各種行為,比如啟動(dòng)虛擬機(jī);Handler是派生所有事件處理對(duì)象的基類,用來(lái)處理相應(yīng)Event事件類; Scheduler調(diào)度類負(fù)責(zé)調(diào)度事件,事件隊(duì)列Queue定義在Scheduler類中,Scheduler對(duì)事件隊(duì)列進(jìn)行維護(hù),用來(lái)保證事件被有序處理。事件驅(qū)動(dòng)機(jī)制總體設(shè)計(jì)如圖2所示。
圖2 事件驅(qū)動(dòng)機(jī)制總體設(shè)計(jì)
事件驅(qū)動(dòng)的過(guò)程主要分3個(gè)步驟:首先是將事件放入全局的事件隊(duì)列Queue中,然后按時(shí)間順序從事件隊(duì)列中取出事件,再通過(guò)指定的事件處理對(duì)象(即Handler)處理事件,在處理過(guò)程中可能會(huì)往事件隊(duì)列中加入新的事件。這樣不斷取出事件并處理一直到事件隊(duì)列為空,就實(shí)現(xiàn)了一次感知過(guò)程。
Scheduler主要負(fù)責(zé)事件的調(diào)度,采用基于事件[12]的周期輪詢機(jī)制,按時(shí)序?qū)ο到y(tǒng)中的事件進(jìn)行統(tǒng)一的調(diào)度和處理。事件隊(duì)列是由優(yōu)先級(jí)和時(shí)間決定的有序隊(duì)列,按照優(yōu)先級(jí)由高到低的順序執(zhí)行,在優(yōu)先級(jí)相同的情況下按照事件執(zhí)行時(shí)間先后排序執(zhí)行,確保隊(duì)首永遠(yuǎn)是第一個(gè)要執(zhí)行的事件。Scheduler采取每執(zhí)行一個(gè)事件就在后臺(tái)啟動(dòng)一個(gè)線程的方式防止事件等待加快并行,將隊(duì)列設(shè)置成靜態(tài)變量防止多線程隊(duì)列,實(shí)現(xiàn)對(duì)隊(duì)列的高度維護(hù)。由于事件的插入和取出并執(zhí)行相互獨(dú)立,可能會(huì)發(fā)生隊(duì)列中第一個(gè)事件還沒(méi)到執(zhí)行時(shí)間,Scheduler正在休眠,實(shí)然插入一個(gè)需要立即執(zhí)行的新事件需要喚醒隊(duì)列,為此引入鎖機(jī)制。Scheduler休眠需滿足2個(gè)條件:(1)執(zhí)行時(shí)間不小于現(xiàn)在系統(tǒng)的時(shí)間;(2)鎖必須是關(guān)閉的。當(dāng)Scheduler休眠時(shí),新到達(dá)的事件執(zhí)行時(shí)間小于現(xiàn)在系統(tǒng)時(shí)間,系統(tǒng)就會(huì)打開(kāi)鎖,從而破壞Scheduler休眠的必要條件,喚醒Scheduler。
系統(tǒng)的主體是由功能層和邏輯層共同組成的感知模塊、策略模塊和執(zhí)行模塊,在此基礎(chǔ)上通過(guò)事件驅(qū)動(dòng)機(jī)制進(jìn)行調(diào)度,實(shí)現(xiàn)對(duì)故障的自動(dòng)檢測(cè)和恢復(fù)功能,具體工作流程如圖3所示。
圖3 系統(tǒng)工作流程
通過(guò)感知模塊獲取系統(tǒng)運(yùn)行信息,由策略模塊對(duì)感知的信息進(jìn)行分析并區(qū)別制定策略,執(zhí)行模塊根據(jù)策略進(jìn)行故障恢復(fù)、提示系統(tǒng)管理員或者在系統(tǒng)運(yùn)行正常的情況下無(wú)動(dòng)作。從而在云平臺(tái)中某臺(tái)物理服務(wù)器發(fā)生故障時(shí),能夠自動(dòng)檢測(cè)故障并選擇合適的物理機(jī)重建運(yùn)行在該物理機(jī)上所有虛擬機(jī);當(dāng)物理機(jī)上某臺(tái)虛擬機(jī)發(fā)生故障時(shí),能夠刪除故障虛擬機(jī),根據(jù)其快照或鏡像快速進(jìn)行重建;當(dāng)虛擬機(jī)中的某個(gè)應(yīng)用進(jìn)程發(fā)生故障時(shí)(進(jìn)程非正常退出、非正常掛起),在無(wú)代理的情況下,直接操作GuestOS內(nèi)核對(duì)象,恢復(fù)啟動(dòng)虛擬機(jī)里的進(jìn)程。
4.1 感知模塊
感知模塊由感知Function和Handler組成,其中,Function主要封裝Libvirt API獲取信息實(shí)現(xiàn)底層功能,完成對(duì)上層Handler的支持。感知模塊Function類結(jié)構(gòu)如圖4所示。
圖4 感知模塊Function類
感知模塊通過(guò)感知Function類中的F_Host、F_ VM、F_APP 3個(gè)子類分別獲取物理機(jī)、虛擬機(jī)、虛擬機(jī)應(yīng)用的信息,由相應(yīng)的Handler類進(jìn)行處理,生成對(duì)應(yīng)的感知事件進(jìn)入策略模塊進(jìn)行處理。其中,物理機(jī)主要考察主機(jī)狀態(tài)、內(nèi)存、CPU、網(wǎng)絡(luò)、磁盤等信息,虛擬機(jī)主要考察全局(指定)虛擬機(jī)狀態(tài)、網(wǎng)絡(luò)、磁盤、內(nèi)存等信息,虛擬機(jī)應(yīng)用主要考察進(jìn)程狀態(tài)、進(jìn)程數(shù)、內(nèi)存等信息。以物理機(jī)狀態(tài)獲取為例,Function類獲取信息流程為:(1)確定獲得物理主機(jī)狀態(tài)的類F_hostStatus;(2)通過(guò)與主機(jī)建立Libvirt連接調(diào)用函數(shù)getConnect()獲得與物理機(jī)的連接conn;(3)對(duì)conn進(jìn)行判斷,若conn為fals則相應(yīng)的物理機(jī)狀態(tài)為0(0表示物理機(jī)斷電),若conn為ture,則相應(yīng)物理機(jī)狀態(tài)為1(1表示物理機(jī)正常)。
4.2 策略模塊
策略模塊對(duì)感知模塊傳送來(lái)的感知事件進(jìn)行分析,根據(jù)策略機(jī)制來(lái)判斷平臺(tái)出現(xiàn)何種故障,并生成相應(yīng)的策略事件。策略機(jī)制是整個(gè)模塊的核心,不同的事件對(duì)應(yīng)不同的策略機(jī)制。以恢復(fù)虛擬機(jī)的機(jī)制為例,共有3張表需要維護(hù),第1張表Instance_ Info,信息主要來(lái)自nova的數(shù)據(jù)庫(kù)并由nova進(jìn)行維護(hù),保存虛擬機(jī)的基本信息。它是一個(gè)字典的結(jié)構(gòu),每一項(xiàng)也是一個(gè)字典,格式為{虛擬機(jī)的序列號(hào): {‘id’:’ ’,’isActive’:’ ’}。第2張表VM_ State,主要由Libvirt維護(hù),它的信息主要是感知模塊感知到的信息,它也是一個(gè)字典結(jié)構(gòu),每一項(xiàng)為{虛擬機(jī)的id:虛擬機(jī)的狀態(tài)}。第3張表Execution_ State,記錄一個(gè)虛擬機(jī)正在進(jìn)行恢復(fù)的操作,其信息主要是根據(jù)Instance_Info表和VM_State表,信息的修改主要由執(zhí)行Handler來(lái)執(zhí)行。恢復(fù)虛擬機(jī)的邏輯機(jī)制如表1所示。
表1 虛擬機(jī)恢復(fù)的邏輯機(jī)制
4.3 執(zhí)行模塊
執(zhí)行模塊主要是對(duì)策略模塊分析制定的策略響應(yīng)并采取相應(yīng)措施,對(duì)故障進(jìn)行恢復(fù)。執(zhí)行模塊Function類圖如圖5所示。
圖5 執(zhí)行模塊Function類圖
F_ExeHost主要處理物理主機(jī)異常,可以對(duì)物理機(jī)進(jìn)行關(guān)閉、重啟、配置網(wǎng)絡(luò)、殺死進(jìn)程、向管理員發(fā)送異常報(bào)告的操作;F_ExeVM主要處理虛擬機(jī)出現(xiàn)異常,可以重新開(kāi)啟一臺(tái)虛擬機(jī),對(duì)運(yùn)行的虛擬機(jī)進(jìn)行關(guān)閉、銷毀、配置網(wǎng)絡(luò)、向管理員發(fā)送異常報(bào)告的操作;F_EAPP主要處理虛擬應(yīng)用出現(xiàn)異常,包括殺死進(jìn)程、重啟應(yīng)用程序、向管理員發(fā)送異常報(bào)告等。執(zhí)行Handler類的核心是OpenStack API的調(diào)用。Handler類通過(guò)調(diào)用OpenStack平臺(tái)提供的對(duì)外接口,用類與OpenStack進(jìn)行交互,利用OpenStack的現(xiàn)有功能完成操作。
4.4 負(fù)載平衡
為了在創(chuàng)建和恢復(fù)虛擬機(jī)時(shí)實(shí)現(xiàn)負(fù)載均衡、提高資源利用率,由Nova-Scheduler[13]分析并選擇性能最佳的物理主機(jī)創(chuàng)建并啟動(dòng)虛擬機(jī),共分3個(gè)步驟:
(1)主機(jī)過(guò)濾:在獲取到集群中所有物理主機(jī)列表的情況下,根據(jù)特定的屬性過(guò)濾掉不滿足條件的主機(jī),生成新的主機(jī)列表。過(guò)濾器可以使用OpenStack提供的默認(rèn)過(guò)濾器,也可以根據(jù)需要進(jìn)行設(shè)置,創(chuàng)建特定的過(guò)濾器。
(2)權(quán)值計(jì)算:將過(guò)濾后的主機(jī)列表進(jìn)行性能評(píng)估。在此采取權(quán)值算法,給主機(jī)的每個(gè)特性設(shè)定權(quán)重值,將內(nèi)存大小、磁盤容量、網(wǎng)絡(luò)流量等特性值分別相應(yīng)的權(quán)重相乘,把得到的數(shù)值加起來(lái)就得到主機(jī)的綜合權(quán)值。
(3)主機(jī)選擇:根據(jù)每臺(tái)主機(jī)的綜合權(quán)值對(duì)列表內(nèi)的主機(jī)進(jìn)行排序,從而選擇合適的主機(jī)進(jìn)行虛擬機(jī)的創(chuàng)建與重啟。根據(jù)虛擬機(jī)的不同特性要求,也可以選擇主機(jī)的部分特性進(jìn)行權(quán)值計(jì)算后進(jìn)行排序。
5.1 實(shí)驗(yàn)環(huán)境
實(shí)驗(yàn)平臺(tái)由5臺(tái)主機(jī)組成,其中主控節(jié)點(diǎn)1臺(tái),主要配置nova,glance,keystone,horizon,mysql服務(wù),向計(jì)算節(jié)點(diǎn)發(fā)送命令;共享存儲(chǔ)1臺(tái),主要配置oracle服務(wù),具有數(shù)據(jù)庫(kù)、共享存儲(chǔ)功能;計(jì)算節(jié)點(diǎn)3臺(tái)(分別為B1,B2,B3),主要配置有novacompute,nova-network服務(wù),運(yùn)行虛擬機(jī)提供虛擬應(yīng)用。計(jì)算節(jié)點(diǎn)3臺(tái)主機(jī)運(yùn)行的虛擬機(jī)分別為VM1, VM2,VM3,操作系統(tǒng)依次為Windows Xp Sp3, Ubuntu12.04 LTS和Windows 7 Sp2。實(shí)驗(yàn)環(huán)境配置如表2所示。
表2 實(shí)驗(yàn)環(huán)境配置
5.2 實(shí)驗(yàn)測(cè)試
實(shí)驗(yàn)測(cè)試過(guò)程如下:
(1)物理主機(jī)故障:在物理主機(jī)B1上正在運(yùn)行有虛擬機(jī)VM1,因?yàn)锽1突然斷電不能正常工作, B2,B3均正常工作,系統(tǒng)檢測(cè)到后重建了虛擬機(jī)VM1,并向管理員發(fā)送異常報(bào)告。在其他條件不定的情況下改變B2、B3的硬盤大小,虛擬機(jī)在2臺(tái)物理主機(jī)上重建的概率分布如圖6所示。
圖6 物理主機(jī)選擇分布
(2)虛擬機(jī)故障:在計(jì)算節(jié)點(diǎn)的物理主機(jī)B1, B2,B3上分別運(yùn)行有虛擬機(jī)VM1,VM2,VM3,對(duì)以下2種情形測(cè)試:1)在終端利用Libvirt命令刪除虛擬機(jī)導(dǎo)致虛擬機(jī)崩潰,系統(tǒng)檢測(cè)到異常后在物理主機(jī)上重建了虛擬機(jī),重建的虛擬機(jī)與崩潰的虛擬機(jī)一樣并保存了原虛擬機(jī)的永存數(shù)據(jù);2)在虛擬機(jī)上打開(kāi)多個(gè)任務(wù)窗口導(dǎo)致虛擬機(jī)宕機(jī),系統(tǒng)檢測(cè)到異常后對(duì)虛擬機(jī)進(jìn)行了重啟。虛擬機(jī)恢復(fù)時(shí)間如表3所示。
表3 虛擬機(jī)恢復(fù)時(shí)間
(3)虛擬應(yīng)用故障:在虛擬機(jī)上運(yùn)行有FTP服務(wù)器、在線視頻庫(kù)和Web服務(wù)器為用戶提供FTP下載、在線視頻觀看和網(wǎng)站訪問(wèn)服務(wù),在虛擬機(jī)上通過(guò)任務(wù)管理器將應(yīng)用程序進(jìn)程關(guān)閉,系統(tǒng)檢測(cè)到進(jìn)程異常后進(jìn)行恢復(fù),繼續(xù)為用戶提供服務(wù)。虛擬應(yīng)用恢復(fù)時(shí)間如表4所示。
表4 虛擬應(yīng)用恢復(fù)時(shí)間
通過(guò)實(shí)驗(yàn)結(jié)果表明,本文系統(tǒng)能夠在虛擬化條件下自動(dòng)檢測(cè)云平臺(tái)運(yùn)行狀態(tài)并獲取相關(guān)參數(shù),通過(guò)對(duì)數(shù)據(jù)分析判斷發(fā)現(xiàn)異常,根據(jù)既定策略進(jìn)行故障排除,完成虛擬機(jī)及應(yīng)用的重啟重建,恢復(fù)中斷的服務(wù),實(shí)現(xiàn)對(duì)云平臺(tái)故障實(shí)時(shí)無(wú)代理恢復(fù)。
隨著云計(jì)算應(yīng)用日益廣泛,云服務(wù)的可靠性要求也越來(lái)越高,云平臺(tái)中的物理主機(jī)崩潰、虛擬機(jī)宕機(jī)、云應(yīng)用無(wú)響應(yīng)等故障都會(huì)導(dǎo)致云服務(wù)的中斷,影響用戶體驗(yàn)。本文利用OpenStack云平臺(tái)設(shè)計(jì)實(shí)現(xiàn)的基于事件驅(qū)動(dòng)機(jī)制的虛擬化故障檢測(cè)恢復(fù)系統(tǒng),通過(guò)對(duì)云平臺(tái)運(yùn)行參數(shù)的獲取和分析處理,同時(shí)充分考慮負(fù)載均衡,實(shí)現(xiàn)了對(duì)云平臺(tái)的實(shí)時(shí)檢測(cè)和故障的無(wú)代理自動(dòng)恢復(fù),有效縮短了故障時(shí)間,提升了云平臺(tái)的高可用性。由于本文方法并未考慮大數(shù)量故障的情況,數(shù)量增多會(huì)對(duì)故障的檢測(cè)和恢復(fù)造成不利的影響,比如耗時(shí)較多、負(fù)載過(guò)大等,因此提高大數(shù)量故障檢測(cè)效率將是下一步研究的重點(diǎn)。
[1] Feng Dengguo,Zhang Min,Zhang Yan,et al.Study on Cloud Computing Security[J].Journal of Software, 2011,22(1):71-83.
[2] Zissis D,LekkasD.AddressingCloudComputing SecurityIssues[J].FutureGenerationComputer Systems,2012,28(3):583-592.
[3] Varia J.CloudArchitectures-AmazonWebService[EB/OL].(2009-03-01).http://acmbangalore, org/events/monthly-talk/may-2008-cloud-architecturesamazon-web-services.html.
[4] 林 闖,蘇文博,孟 坤,等.云計(jì)算安全:架構(gòu),機(jī)制與模型評(píng)價(jià)[J].計(jì)算機(jī)學(xué)報(bào),2013,36(9):1765-1784.
[5] 陳海波,夏虞斌,陳 榕.高可信、高擴(kuò)展與高可用云計(jì)算平臺(tái)的研究與展望[J].高性能計(jì)算發(fā)展與應(yīng)用, 2013,43(2):29-34.
[6] Calzolari F,ArezziniS,CiampaA,etal.High Availability Using Virtualization[J].Journal of Physics, 2010,219(5).
[7] Tate J,Kelley R,Maliska S R R,et al.IBM SAN Solution Design Best Practices for VMware vSphere ESXi[Z].IBM Redbooks,2013.
[8] OpenStack[EB/OL].(2014-02-01).http://www. openstack.org.
[9] Litvinski O,GherbiA.ExperimentalEvaluationof OpenStack Compute Scheduler[J].Procedia Computer Science,2013,19(1):116-123.
[10] Sotomayor B,Montero R S,Llorente I M,et al.Virtual InfrastructureManagementinPrivateandHybrid Clouds[J].IEEE Internet Computing,2009,13(5): 14-22.
[11] 王 莉,李新明,李 藝,等.高可用性系統(tǒng)軟件HHA的事件驅(qū)動(dòng)機(jī)制[J].計(jì)算機(jī)工程與應(yīng)用,2003, 39(4):145-147.
[12] Pimentel J R.An Incremental Approach to Task and Message SchedulingforAutosarBasedDistributed Automotive Applications[C]//Proceedings of the 4th International Workshop on Software Engineering for Automotive Systems.[S.1.]:IEEE Computer Society, 2007:1-7.
[13] Wen X,Gu G,Li Q,et al.Comparison of Open-source CloudManagementPlatforms:OpenStackand OpenNebula[C]//Proceedings of the 9th International ConferenceonFuzzySystemsandKnowledge Discovery.[S.1.]:IEEE Press,2012:2457-2461.
編輯 索書(shū)志
Virtualization Fault Detection Recovery System Based on Event-driven Mechanism
CUI Jingsong1a,1b,LU Haoyu1a,GUO Chi2,HE Song1a
(1a.School of Computer Science;b.Key Laboratory of Aerospace Information and Trusted Computing, Wuhan University,Wuhan 430072,China;2.Global Navigation Satellite System Research Center, Wuhan University,Wuhan 430079,China)
In order to solve the problem that the fault troubleshooting of cloud platforms is not timely,and guarantee the continuity of cloud services,this paper designs and implements a virtualization fault detection and recovery system based on event-driven mechanism,which is on the open-source cloud platform——OpenStack.The system is composed of GUI layer,scheduling layer,logic layer and functional layer,and processes the information transmitted in the system by timing as an event on the basis of event-driven mechanism.It mainly uses perception module,policy module and execution module,which call OpenStack API and Libvirt API to interact with the management of virtual machines.The established fault detection recovery system mainly includes information acquisition,analysis and processing,fault recovery,and by real-time detection of the cloud platform’s runtime environment,it can obtain state parameters,analyze the parameters and develop countermeasures according to established policy,and achieve automatic fault recovery.Experimental results show that the system can detect and recover cloud platforms’fault with agentless method,enhance the security of cloud environments,and improve the high availability of cloud platforms.
OpenStack cloud platform;load balancing;event-driven mechanism;high availability;virtualization; cloud computing
崔競(jìng)松,路昊宇,郭 遲,等.基于事件驅(qū)動(dòng)機(jī)制的虛擬化故障檢測(cè)恢復(fù)系統(tǒng)[J].計(jì)算機(jī)工程, 2015,41(2):7-11,16.
英文引用格式:Cui Jingsong,Lu Haoyu,Guo Chi,et al.Virtualization Fault Detection Recovery System Based on Eventdriven Mechanism[J].Computer Engineering,2015,41(2):7-11,16.
1000-3428(2015)02-0007-05
:A
:TP302.1
10.3969/j.issn.1000-3428.2015.02.002
國(guó)家“863”計(jì)劃基金資助項(xiàng)目(2013AA12A206);國(guó)家自然科學(xué)基金資助項(xiàng)目(41104010,91120002,61170026);中央高?;究蒲袠I(yè)務(wù)費(fèi)專項(xiàng)基金資助項(xiàng)目(2042014kf0237)。
崔競(jìng)松(1975-),男,副教授、博士,主研方向:信息安全,云安全;路昊宇,碩士研究生;郭 遲(通訊作者),講師、博士;何 松,碩士研究生。
2014-03-21
:2014-05-09E-mail:guochi@whu.edu.cn