




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
面向虛擬化系統(tǒng)的故障注入工具設(shè)計(jì)與實(shí)現(xiàn)胡慎;徐珞;艾中良;李寧【摘要】Tosolvetheproblemthattheexistingfaultinjectorsfailtotestspecificfaultsofvirtualsystem,anarchitectureoffaultinjectorforvirtualsystemwaspresented.Thearchitecturewascomposedofvirtualmachinemanager,virtualmachinenodesandthefront-end,thetestscriptdefinedbyXmlwaspassedandparsedthroughthefront-end,tomakevirtualmachinemanageraccessthefaultinjectioninformation,theneachkindoffaultwasinjectedintovirtualmachinenodesaccordingtotheinformation,andafaultinjectionprocesswascompleted.Basedonthisarchitecture,afaultinjectorwasimplementedonXenvirtualsystemandfaultinjectionexperimentswerecarriedout.Resultsshowthatfaultscanbeinjectedeffectively,andtheevaluationofreliabilityandfaulttoleranceisachieved.%為解決現(xiàn)有故障注入工具缺乏對(duì)虛擬化系統(tǒng)特有故障進(jìn)行測(cè)試的問(wèn)題,提出一種面向虛擬化系統(tǒng)的故障注入工具架構(gòu).架構(gòu)由虛擬機(jī)管理器、各虛擬機(jī)節(jié)點(diǎn)和前端部分組成,Xml定義的測(cè)試腳本通過(guò)前端部分傳入并解析,使得虛擬機(jī)管理器獲取故障注入信息后,根據(jù)信息將各類故障注入到虛擬機(jī)節(jié)點(diǎn)中,完成一次故障注入過(guò)程.以該架構(gòu)為基礎(chǔ),在Xen虛擬化系統(tǒng)上實(shí)現(xiàn)故障注入工具并進(jìn)行故障注入實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明,利用該工具可以對(duì)Xen系統(tǒng)進(jìn)行有效故障注入并完成可靠性和容錯(cuò)性評(píng)測(cè).【期刊名稱】《計(jì)算機(jī)工程與設(shè)計(jì)》【年(卷),期】2018(039)002【總頁(yè)數(shù)】6頁(yè)(P468-473)【關(guān)鍵詞】故障注入;虛擬化系統(tǒng);虛擬機(jī)管理器;故障建模;可靠性評(píng)測(cè);容錯(cuò)性評(píng)測(cè)【作者】胡慎;徐珞;艾中良;李寧【作者單位】華北計(jì)算技術(shù)研究所總體部,北京100083;華北計(jì)算技術(shù)研究所總體部,北京100083;華北計(jì)算技術(shù)研究所總體部,北京100083;華北計(jì)算技術(shù)研究所總體部,北京100083【正文語(yǔ)種】中文【中圖分類】TP302.80引言面向虛擬化系統(tǒng)的故障注入技術(shù)可以給出對(duì)虛擬化系統(tǒng)的可靠性及容錯(cuò)性評(píng)價(jià),是對(duì)虛擬化系統(tǒng)進(jìn)行評(píng)測(cè)的重要方法[1]。目前存在的故障注入工具如DEFINE、NFTAPE、DOCTOR和Xception等多為傳統(tǒng)物理機(jī)故障注入工具[2],不能直接應(yīng)用到虛擬化系統(tǒng)上,且其缺少對(duì)虛擬化系統(tǒng)特有故障的測(cè)試,因此無(wú)法滿足對(duì)虛擬化系統(tǒng)可靠性及容錯(cuò)性的評(píng)測(cè)。本文在分析典型虛擬化系統(tǒng)的體系結(jié)構(gòu)及虛擬化機(jī)制的基礎(chǔ)上,提出了一種面向虛擬化系統(tǒng)的故障注入工具架構(gòu),并以該架構(gòu)為基礎(chǔ)以及Xen系統(tǒng)實(shí)現(xiàn)了一種故障注入工具,完成了向虛擬化系統(tǒng)的核心即虛擬化管理器層(virtualmachinemonitor,VMM)的故障注入實(shí)驗(yàn)并依據(jù)實(shí)驗(yàn)結(jié)果對(duì)系統(tǒng)的可靠性和容錯(cuò)性進(jìn)行分析,驗(yàn)證了工具的有效性。1傳統(tǒng)故障注入技術(shù)傳統(tǒng)故障注入技術(shù)可分為1.1節(jié)和1.2節(jié)中介紹的兩大類,此兩類技術(shù)的具體定義及優(yōu)缺點(diǎn)請(qǐng)參見文獻(xiàn)[3]。1.1基于模擬的故障注入常見的基于模擬的故障注入工具有CECIUM、FOCUS和MEFISTO等。該方法的優(yōu)點(diǎn)是可以在系統(tǒng)設(shè)計(jì)的不同階段進(jìn)行故障的注入,不存在可訪問(wèn)性方面的限制。但是這種方法存在的缺點(diǎn)是在建模上比較復(fù)雜且比較耗時(shí),不便于系統(tǒng)的便捷開發(fā);并且需要準(zhǔn)確的參數(shù)輸入,當(dāng)設(shè)計(jì)改變復(fù)雜化歷史測(cè)試數(shù)據(jù)的使用時(shí),很難獲取準(zhǔn)確的參數(shù)輸入。1.2基于原型的故障注入1.2.1硬件故障注入常見的硬件注入故障工具有Messaline、RIFLE等。其包含接觸式和非接觸式兩類注入方法:接觸式方法會(huì)直接接觸目標(biāo)系統(tǒng);非接觸式硬件故障注入不直接接觸目標(biāo)系統(tǒng)的硬件設(shè)備。隨著硬件封裝密度的提高,硬件故障注入的使用也越來(lái)越少。1.2.2軟件故障注入常見的軟件故障注入工具有DEFINE、NFTAPE、DOCTOR和Xception等。根據(jù)故障注入時(shí)刻的不同,可將軟件故障注入分為編譯時(shí)故障注入和運(yùn)行時(shí)故障注入。編譯時(shí)故障注入是指在程序編譯連接時(shí)進(jìn)行故障注入;運(yùn)行時(shí)故障注入是指在程序運(yùn)行時(shí)進(jìn)行故障注入。2故障注入工具的設(shè)計(jì)與實(shí)現(xiàn)2.1工具總體架構(gòu)設(shè)計(jì)與傳統(tǒng)物理機(jī)相比,虛擬化系統(tǒng)有一個(gè)重要的部分,即虛擬機(jī)管理器層,因此虛擬化系統(tǒng)的故障模型和注入方法都有其特殊性[4]。例如在虛擬化系統(tǒng)中可以對(duì)虛擬機(jī)管理器層的頁(yè)表進(jìn)行修改從而實(shí)現(xiàn)虛擬機(jī)內(nèi)存故障的注入。顯然這是虛擬化系統(tǒng)特有的方法,物理機(jī)不能使用這種方法;與之相對(duì),很多物理機(jī)故障的注入方法也不適用于虛擬化系統(tǒng)。本文提出了一種面向虛擬化系統(tǒng)的故障注入工具架構(gòu),并在openstack云平臺(tái)上創(chuàng)建Xen虛擬機(jī)實(shí)現(xiàn)了原型系統(tǒng)工具。工具針對(duì)虛擬化系統(tǒng)的體系結(jié)構(gòu)特點(diǎn),實(shí)現(xiàn)向虛擬機(jī)管理器層的故障注入,完成對(duì)虛擬化系統(tǒng)的可靠性和容錯(cuò)性的分析。其總體架構(gòu)設(shè)計(jì)如圖1所示,它由以下幾部分組成:Xen虛擬機(jī)管理器,在虛擬化系統(tǒng)中,它負(fù)責(zé)所有虛擬化功能的實(shí)現(xiàn),可以直接干涉虛擬機(jī)節(jié)點(diǎn)(virtualmachine,VM)的CPU、內(nèi)存、硬盤等一切資源的使用。針對(duì)該層的特點(diǎn),本文設(shè)計(jì)特定的故障類型,實(shí)現(xiàn)對(duì)其相關(guān)管理機(jī)制的故障注入。Xen虛擬機(jī)節(jié)點(diǎn),當(dāng)虛擬器管理器被注入故障時(shí),由于其功能是對(duì)虛擬機(jī)節(jié)點(diǎn)進(jìn)行管理,所以故障反應(yīng)是通過(guò)其下的虛擬機(jī)節(jié)點(diǎn)表現(xiàn)出來(lái)的[5],如系統(tǒng)崩潰、遷移失效等。⑶前端,負(fù)責(zé)實(shí)現(xiàn)與測(cè)試者的交互,完成故障注入信息的傳入和故障注入結(jié)果收集。圖1故障注入工具總體架構(gòu)2.2故障建模方法進(jìn)行一次故障注入實(shí)驗(yàn)的過(guò)程如圖2所示,因此建立故障模型是故障注入實(shí)驗(yàn)的基礎(chǔ)。故障模型主要包括故障類型、發(fā)生位置和發(fā)生模型等信息。針對(duì)虛擬機(jī)體系結(jié)構(gòu)和虛擬化策略,結(jié)合物理計(jì)算機(jī)系統(tǒng)中的故障類型[6],本文將虛擬機(jī)管理層的故障劃分為內(nèi)存管理、硬件資源分配、狀態(tài)查詢、虛擬機(jī)遷移、訪問(wèn)控制、事件通道6類。圖2故障注入實(shí)驗(yàn)過(guò)程在實(shí)現(xiàn)虛擬化系統(tǒng)的故障注入時(shí),為使故障注入能夠更貼近實(shí)際使用中的故障情況,除要設(shè)計(jì)故障類型、位置等靜態(tài)特征外,還需考慮故障的動(dòng)態(tài)特征,即在虛擬化系統(tǒng)中各類型故障的發(fā)生次序及相互間的觸發(fā)關(guān)系等[7]。在實(shí)驗(yàn)過(guò)程中,為建立故障發(fā)生模型,可以依據(jù)故障發(fā)生記錄來(lái)獲取各類故障發(fā)生的特點(diǎn)并建立相應(yīng)的概率模型;另外,為降低建立模型的復(fù)雜度,縮短故障注入的周期,也可以基于人工經(jīng)驗(yàn)直接建立滿足測(cè)試要求的模型,例如各類故障可以是依某種分布概率分布的,也可以是隨機(jī)分布的。為實(shí)現(xiàn)對(duì)故障準(zhǔn)確而簡(jiǎn)明的描述,本文使用xml編寫測(cè)試腳本定義各類型故障及故障發(fā)生模型,建立起系統(tǒng)的故障注入模型,使得前端交互部分與注入工具得以解耦,并支持各類型故障的自動(dòng)化注入。圖3為一個(gè)xml測(cè)試腳本文件示例,其以<jobDescription>作為xml根標(biāo)簽,其子標(biāo)簽有<injectionDefinition>和<testDedinition>,分別定義故障模型和故障發(fā)生模型。故障模型下有故障類型、故障位置等標(biāo)簽;故障發(fā)生模型下有故障開始時(shí)間、停止時(shí)間等標(biāo)簽。圖3測(cè)試腳本文件2.3故障實(shí)現(xiàn)通過(guò)對(duì)Xen系列虛擬化系統(tǒng)的體系結(jié)構(gòu)和虛擬化策略的研究分析,可知Xen系列虛擬化管理功能,包括內(nèi)存管理、虛擬機(jī)遷移等,都需要通過(guò)其超級(jí)調(diào)用hypercall來(lái)進(jìn)行,因此可通過(guò)對(duì)各超級(jí)調(diào)用注入故障實(shí)現(xiàn)對(duì)對(duì)應(yīng)管理功能的故障注入。2.3.1Xen超級(jí)調(diào)用目前Xen系列虛擬化系統(tǒng)共有通用的超級(jí)調(diào)用37個(gè),還有一些為具體機(jī)器環(huán)境特有的。為了唯一標(biāo)識(shí)每個(gè)超級(jí)調(diào)用,Xen系統(tǒng)為每個(gè)超級(jí)調(diào)用定義了一個(gè)唯一的編號(hào),即為超級(jí)調(diào)用號(hào)[8],見表1;為記錄各個(gè)超級(jí)調(diào)用函數(shù)的入口地址,Xen系統(tǒng)定義超級(jí)調(diào)用表,可以通過(guò)超級(jí)調(diào)用號(hào)在其中定位到對(duì)應(yīng)函數(shù)的入口地址。表1Xen系統(tǒng)超級(jí)調(diào)用號(hào)超級(jí)調(diào)用名稱超級(jí)調(diào)用編號(hào)超級(jí)調(diào)用名稱超級(jí)調(diào)用編號(hào)set_trap_table0vcpu_op24mmu_update1set_segment_base25set_gdt2mmuext_op26stack_switch3xsm_op27set_callbacks4nmi_op28fpu_taskswitch5sched_op29表1(續(xù))超級(jí)調(diào)用名稱超級(jí)調(diào)用編號(hào)超級(jí)調(diào)用名稱超級(jí)調(diào)用編號(hào)sched_op_compat6callback_op30platform_op7Xenprof_op31set_debugreg8event_channel_op32get_debugreg9physdev_op33update_descriptor10hvm_op34memory_op12Sysctl35Multicall13Domctl36update_va_mapping14kexec_op37set_timer_op15arch_048event_channel_op_compat16arch_149Xen_version17arch_250console_io18arch_351physdev_op_compat19arch_452grant_table_op20arch_553vm_assist21arch_654update_va_mapping_otherdomin22arch_755Iret232.3.2故障類型與超級(jí)調(diào)用對(duì)應(yīng)關(guān)系本文要實(shí)現(xiàn)的6種類型的故障注入均可通過(guò)超級(jí)調(diào)用實(shí)現(xiàn),其與超級(jí)調(diào)用的對(duì)應(yīng)關(guān)系見表2,可根據(jù)其中的超級(jí)調(diào)用號(hào)在表1中查得對(duì)應(yīng)的超級(jí)調(diào)用名稱。實(shí)驗(yàn)過(guò)程中對(duì)各超級(jí)調(diào)用注入故障即可完成對(duì)應(yīng)類型的故障注入。表2故障類型與超級(jí)調(diào)用關(guān)系故障類型對(duì)應(yīng)超級(jí)調(diào)用號(hào)內(nèi)存管理1號(hào)、2號(hào)、26號(hào)硬件資源分配12號(hào)、24號(hào)狀態(tài)查詢17號(hào)虛擬機(jī)遷移20號(hào)訪問(wèn)控制27號(hào)事件通道16號(hào)、32號(hào)2.3.3故障注入原理在Xen系列虛擬化系統(tǒng)中,超級(jí)調(diào)用為一種類似系統(tǒng)調(diào)用的操作,其可以使處在1環(huán)的內(nèi)核能夠越權(quán)執(zhí)行一些在0環(huán)才能進(jìn)行的操作,其軟中斷號(hào)為0x82,處理程序?yàn)閔ypercall。其申請(qǐng)和執(zhí)行過(guò)程是通過(guò)系統(tǒng)調(diào)用ioctl進(jìn)行的,本文利用kprobe對(duì)其對(duì)用的內(nèi)核處理例程sys_ioctl進(jìn)行攔截并對(duì)其參數(shù)進(jìn)行修改,完成對(duì)超級(jí)調(diào)用的故障注入。在Xen系列虛擬化系統(tǒng)中,kprobe是linux內(nèi)核中的一個(gè)輕量級(jí)動(dòng)態(tài)內(nèi)核調(diào)試裝置,可以向正在運(yùn)行的內(nèi)核中插入斷點(diǎn)。其實(shí)現(xiàn)了Kprobes、jprobes和kretprobes這3種類型的探針,此3類探針各有優(yōu)缺點(diǎn)及適用的情況,對(duì)其具體分析請(qǐng)參見文獻(xiàn)[9]。依據(jù)文獻(xiàn)[9],由于jprobes可以獲取到內(nèi)核函數(shù)的參數(shù),本文使用jprobes進(jìn)行對(duì)sys_ioctl的攔截。另外,jprobes雖然可以獲得內(nèi)核函數(shù)的參數(shù),但不能修改。在jprobes對(duì)sys_ioctl成功攔截后,本文使用copy_to_user()和copy_from_user()這兩個(gè)函數(shù)對(duì)參數(shù)進(jìn)行修改,完成故障的注入。其基本流程如圖4所示,具體過(guò)程為:首先使用jprobes攔截ioctl,攔截完成后通過(guò)copy_from_user()將超級(jí)調(diào)用的參數(shù)M修改改為N,然后利用copy_to_user()將N寫到用戶空間中。當(dāng)執(zhí)行sys_ioctl()時(shí),函數(shù)通過(guò)copy_from_user()獲得超級(jí)調(diào)用參數(shù)值,而此時(shí)獲得的參數(shù)N已經(jīng)是修改后的錯(cuò)誤參數(shù)值,所以故障被成功注入。圖4故障注入原理另外,由于sys_ioctl[10]是linux的通用系統(tǒng)調(diào)用接口,除超級(jí)調(diào)用外,其它很多功能也會(huì)觸發(fā)其執(zhí)行。因此在注入過(guò)程中需要對(duì)其本次執(zhí)行是否由超級(jí)調(diào)用觸發(fā)進(jìn)行判定。sys_ioctl由3個(gè)參數(shù)組成:fd,IOCTL_PRIVCMD和&hcall,其分別為文件描述符、命令碼和指向系統(tǒng)調(diào)用參數(shù)的指針。sys_ioctl在其第二個(gè)參數(shù)中定義調(diào)用的觸發(fā)源,其格式定義如圖5所示,其共包含32位,前兩位是模式標(biāo)記位,接下來(lái)14位表示數(shù)據(jù)結(jié)構(gòu)位數(shù),然后8位是類型標(biāo)記位,最后8位標(biāo)記編號(hào)。圖5ioctl命令碼格式宏IOCTL_PRIVCMD_HYPERCALL表示超級(jí)調(diào)用的命令碼[11],由于不同環(huán)境下該值會(huì)發(fā)生變化,所以用X表示該值。在注入故障時(shí),對(duì)sys_ioctl()的參數(shù)cmd進(jìn)行判定,若其值為X,則進(jìn)行故障注入;若不是則不進(jìn)行故障注入。2.3.4故障注入過(guò)程以本文提出的架構(gòu)實(shí)現(xiàn)的故障注入工具可以進(jìn)行故障的自動(dòng)化注入,測(cè)試者只需編寫符合條件的xml測(cè)試腳本,即可完成故障注入,圖6所示即為一次故障注入的流程。其中向虛擬機(jī)管理器注入故障為本工具的核心部分,其實(shí)現(xiàn)過(guò)程如下:在內(nèi)核函數(shù)sys_ioctl處插入jprobes探針,sys_ioctl函數(shù)在內(nèi)核的入口地址由/proc/kallsyms查得;在故障函數(shù)內(nèi)部判斷cmd的值,若cmd值為X,則本次系統(tǒng)調(diào)用為超級(jí)調(diào)用申請(qǐng),程序繼續(xù)執(zhí)行;若不是,則不是超級(jí)調(diào)用申請(qǐng),程序退出。⑶經(jīng)判定為超級(jí)調(diào)用申請(qǐng),使用copy_from_user()從傳入的指針org處得到超級(jí)調(diào)用的參數(shù),然后將其存到hypercall中,變量類型為privcmd_hypercall,該變量數(shù)據(jù)結(jié)構(gòu)包含兩個(gè)成員:op定義hypercall號(hào),另一個(gè)為一元數(shù)組,定義hypercall的各參數(shù);取出超級(jí)調(diào)用號(hào)hypercall.op進(jìn)行判斷,如果故障注入信息中的故障位置相同,那么本次超級(jí)調(diào)用是故障注入的目標(biāo),程序繼續(xù)執(zhí)行;如果不一致,則程序退出;確定本次超級(jí)調(diào)用是故障注入目標(biāo)后,根據(jù)本次實(shí)驗(yàn)要注入的故障類型及故障模式將對(duì)應(yīng)超級(jí)調(diào)用值進(jìn)行修改,然后把修改后的值傳入用戶空間;讀取故障注入信息中的故障停止時(shí)間,如果已達(dá)到要求,則取消jprobes的注冊(cè)。進(jìn)行以上步驟后,保存在用戶空間的超級(jí)調(diào)用參數(shù)是故障函數(shù)更改之后的,所以故障被成功注入。圖6自動(dòng)化故障注入流程2.4前端部分在本文的提出的架構(gòu)中,前端部分負(fù)責(zé)提供圖形化交互接口,實(shí)現(xiàn)與測(cè)試人員的信息交互功能。其具體作用為:在故障注入開始時(shí),收到測(cè)試者編寫的測(cè)試腳本并對(duì)其進(jìn)行解析,然后將解析出的故障注入信息傳入虛擬機(jī)管理器;故障注入完成時(shí),收集故障虛擬機(jī)的日志信息并進(jìn)行記錄以反饋給測(cè)試者,從而測(cè)試者可以以日志信息中提供的實(shí)驗(yàn)環(huán)境、故障類型、系統(tǒng)各部分故障反應(yīng)等信息為依據(jù),對(duì)本次故障注入實(shí)驗(yàn)進(jìn)行結(jié)果分析。3實(shí)驗(yàn)結(jié)果分析為了驗(yàn)證本文設(shè)計(jì)工具的故障注入效果,本文基于openstack云平臺(tái)搭建Xen虛擬化系統(tǒng)進(jìn)行實(shí)驗(yàn)。依據(jù)所提出的故障模型,本文初步實(shí)現(xiàn)了虛擬機(jī)管理器層6類故障的注入。這些故障能夠在一定程度上反映Xen系統(tǒng)發(fā)生故障時(shí)的行為反應(yīng)。據(jù)實(shí)驗(yàn)結(jié)果,Xen虛擬化系統(tǒng)對(duì)各類型故障的反應(yīng)行為分別為:內(nèi)存管理故障,在該類型故障的實(shí)驗(yàn)中,需將其分為多種故障模式進(jìn)行,各種模式下的故障在實(shí)驗(yàn)中的注入次數(shù)及對(duì)系統(tǒng)和其它各節(jié)點(diǎn)的影響是不同的。其中,頁(yè)表掛載和卸載故障的后果最為嚴(yán)重,通常會(huì)導(dǎo)致系統(tǒng)的崩潰,不過(guò)其故障反應(yīng)不會(huì)由故障節(jié)點(diǎn)擴(kuò)展到其它節(jié)點(diǎn);頁(yè)表更新故障雖整體后果沒有上種類型嚴(yán)重,但其結(jié)果較為復(fù)雜,因?yàn)樵赬en系統(tǒng)包含有高級(jí)頁(yè)表和低級(jí)頁(yè)表,需分別對(duì)此兩類頁(yè)表進(jìn)行故障注入實(shí)驗(yàn),結(jié)果表明在注入次數(shù)較少的情況下(如每次實(shí)驗(yàn)注入次數(shù)小于10次),系統(tǒng)大概率可以對(duì)其容錯(cuò)而不會(huì)有異常反應(yīng),但是當(dāng)每次實(shí)驗(yàn)注入故障次數(shù)增多時(shí),系統(tǒng)無(wú)法繼續(xù)對(duì)該類故障保持容錯(cuò)性,出現(xiàn)系統(tǒng)崩潰現(xiàn)象,同時(shí)在對(duì)兩類頁(yè)表實(shí)驗(yàn)的對(duì)比中得出,系統(tǒng)對(duì)高級(jí)頁(yè)表的容錯(cuò)性更低,更容易導(dǎo)致系統(tǒng)的崩潰,且恢復(fù)難度更大。實(shí)驗(yàn)過(guò)程中,存在頁(yè)表掛載故障時(shí),有時(shí)會(huì)出現(xiàn)異常而有時(shí)則不會(huì),其結(jié)果是由特定因素決定的,若將操作碼置為一些特定值如1時(shí)就會(huì)發(fā)生異常,而其它情況則不會(huì);低級(jí)頁(yè)表的更新故障在大多數(shù)情況下不會(huì)使系統(tǒng)發(fā)生錯(cuò)誤,但實(shí)驗(yàn)中將低級(jí)頁(yè)表項(xiàng)的機(jī)器地址置為一些高級(jí)頁(yè)表項(xiàng)的值時(shí)就會(huì)引發(fā)系統(tǒng)錯(cuò)誤。硬件資源分配故障,其可分為Xen系統(tǒng)中各節(jié)點(diǎn)虛擬的CPU個(gè)數(shù)、內(nèi)存大小等故障模式,通過(guò)對(duì)其分別進(jìn)行實(shí)驗(yàn)發(fā)現(xiàn)各模式故障的后果一致性較強(qiáng)且系統(tǒng)對(duì)該類故障的容錯(cuò)性較高,只有在故障存在的情況下新建節(jié)點(diǎn)時(shí)會(huì)造成異常,且該異常不會(huì)使系統(tǒng)出現(xiàn)嚴(yán)重后果。狀態(tài)查詢故障,該類型故障比較簡(jiǎn)單,包括虛擬機(jī)管理器的版本信息及環(huán)境信息、等,對(duì)系統(tǒng)注入該類型故障時(shí)沒有出現(xiàn)運(yùn)行上的異常情況,只是在執(zhí)行狀態(tài)查詢時(shí)會(huì)出現(xiàn)結(jié)果的不符情況,并且實(shí)驗(yàn)中只需重新啟動(dòng)虛擬機(jī)管理器,該類故障就可完全修復(fù)。⑷虛擬機(jī)遷移的故障,此類故障包括對(duì)故障節(jié)點(diǎn)和非故障節(jié)點(diǎn)進(jìn)行遷移,如果只執(zhí)行非故障節(jié)點(diǎn)的遷移而不對(duì)故障節(jié)點(diǎn)執(zhí)行遷移,則系統(tǒng)無(wú)異常,即系統(tǒng)對(duì)該類型故障有較好隔離性,將其隔離在故障節(jié)點(diǎn)中而沒有使之?dāng)U散;但對(duì)故障節(jié)點(diǎn)執(zhí)行遷移操作時(shí),系統(tǒng)沒有體現(xiàn)出進(jìn)一步的容錯(cuò)能力和隔離性,故障發(fā)生了擴(kuò)散導(dǎo)致系統(tǒng)出現(xiàn)崩潰,即故障沒有被隔離。實(shí)驗(yàn)中將虛擬機(jī)遷移故障注入到目標(biāo)節(jié)點(diǎn)中,同時(shí)正常運(yùn)行同一虛擬機(jī)管理器下的另外兩個(gè)節(jié)點(diǎn)進(jìn)行對(duì)比,現(xiàn)象為故障節(jié)點(diǎn)開始時(shí)可以正常運(yùn)行,但進(jìn)行虛擬機(jī)的遷移時(shí)會(huì)發(fā)生異常,并導(dǎo)致虛擬化系統(tǒng)出現(xiàn)崩潰。訪問(wèn)控制故障,包括節(jié)點(diǎn)間訪問(wèn)權(quán)限和各節(jié)點(diǎn)對(duì)硬件資源訪問(wèn)權(quán)限等故障模式,實(shí)驗(yàn)中注入該類型故障時(shí)沒有導(dǎo)致系統(tǒng)運(yùn)行出現(xiàn)故障,只是會(huì)出現(xiàn)節(jié)點(diǎn)之間和各節(jié)點(diǎn)對(duì)資源訪問(wèn)的權(quán)限發(fā)生錯(cuò)誤的情況。所以該類型故障造成后果較為輕微且容易修復(fù),及系統(tǒng)對(duì)該類型故障有較好容錯(cuò)性。事件通道故障,注入該類型故障時(shí),系統(tǒng)運(yùn)行沒有出現(xiàn)異常,但如果在該故障存在時(shí)對(duì)節(jié)點(diǎn)進(jìn)行遷移操作,就會(huì)發(fā)現(xiàn)該操作會(huì)發(fā)生錯(cuò)誤不能正常進(jìn)行,不過(guò)此時(shí)發(fā)生的錯(cuò)誤不會(huì)造成更加嚴(yán)重的后果,且如果及時(shí)重啟虛擬機(jī)管理器可以修復(fù)這些錯(cuò)誤使功能正常執(zhí)行。例如實(shí)驗(yàn)中存在事件通道故障時(shí)進(jìn)行虛擬機(jī)遷移時(shí),由于do_evtch_op負(fù)責(zé)處理事件通道,系統(tǒng)會(huì)報(bào)錯(cuò)并提示該函數(shù)內(nèi)部發(fā)生了錯(cuò)誤,即導(dǎo)致虛擬機(jī)遷移發(fā)生了失敗。根據(jù)以上實(shí)驗(yàn)結(jié)果分析可得,Xen虛擬化系統(tǒng)可以對(duì)超級(jí)調(diào)用故障做出容錯(cuò)反應(yīng),但只限于故障次數(shù)較少的情況。總體而言后果較為嚴(yán)重,有很大幾率會(huì)導(dǎo)致虛擬化系統(tǒng)的管理功能故障,進(jìn)而造成系統(tǒng)的崩潰,所以Xen系統(tǒng)對(duì)于虛擬機(jī)管理層的故障容錯(cuò)能力較低。4結(jié)束語(yǔ)本文設(shè)計(jì)了一種面向虛擬化系統(tǒng)的故障注入工具架構(gòu),并依據(jù)該架構(gòu)以Xen虛擬化系統(tǒng)為基礎(chǔ)實(shí)現(xiàn)了原型系統(tǒng)工具,完成了對(duì)虛擬化管理層的自動(dòng)化故障注入實(shí)驗(yàn),對(duì)工具的有效性進(jìn)行了驗(yàn)證。通過(guò)本工具,測(cè)試者可以使用xml語(yǔ)言編寫故障注入腳本,實(shí)現(xiàn)測(cè)試環(huán)境的自動(dòng)化部署和各類故障的自動(dòng)化注入。實(shí)驗(yàn)結(jié)果表明,本工具可以有效實(shí)現(xiàn)虛擬化系統(tǒng)管理層各類故障的注入,并可以對(duì)故障結(jié)果進(jìn)行收集以支撐對(duì)系統(tǒng)的可靠性和容錯(cuò)性評(píng)測(cè)。參考文獻(xiàn):LIShulin,LUOLin,YANGYan.Researchoncloudcomputingandvirtualization[J].SoftwareGuide,2013,12(1):141-143(inChinese).[李樹林,羅林,楊艷.云計(jì)算與虛擬化技術(shù)研究[J].軟件導(dǎo)刊,2013,12(1):141-143.]LIYi,XUPing,WANHan.ResearchonaQEMU-basedprocessorfaultsimulationandinjectionmethod[J].ComputerEngineeringandScience,2014,36(1):19-27(inChinese).[李毅,徐萍,萬(wàn)寒.基于QEMU實(shí)現(xiàn)的處理器類故障模擬與注入方法研究[J].計(jì)算機(jī)工程與科學(xué),2014,36(1):19-27.]LEIWei,OUYuyi.Summaryofsecuritytestmethodsbasedonfaultinjection[J].ModernComputer,2012,4(1):20-23(inChinese).[雷煒,歐毓毅.基于故障注入的安全測(cè)試方法綜述[J].現(xiàn)代計(jì)算機(jī),2012,4(1):20-23.]FENGGang.Researchanddesignoffaultinjectorsforvirtualmachineincloudcomputing[D].Harbin:HarbinInstituteofTechnology,2013(inChinese).[馮剛.面向云計(jì)算平臺(tái)的虛擬機(jī)故障注入工具研究與設(shè)計(jì)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2013.]HUYao,XIAORuliang,JIANGJun,etal.Virtualmachinememoryofrealtimemonitoringandadjustingon-demandbasedonXenvirtualmachine[J].JournalofComputerApplications,2013,33(1):254-257(inChinese).[胡耀潸如良,姜軍,等.基于Xen虛擬機(jī)的內(nèi)存資源實(shí)施監(jiān)控與按需調(diào)整[J].計(jì)算機(jī)應(yīng)用,2013,33(1):254-257.]GuanQ,DebardelebenN,BlanchardS,etal.F-SEFI:Afine-gr
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZSA 231-2024 氧化鎵單晶片X 射線雙晶搖擺曲線半高寬測(cè)試方法
- T-ZMDS 10022-2024 光學(xué)脊柱測(cè)量及姿態(tài)評(píng)估設(shè)備
- 二零二五年度名義購(gòu)房代持合同中的房產(chǎn)繼承與轉(zhuǎn)讓安排
- 2025年度高品質(zhì)車位租賃與社區(qū)設(shè)施管理合同
- 二零二五年度安全生產(chǎn)評(píng)價(jià)資質(zhì)借用服務(wù)合同
- 2025年度高速公路監(jiān)控系統(tǒng)維保服務(wù)協(xié)議雙聯(lián)
- 二零二五年度解除勞動(dòng)合同通知書及員工離職后商業(yè)保險(xiǎn)權(quán)益處理及終止協(xié)議
- 2025年度電力系統(tǒng)設(shè)備租賃合同模板
- 2025年美業(yè)美容儀器銷售代表入職合同
- 二零二五年度淘寶平臺(tái)商家入駐信息保密協(xié)議
- GB/T 24498-2025建筑門窗、幕墻用密封膠條
- 悟哪吒精神做英雄少年開學(xué)第一課主題班會(huì)課件-
- 清華大學(xué)第二彈:DeepSeek賦能職場(chǎng)-從提示語(yǔ)技巧到多場(chǎng)景應(yīng)用
- 2025年P(guān)EP人教版小學(xué)三年級(jí)英語(yǔ)下冊(cè)全冊(cè)教案
- 2025年春季學(xué)期教導(dǎo)處工作計(jì)劃及安排表
- 2024年江蘇省中小學(xué)生金鑰匙科技競(jìng)賽(高中組)考試題庫(kù)(含答案)
- 新質(zhì)生產(chǎn)力的綠色意蘊(yùn)
- DL-T5002-2021地區(qū)電網(wǎng)調(diào)度自動(dòng)化設(shè)計(jì)規(guī)程
- 2024年個(gè)人信用報(bào)告(個(gè)人簡(jiǎn)版)樣本(帶水印-可編輯)
- 16J914-1 公用建筑衛(wèi)生間
- 2024年長(zhǎng)沙幼兒師范高等專科學(xué)校高職單招(英語(yǔ)/數(shù)學(xué)/語(yǔ)文)筆試歷年參考題庫(kù)含答案解析
評(píng)論
0/150
提交評(píng)論