[發(fā)明專利]面向云平臺(tái)的軟件故障容忍方法有效
| 申請(qǐng)?zhí)枺?/td> | 201110405522.6 | 申請(qǐng)日: | 2011-12-08 |
| 公開(公告)號(hào): | CN102521128A | 公開(公告)日: | 2012-06-27 |
| 發(fā)明(設(shè)計(jì))人: | 金海;鄒德清;陳剛;羌衛(wèi)中;胡剛;代煒琦 | 申請(qǐng)(專利權(quán))人: | 華中科技大學(xué) |
| 主分類號(hào): | G06F11/36 | 分類號(hào): | G06F11/36 |
| 代理公司: | 華中科技大學(xué)專利中心 42201 | 代理人: | 朱仁玲 |
| 地址: | 430074 湖北*** | 國(guó)省代碼: | 湖北;42 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 面向 平臺(tái) 軟件 故障 容忍 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明屬于軟件可靠性技術(shù)領(lǐng)域,具體地說(shuō),本發(fā)明涉及一種面向云平臺(tái)的軟件故障容忍方法。
背景技術(shù)
云計(jì)算作為一種新興的IT基礎(chǔ)架構(gòu),它為互聯(lián)網(wǎng)用戶或者企業(yè)內(nèi)部用戶提供方便靈活、按需配置、成本低廉的包含計(jì)算、存儲(chǔ)、應(yīng)用等在內(nèi)的多種類型網(wǎng)絡(luò)服務(wù)。云平臺(tái)在提供用戶多樣化的服務(wù)時(shí),也面臨了保障服務(wù)軟件的高可用性的挑戰(zhàn)。一旦云服務(wù)出現(xiàn)故障,若不采取相應(yīng)的保護(hù)措施,則其產(chǎn)生的后果及造成的經(jīng)濟(jì)損失是無(wú)法估量的。
雖然軟件開發(fā)過(guò)程和方法已經(jīng)研究了數(shù)十年,但是迄今為止,仍然沒(méi)有一種可靠的方法來(lái)保證復(fù)雜的軟件系統(tǒng)免出故障。實(shí)際上,保證軟件無(wú)故障的方法是不可能得到的,只有通過(guò)容錯(cuò)技術(shù)來(lái)處理不可預(yù)知的軟硬件故障,其中以微重啟技術(shù),錯(cuò)誤忽視技術(shù)和基于檢查點(diǎn)的回滾機(jī)制為代表:
1)微重啟技術(shù)是針對(duì)大型分布式應(yīng)用軟件系統(tǒng)發(fā)生故障時(shí)恢復(fù)時(shí)間過(guò)長(zhǎng)問(wèn)題,通過(guò)快速地重啟局部來(lái)解決局部故障以避免整體宕機(jī),從而提高了應(yīng)用系統(tǒng)的可用性。
2)錯(cuò)誤忽視技術(shù)是對(duì)內(nèi)存訪問(wèn)的錯(cuò)誤操作提出了方案,插入了內(nèi)存訪問(wèn)的檢查指令,如果不合法,則返回一個(gè)杜撰值。而且返回的值會(huì)被邏輯檢查,從而能將預(yù)料外的非法變成預(yù)料中的非法。
3)基于檢查點(diǎn)的回滾機(jī)制是使用檢查點(diǎn)來(lái)提供錯(cuò)誤容忍,目前基于檢查點(diǎn)的回滾機(jī)制在軟件錯(cuò)誤容忍技術(shù)中應(yīng)用普遍。當(dāng)軟件出現(xiàn)錯(cuò)誤時(shí),可以根據(jù)檢查點(diǎn)或者日志回滾到一個(gè)檢查點(diǎn)并對(duì)先前出現(xiàn)的錯(cuò)誤進(jìn)行相應(yīng)處理而不造成軟件再次出錯(cuò)。
然而,在復(fù)雜的云計(jì)算環(huán)境下,現(xiàn)有的軟件容錯(cuò)技術(shù)主要存在以下問(wèn)題:
1)傳統(tǒng)架構(gòu)下的軟件容錯(cuò)技術(shù)依然存在諸多不足,或只針對(duì)非確定性的錯(cuò)誤,或只適用于特定的軟件,或只針對(duì)內(nèi)存相關(guān)錯(cuò)誤,或容錯(cuò)機(jī)制開銷較大,或需要重新設(shè)計(jì)軟件等。在諸多系統(tǒng)中,基于檢查點(diǎn)/回滾機(jī)制的ASSURE系統(tǒng)提出了一種實(shí)用性的解決方案,提出營(yíng)救點(diǎn)(Rescue?Point)和錯(cuò)誤虛擬化(Error?Virtualization)概念,以函數(shù)為粒度,對(duì)可能引發(fā)故障的函數(shù)實(shí)施強(qiáng)制返回(這里的函數(shù)點(diǎn)稱為營(yíng)救點(diǎn)),即調(diào)用該函數(shù)時(shí)直接返回該函數(shù)處理出錯(cuò)時(shí)的返回值,從而繞過(guò)會(huì)引發(fā)故障的代碼區(qū)域,保障了軟件的繼續(xù)運(yùn)行。同時(shí)在該函數(shù)被調(diào)用時(shí)對(duì)軟件做一次檢查點(diǎn)以實(shí)現(xiàn)相同故障發(fā)生時(shí)的快速恢復(fù)。但是若該函數(shù)是軟件調(diào)用較為頻繁的函數(shù),這種方式就會(huì)因過(guò)度對(duì)軟件本身做檢查點(diǎn)導(dǎo)致負(fù)載過(guò)高,迫使軟件無(wú)法正常運(yùn)行。因此,目前針對(duì)云平臺(tái)中部署的多樣化軟件,依然缺乏一種高效的實(shí)用保護(hù)機(jī)制來(lái)保障軟件的高可用性;
2)在云計(jì)算環(huán)境中,許多相同的軟件實(shí)例可能運(yùn)行在不同的虛擬機(jī)中。例如,公司A部署了Apache?HTTPd軟件實(shí)例和MySQL軟件實(shí)例,而公司B部署了Apache?HTTPd軟件實(shí)例和Oracle軟件實(shí)例。針對(duì)云平臺(tái)中可能存在的相同的軟件實(shí)例,如部署了兩個(gè)Apache?HTTPd軟件實(shí)例,缺乏一種容錯(cuò)共享機(jī)制來(lái)實(shí)現(xiàn)軟件故障的快速修復(fù),從而達(dá)到共同防御的目標(biāo)。
發(fā)明內(nèi)容
本發(fā)明的目的在于提出一種面向云平臺(tái)的軟件故障容忍方法,其將加權(quán)的思想和動(dòng)態(tài)改變軟件執(zhí)行流程的思想相結(jié)合的方式平衡了故障容忍機(jī)制的通用性和開銷,解決了故障容忍機(jī)制的高開銷的問(wèn)題,并針對(duì)云計(jì)算的特點(diǎn),采用三級(jí)容錯(cuò)共享數(shù)據(jù)庫(kù)的方式來(lái)實(shí)現(xiàn)相同的軟件實(shí)例之間的故障信息共享,有效地提高軟件容錯(cuò)能力,同時(shí)降低了容錯(cuò)機(jī)制所帶來(lái)的數(shù)據(jù)冗余度,同時(shí)故障修復(fù)日志也方便程序員進(jìn)行漏洞修復(fù)。
本發(fā)明是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的:
一種面向云平臺(tái)的軟件故障容忍方法,包括以下步驟:對(duì)需要保護(hù)的軟件進(jìn)行壓力測(cè)試,以獲取軟件的營(yíng)救點(diǎn),并根據(jù)營(yíng)救點(diǎn)構(gòu)建漏洞營(yíng)救表、營(yíng)救點(diǎn)數(shù)據(jù)庫(kù)、營(yíng)救點(diǎn)節(jié)點(diǎn)級(jí)緩存和營(yíng)救點(diǎn)虛擬機(jī)級(jí)緩存,周期性地在虛擬機(jī)中對(duì)軟件構(gòu)建檢查點(diǎn),檢測(cè)軟件是否出現(xiàn)故障,若軟件出現(xiàn)故障,則獲取軟件故障相關(guān)信息,根據(jù)軟件故障相關(guān)信息判斷故障是否是棧溢出故障,若故障是棧溢出故障,則判斷漏洞營(yíng)救表中是否存在與故障匹配的函數(shù)調(diào)用棧信息,若漏洞營(yíng)救表中存在與故障匹配的函數(shù)調(diào)用棧信息,則提取函數(shù)調(diào)用棧信息,將軟件回滾到距離故障最近的檢查點(diǎn),根據(jù)函數(shù)調(diào)用棧信息獲取候選營(yíng)救點(diǎn),并按候選營(yíng)救點(diǎn)的權(quán)值大小對(duì)候選營(yíng)救點(diǎn)進(jìn)行測(cè)試,以得到能夠容忍故障的最佳營(yíng)救點(diǎn),增加最佳營(yíng)救點(diǎn)的權(quán)值,更新最佳營(yíng)救點(diǎn)在營(yíng)救點(diǎn)虛擬機(jī)級(jí)緩存、營(yíng)救點(diǎn)節(jié)點(diǎn)級(jí)緩存和營(yíng)救點(diǎn)數(shù)據(jù)庫(kù)中的權(quán)值信息,虛擬機(jī)將更新后的最佳營(yíng)救點(diǎn)和軟件故障相關(guān)信息發(fā)送給虛擬機(jī)所在節(jié)點(diǎn)的管理域,節(jié)點(diǎn)的管理域?qū)⒏潞蟮淖罴褷I(yíng)救點(diǎn)和軟件故障相關(guān)信息發(fā)送給云平臺(tái)的管理節(jié)點(diǎn)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于華中科技大學(xué),未經(jīng)華中科技大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110405522.6/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測(cè);錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過(guò)測(cè)試作故障硬件的檢測(cè)或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過(guò)處理作錯(cuò)誤檢測(cè)、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過(guò)軟件的測(cè)試或調(diào)試防止錯(cuò)誤
- 一種基于應(yīng)用軟件散布的軟件授權(quán)與保護(hù)方法及系統(tǒng)
- 一種用于航空機(jī)載設(shè)備的軟件在線加載系統(tǒng)及方法
- 軟件構(gòu)建方法、軟件構(gòu)建裝置和軟件構(gòu)建系統(tǒng)
- 惡意軟件檢測(cè)方法及裝置
- 一種基于軟件基因的軟件同源性分析方法和裝置
- 軟件引入系統(tǒng)、軟件引入方法及存儲(chǔ)介質(zhì)
- 軟件驗(yàn)證裝置、軟件驗(yàn)證方法以及軟件驗(yàn)證程序
- 使用靜態(tài)和動(dòng)態(tài)惡意軟件分析來(lái)擴(kuò)展惡意軟件的動(dòng)態(tài)檢測(cè)
- 一種工業(yè)控制軟件構(gòu)建方法和軟件構(gòu)建系統(tǒng)
- 可替換游戲軟件與測(cè)驗(yàn)軟件的裝置與方法
- 故障檢測(cè)裝置、故障檢測(cè)方法以及故障檢測(cè)程序
- 故障預(yù)測(cè)裝置、故障預(yù)測(cè)方法及故障預(yù)測(cè)程序
- 故障分析裝置、故障分析系統(tǒng)及故障分析方法
- 故障檢測(cè)方法、故障檢測(cè)裝置和故障檢測(cè)系統(tǒng)
- 故障檢測(cè)裝置、故障檢測(cè)方法及計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)
- 故障檢測(cè)裝置、故障檢測(cè)方法和計(jì)算機(jī)能讀取的存儲(chǔ)介質(zhì)
- 故障檢測(cè)裝置、故障檢測(cè)系統(tǒng)、故障檢測(cè)方法
- 故障處理方法、裝置、電子設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 故障排除方法、故障排除裝置及故障排除系統(tǒng)
- 故障檢測(cè)電路、故障檢測(cè)系統(tǒng)及故障檢測(cè)方法





