專利名稱:一種基于云計(jì)算的虛擬化容忍入侵的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)信息安全和虛擬化云計(jì)算領(lǐng)域,尤其涉及ー種基于云計(jì)算的虛擬化容忍入侵的方法及裝置。
背景技術(shù):
云計(jì)算將計(jì)算任務(wù)分布在大量計(jì)算機(jī)構(gòu)成的虛擬資源池上,使各種應(yīng)用系統(tǒng)能夠根據(jù)需要獲取計(jì)算能力、存儲(chǔ)空間和各種軟件服務(wù)。云計(jì)算帶來(lái)的服務(wù)整合與按需供給能夠顯著提高計(jì)算資源的利用率,降低每服務(wù)的能耗量,并且有效屏蔽計(jì)算資源的出錯(cuò)問(wèn)題。云計(jì)算具有超大規(guī)模、虛擬化、高可靠性、通用性、高可擴(kuò)展性、按需服務(wù)、極其廉價(jià)等優(yōu)點(diǎn)。但云計(jì)算依然面臨著以下問(wèn)題(I)數(shù)據(jù)的容忍入侵性云計(jì)算最重要的兩個(gè)問(wèn)題是保密性和安全性。企業(yè)把企業(yè)信息、客戶信息等敏感的商業(yè)數(shù)據(jù)存放到云計(jì)算服務(wù)提供商的手中,通過(guò)減少對(duì)某些數(shù)據(jù)的控制來(lái)節(jié)約經(jīng)濟(jì)成本,因此企業(yè)必然會(huì)擔(dān)心數(shù)據(jù)放在云端是否安全以及是否會(huì)被泄密和竊取。(2)云計(jì)算平臺(tái)的容忍入侵性云計(jì)算模式下,所有的業(yè)務(wù)處理都將在服務(wù)器端完成,因此云計(jì)算平臺(tái)就成為入侵者攻擊的核心;另外云計(jì)算平臺(tái)自身也面臨著各式各樣無(wú)法預(yù)料的錯(cuò)誤,比如2010年上半年,Amazon云計(jì)算服務(wù)就因?yàn)槿藶槭д`和意外停電事故出現(xiàn)故障,致使美國(guó)東部的少量用戶失去服務(wù)并導(dǎo)致極少數(shù)數(shù)據(jù)丟失。因此如果服務(wù)器一旦出現(xiàn)問(wèn)題,就將導(dǎo)致所有的服務(wù)無(wú)法正常運(yùn)行,數(shù)據(jù)無(wú)法訪問(wèn)。對(duì)于云計(jì)算面臨的保密性、完整性、可用性和可靠性等問(wèn)題,傳統(tǒng)的安全技術(shù)如入侵檢測(cè)、防火墻、加解密等都無(wú)法完全保證,但是ー種可生存技術(shù)即容忍入侵技術(shù)可以很好的彌補(bǔ)。容忍入侵主要思想就是利用分布式系統(tǒng)中的硬件或者軟件容錯(cuò)技術(shù)屏蔽任何入侵或者攻擊對(duì)系統(tǒng)功能的影響,保證系統(tǒng)關(guān)鍵功能的安全性和連續(xù)性。國(guó)內(nèi)外許多研究機(jī)構(gòu)和組織對(duì)容忍入侵的研究大多是在真實(shí)硬件平臺(tái)上采用門限密碼學(xué)、秘密共享以及分布式冗余復(fù)制等技木;都要求系統(tǒng)具有高計(jì)算能力和高存儲(chǔ)能力,并且這些資源一般不能分割,是針對(duì)特定應(yīng)用而設(shè)計(jì),因此資源利用率低,難以管理,通用性差;另外系統(tǒng)對(duì)冗余組件的數(shù)目與質(zhì)量也有較高要求,并且冗余組件恢復(fù)時(shí)嚴(yán)重影響服務(wù)的可用性。因此這樣高昂代價(jià)的容忍入侵對(duì)于云計(jì)算服務(wù)提供商和用戶來(lái)說(shuō)是很難接受的,并且不適用于云計(jì)算的虛擬化。虛擬化技術(shù)自1960年誕生以來(lái)發(fā)展已經(jīng)相當(dāng)成熟了,但其應(yīng)用大多仍是關(guān)于資源的高效管理,實(shí)際上虛擬化技術(shù)也可以用來(lái)構(gòu)建安全系統(tǒng)。隨著云計(jì)算的提出,研究虛擬化技術(shù)上云計(jì)算的安全性變得至關(guān)重要。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題是提供一種基于云計(jì)算的虛擬化容忍入侵的方法及裝置,為提高云計(jì)算的可用性、安全性提供解決方案。為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種基于云計(jì)算的虛擬化容忍入侵的方法,包括物理節(jié)點(diǎn)中的副本管理器在系統(tǒng)錯(cuò)誤容忍副本能力為F個(gè)時(shí),創(chuàng)建2F+1個(gè)副本,設(shè)置其中F+1個(gè)副本為活動(dòng)狀態(tài),其余F個(gè)副本為掛起狀態(tài),活動(dòng)狀態(tài)的副本稱為活動(dòng)副 本,掛起狀態(tài)的副本稱為被動(dòng)副本,所述副本管理器收到服務(wù)請(qǐng)求,由所述F+1個(gè)活動(dòng)副本執(zhí)行所述服務(wù)請(qǐng)求,所述副本管理器執(zhí)行多數(shù)表決算法在F+1個(gè)執(zhí)行結(jié)果中確定一正確結(jié)果O進(jìn)ー步地,上述方法還可以具有以下特點(diǎn)所述副本管理器定期更新被動(dòng)副本的執(zhí)行進(jìn)程狀態(tài),一活動(dòng)副本發(fā)生錯(cuò)誤或返回執(zhí)行結(jié)果超時(shí)后,激活ー被動(dòng)副本并以此被動(dòng)副本的最新執(zhí)行進(jìn)程狀態(tài)為起點(diǎn)更新執(zhí)行進(jìn)程狀態(tài)。進(jìn)ー步地,上述方法還可以具有以下特點(diǎn)所述副本管理器監(jiān)測(cè)到F+1個(gè)活動(dòng)副本中錯(cuò)誤副本的個(gè)數(shù)與F的差距小于預(yù)設(shè)值時(shí),從標(biāo)準(zhǔn)副本復(fù)制ー影子副本,將活動(dòng)副本中正確副本的執(zhí)行進(jìn)程狀態(tài)同步到所述影子副本,激活此影子副本作為新的活動(dòng)副本,并關(guān)閉ー錯(cuò)誤副本。進(jìn)ー步地,上述方法還可以具有以下特點(diǎn)將正確副本的執(zhí)行進(jìn)程狀態(tài)同步到所述影子副本的方法包括所述副本管理器控制活動(dòng)副本即高級(jí)副本捕獲其執(zhí)行進(jìn)程狀態(tài)并轉(zhuǎn)換為抽象狀態(tài)發(fā)送到所述影子副本,接收所述影子副本返回的所述抽象狀態(tài)的校驗(yàn)和并發(fā)送給其它副本管理器,判斷收到F+1個(gè)校驗(yàn)和生成的校驗(yàn)和相等時(shí),判斷此活動(dòng)副本的執(zhí)行進(jìn)程狀態(tài)正確,將此活動(dòng)副本的執(zhí)行進(jìn)程狀態(tài)同步到所述影子副本。進(jìn)ー步地,上述方法還可以具有以下特點(diǎn)所述副本管理器監(jiān)測(cè)到活動(dòng)副本個(gè)數(shù)小于F+1吋,將ー個(gè)或多個(gè)被動(dòng)副本轉(zhuǎn)換為活動(dòng)副本,不存在被動(dòng)副本時(shí)新創(chuàng)建ー個(gè)或多個(gè)副本并設(shè)置為活動(dòng)狀態(tài);所述副本管理器監(jiān)測(cè)到活動(dòng)狀態(tài)的副本個(gè)數(shù)大于F+1并且小于2F+1時(shí),將多余的活動(dòng)副本設(shè)置為掛起狀態(tài)。進(jìn)ー步地,上述方法還可以具有以下特點(diǎn)所述副本管理器在単一物理節(jié)點(diǎn)中維護(hù)所述2F+1個(gè)副本,或者多個(gè)物理節(jié)點(diǎn)上維護(hù)所述2F+1個(gè)副本,不同物理節(jié)點(diǎn)中的副本管理器通過(guò)組通信裝置進(jìn)行信息交互。為了解決上述技術(shù)問(wèn)題,本發(fā)明還提供了一種基于云計(jì)算的虛擬化容忍入侵的裝置,所述裝置包括副本管理器,所述副本管理器包括副本維護(hù)模塊和執(zhí)行控制模塊;所述副本維護(hù)模塊,用于在系統(tǒng)錯(cuò)誤容忍副本能力為F個(gè)時(shí),創(chuàng)建2F+1個(gè)副本,設(shè)置其中F+1個(gè)副本為活動(dòng)狀態(tài),其余F個(gè)副本為掛起狀態(tài),活動(dòng)狀態(tài)的副本稱為活動(dòng)副本,掛起狀態(tài)的副本稱為被動(dòng)副本;所述執(zhí)行控制模塊,用于收到服務(wù)請(qǐng)求后,由所述F+1個(gè)活動(dòng)副本執(zhí)行所述服務(wù)請(qǐng)求,執(zhí)行多數(shù)表決算法在F+1個(gè)執(zhí)行結(jié)果中確定一正確結(jié)果。進(jìn)ー步地,上述裝置還可以具有以下特點(diǎn)所述副本維護(hù)模塊,還用于定期更新被動(dòng)副本的執(zhí)行進(jìn)程狀態(tài),ー活動(dòng)副本發(fā)生錯(cuò)誤或返回執(zhí)行結(jié)果超時(shí)后,激活ー被動(dòng)副本并以此被動(dòng)副本的最新執(zhí)行進(jìn)程狀態(tài)為起點(diǎn)更新執(zhí)行進(jìn)程狀態(tài)。進(jìn)ー步地,上述裝置還可以具有以下特點(diǎn)所述副本維護(hù)模塊,還用于監(jiān)測(cè)到F+1個(gè)活動(dòng)副本中錯(cuò)誤副本的個(gè)數(shù)與F的差距小于預(yù)設(shè)值時(shí),從標(biāo)準(zhǔn)副本復(fù)制ー影子副本,將活動(dòng)副本中正確副本的執(zhí)行進(jìn)程狀態(tài)同步到所述影子副本,激活此影子副本作為新的活動(dòng)副本,并關(guān)閉ー錯(cuò)誤副本。進(jìn)ー步地,上述裝置還可以具有以下特點(diǎn)所述副本維護(hù)模塊,還用于控制活動(dòng)副本即高級(jí)副本捕獲其執(zhí)行進(jìn)程狀態(tài)并轉(zhuǎn)換為抽象狀態(tài)發(fā)送到所述影子副本,接收所述影子副本返回的所述抽象狀態(tài)的校驗(yàn)和并發(fā)送給其它副本管理器,判斷收到F+1個(gè)校驗(yàn)和生成的校驗(yàn)和相等時(shí),判斷此活動(dòng)副本的執(zhí)行進(jìn)程狀態(tài)正確,將此活動(dòng)副本的執(zhí)行進(jìn)程狀態(tài)同步到所述影子副本。本發(fā)明可以在N=2F+1個(gè)副本中容忍F個(gè)副本的錯(cuò)誤,相比于傳統(tǒng)的Byzantine容錯(cuò)算法容忍F個(gè)錯(cuò)誤副本則需要N=3F+1個(gè)副本。本發(fā)明在無(wú)入侵時(shí)只有F+1個(gè)活動(dòng)副本在執(zhí)行,其余副本置于被動(dòng)模式,這樣大量減少了云平臺(tái)資源的消耗。本發(fā)明提高云計(jì)算平臺(tái)安全性、可靠性和可用性。
圖I是基于云計(jì)算的虛擬化容忍入侵的方法流程圖;圖2是基于云計(jì)算的虛擬化容忍入侵的系統(tǒng)框架示意圖;圖3是基于云計(jì)算的虛擬化容忍入侵的裝置結(jié)構(gòu)圖。
具體實(shí)施例方式如圖I所示,基于云計(jì)算的虛擬化容忍入侵的方法包括物理節(jié)點(diǎn)中的副本管理器在系統(tǒng)錯(cuò)誤容忍副本能力為F個(gè)時(shí),創(chuàng)建2F+1個(gè)副本,設(shè)置其中F+1個(gè)副本為活動(dòng)狀態(tài),其余F個(gè)副本為掛起狀態(tài),活動(dòng)狀態(tài)的副本稱為活動(dòng)副本,掛起狀態(tài)的副本稱為被動(dòng)副本,所述副本管理器收到服務(wù)請(qǐng)求,由所述F+1個(gè)活動(dòng)副本執(zhí)行所述服務(wù)請(qǐng)求,所述副本管理器執(zhí)行多數(shù)表決算法在F+1個(gè)執(zhí)行結(jié)果中確定一正確結(jié)果。副本管理器確定的正確結(jié)果返回給用戶,整個(gè)過(guò)程的實(shí)現(xiàn)對(duì)于用戶來(lái)說(shuō)是透明的。Hypervisor是運(yùn)行于硬件之上的ー個(gè)極小軟件層,也就是虛擬機(jī)監(jiān)控器;在Hypervisor之上劃分出不同域,其中服務(wù)實(shí)例在客戶域(Guest Domains) DomU中運(yùn)行,客戶域包括被動(dòng)模式和活動(dòng)模式;特權(quán)域DomO控制著客戶域的創(chuàng)建、執(zhí)行與銷毀。副本管理器包括以下部分(I)接受客戶請(qǐng)求的基礎(chǔ)組件;(2)為所有副本連續(xù)轉(zhuǎn)發(fā)請(qǐng)求的組通信(Group Communication)組件;(3)實(shí)現(xiàn)積極恢復(fù)功能的復(fù)制邏輯(Replication Logic);(4)實(shí)現(xiàn)按需激活被動(dòng)副本的表決(Voter)組件;(5)實(shí)現(xiàn)狀態(tài)更新的相關(guān)機(jī)制;(6)實(shí)現(xiàn)副本域克隆(Clone)的組件。本發(fā)明系統(tǒng)通過(guò)Hypervisor來(lái)提供通信,復(fù)制邏輯運(yùn)行于特權(quán)域DomO中,負(fù)責(zé)服
6務(wù)實(shí)例的具體工作;而具體的服務(wù)副本則運(yùn)行于隔離的客戶域中。客戶和服務(wù)的交互是通過(guò)運(yùn)行于系統(tǒng)域DomO中的副本管理器來(lái)實(shí)現(xiàn)。本發(fā)明系統(tǒng)的合理性設(shè)計(jì)基于以下假設(shè)(I)客戶與遠(yuǎn)程服務(wù)的交互是基于Request/R印Iy網(wǎng)絡(luò)層消息,并在網(wǎng)絡(luò)層被截取。(2)遠(yuǎn)程的服務(wù)實(shí)例能被模擬為確定狀態(tài)機(jī)。(3)服務(wù)副本包括操作系統(tǒng)和執(zhí)行環(huán)境,可能會(huì)因?yàn)锽yzantine錯(cuò)誤而失??;在單個(gè)恢復(fù)周期內(nèi)允許ブベ¥個(gè)副本失敗。(4)系統(tǒng)的其他部分,包括Hypervisor和信任的系統(tǒng)域僅僅因?yàn)橹鳈C(jī)的突然宕機(jī)而失敗。本方案支持異構(gòu)混合容錯(cuò)模型相互隔離的執(zhí)行環(huán)境允許實(shí)施異構(gòu)的容錯(cuò)容侵模型,也就是說(shuō)可以在應(yīng)用域中容忍對(duì)應(yīng)用實(shí)例的惡意攻擊,如Byzantine錯(cuò)誤;在系統(tǒng)域和Hypervisor中可以容忍物理節(jié)點(diǎn)本身的突然宕機(jī)。在這個(gè)異構(gòu)模型中,運(yùn)行于隔離的應(yīng)用域中的服務(wù)副本,包括操作系統(tǒng)、中間件結(jié)構(gòu)以及服務(wù)的實(shí)施可以完全的異構(gòu)。單一主機(jī)冗余執(zhí)行RESH (Redundant Execution on a Single Host)是 CC-VIT模型的ー種應(yīng)用,它允許在単一物理機(jī)上冗余執(zhí)行服務(wù)的多個(gè)副本,這種冗余執(zhí)行需要虛擬機(jī)監(jiān)控器創(chuàng)建多應(yīng)用域來(lái)實(shí)現(xiàn)隔離運(yùn)行副本實(shí)例。RESH能夠容忍副本中非良性的隨機(jī)錯(cuò)誤,比如無(wú)法檢測(cè)的內(nèi)存位錯(cuò)誤;以及能夠容忍N(yùn)版本編程所產(chǎn)生的軟件錯(cuò)誤。多主機(jī)冗余執(zhí)行REMH (Redundant Execution on Multiple Hosts)是 CC-VIT 模型的另ー種應(yīng)用,它允許相同核心架構(gòu)的副本可以在多個(gè)物理機(jī)上冗余執(zhí)行。與RESH不同的是,在REMH系統(tǒng)域的復(fù)制邏輯中集成了ー個(gè)組通信模塊,組通信模塊負(fù)責(zé)ー組物理機(jī)上副本之間的通信與協(xié)調(diào)。REMH能夠容忍部分運(yùn)行副本的物理主機(jī)突然的宕機(jī)。所以,本方案中副本管理器可以在單一物理節(jié)點(diǎn)中維護(hù)所述2F+1個(gè)副本。副本管理器還可以在多個(gè)物理節(jié)點(diǎn)上維護(hù)所述2F+1個(gè)副本,不同物理節(jié)點(diǎn)中的副本管理器通過(guò)組通信裝置進(jìn)行信息交互。如圖2所示,2F+1個(gè)副本可以分布在不同的物理節(jié)點(diǎn)上。系統(tǒng)通過(guò)組播可以發(fā)現(xiàn)局域網(wǎng)中運(yùn)行Xen平臺(tái)的物理機(jī),并可以發(fā)現(xiàn)Xen平臺(tái)中運(yùn)行的VM客戶機(jī),這樣便于維護(hù)ー個(gè)跨宿主機(jī)情況下的副本列表2F+1和F+1列表。本方案支持活動(dòng)副本和被動(dòng)副本的概念傳統(tǒng)的BFT復(fù)制方案需要在每ー個(gè)副本中執(zhí)行客戶請(qǐng)求。為了減少資源的消耗,本方案中向CC-VIT系統(tǒng)中引入被動(dòng)副本(passive replicas)的概念。在業(yè)務(wù)正常運(yùn)行時(shí)至少需要F+I個(gè)活動(dòng)副本(active replicas)才能檢測(cè)錯(cuò)誤,其余的副本都被置于被動(dòng)模式,如果ー個(gè)活動(dòng)副本發(fā)生錯(cuò)誤或返回超吋,另ー個(gè)被動(dòng)副本就將接替。要使這樣的方法可行,系統(tǒng)架構(gòu)必須能夠允許快速激活被動(dòng)副本,不然服務(wù)對(duì)于客戶來(lái)說(shuō)將不可用。在本系統(tǒng)中,駐有被動(dòng)副本的虛擬機(jī)被置于掛起狀態(tài),它們僅僅分配了內(nèi)存、磁盤(pán),并不分配CPU和帶寬。當(dāng)激活被動(dòng)副本吋,副本管理器只需激活相應(yīng)的虛擬機(jī)就行,這個(gè)過(guò)程僅需要幾百毫秒。一般情況下,本系統(tǒng)容忍F個(gè)副本的錯(cuò)誤僅需要2F+1個(gè)副本。本方案支持副本的執(zhí)行進(jìn)程狀態(tài)的更新
7
本方法中,副本管理器定期更新被動(dòng)副本的執(zhí)行進(jìn)程狀態(tài),ー活動(dòng)副本發(fā)生錯(cuò)誤或返回執(zhí)行結(jié)果超時(shí)后,激活ー被動(dòng)副本并以此被動(dòng)副本的最新執(zhí)行進(jìn)程狀態(tài)為起點(diǎn)更新執(zhí)行進(jìn)程狀態(tài)。激活被動(dòng)副本后,為了處理掛起的請(qǐng)求,被動(dòng)副本也必須具有最近的可用應(yīng)用執(zhí)
行進(jìn)程狀態(tài)。本方案采用定期狀態(tài)更新的方法來(lái)更新被動(dòng)副本。通常情況下,副本管理器執(zhí)行完ー個(gè)修改請(qǐng)求后,會(huì)檢索到副本的執(zhí)行進(jìn)程狀態(tài)。副本管理器默許這些狀態(tài)更新,并在本地日志列表中存儲(chǔ)每一個(gè)狀態(tài)更新的校驗(yàn)版本。為了保證校驗(yàn)版本的正確性,可以在副本中設(shè)置分布式校驗(yàn)點(diǎn),并且采用檢查本地狀態(tài)校驗(yàn)和的方法來(lái)判斷狀態(tài)的有效性。當(dāng)此日志列表的大小達(dá)到一定的限制后,副本管理器暫時(shí)激活本地被動(dòng)副本以執(zhí)行累積的執(zhí)行進(jìn)程狀態(tài)更新。當(dāng)執(zhí)行完更新后再將此副本置于掛起狀態(tài),副本管理器同時(shí)裁剪掉相應(yīng)的日志信息。可以看出,這種定期更新被動(dòng)副本的方法減少了發(fā)生錯(cuò)誤時(shí)突然更新大量狀態(tài)的負(fù)載,因?yàn)楫?dāng)激活被動(dòng)副本來(lái)容忍錯(cuò)誤時(shí),只有在最近一次狀態(tài)更新之后的狀態(tài)才需要更新執(zhí)行。例如,隨著時(shí)間的推移,ー被動(dòng)副本的各應(yīng)用的執(zhí)行進(jìn)程不斷延續(xù),副本管理器已對(duì)此被動(dòng)副本的執(zhí)行進(jìn)程狀態(tài)進(jìn)行了 N次更新,ー活動(dòng)副本發(fā)生錯(cuò)誤或返回執(zhí)行結(jié)果超時(shí)后,激活此被動(dòng)副本后,就可以直接以第N次更新的執(zhí)行進(jìn)程狀態(tài)為起點(diǎn)更新執(zhí)行進(jìn)程狀態(tài),相比于以從第I次更新之前執(zhí)行進(jìn)程狀態(tài)為起點(diǎn),可以節(jié)省處理時(shí)間和副本管理器的處理能力,提高數(shù)據(jù)處理效率。本方案支持積極恢復(fù)策略傳統(tǒng)的容忍入侵系統(tǒng)一般采用Byzantine錯(cuò)誤容忍復(fù)制算法來(lái)實(shí)現(xiàn)在N個(gè)副本中容忍有限的F個(gè)副本的錯(cuò)誤。這種方法存在ー個(gè)潛在的問(wèn)題,就是只要給定了足夠的時(shí)間,攻擊者就能夠攻破F個(gè)副本,從而突破系統(tǒng)能夠容忍的門限值F,最終使容忍入侵系統(tǒng)失效。解決這個(gè)問(wèn)題的辦法就是使副本周期性的從ー個(gè)安全的代碼庫(kù)(稱為標(biāo)準(zhǔn)副本)重新初始化,也就是ー種積極恢復(fù)的策略。積極恢復(fù)策略能夠移除ー些潛在的攻擊。如果采用積極恢復(fù)策略,只要在恢復(fù)周期內(nèi)錯(cuò)誤的副本不會(huì)突破門限值F,系統(tǒng)就能夠在整個(gè)系統(tǒng)生命周期中容忍無(wú)限的副本的錯(cuò)誤。在傳統(tǒng)的積極恢復(fù)策略中只允許部分副本的同時(shí)重啟以避免服務(wù)的不可用性;如果采用虛擬化技術(shù),可以實(shí)現(xiàn)所有副本同時(shí)的恢復(fù)而對(duì)服務(wù)的執(zhí)行幾乎不產(chǎn)生什么的影響。由于任何虛擬化技術(shù)都提供了一種創(chuàng)建和銷毀域的核心功能,因此通過(guò)這種機(jī)制可以實(shí)現(xiàn)ー種高效的積極恢復(fù)策略。周期性恢復(fù)策略可以在隔離的系統(tǒng)域中通過(guò)恢復(fù)服務(wù)來(lái)觸發(fā)。為了減少系統(tǒng)服務(wù)的不可用時(shí)間,可以采用一種并行的恢復(fù)策略,也就是在創(chuàng)建新域的同時(shí),允許另外一個(gè)先前的域繼續(xù)執(zhí)行。在采用虛擬化技術(shù)時(shí),復(fù)制邏輯運(yùn)行于ー個(gè)隔離、無(wú)入侵的系統(tǒng)域里,因此可以將復(fù)制邏輯當(dāng)成一個(gè)可信實(shí)體來(lái)重新初始化應(yīng)用域,而不需要任何特殊硬件的支持?;謴?fù)策略將ー個(gè)完整副本初始化到ー種“干凈”狀態(tài),然后通過(guò)錯(cuò)誤容忍狀態(tài)轉(zhuǎn)移協(xié)議(Fault-Tolerant State Transfer Protocol)安全的獲得其他副本的服務(wù)狀態(tài),隨后轉(zhuǎn)移到相應(yīng)的服務(wù)狀態(tài)執(zhí)行系統(tǒng)分配的任務(wù)。Hypervisor能夠關(guān)閉和啟動(dòng)運(yùn)行于虛擬機(jī)中的副本,在實(shí)現(xiàn)恢復(fù)策略時(shí),新的副本實(shí)例可以并行于當(dāng)前執(zhí)行的副本啟動(dòng),采用的方法是在另外一個(gè)虛擬機(jī)中啟動(dòng)。在積極恢復(fù)時(shí)這種方法可以大量的降低服務(wù)不可用時(shí)間,因?yàn)橹貑⑦M(jìn)程不會(huì)影響到副本的可用性。當(dāng)初始化完一個(gè)新的副本后,副本管理器就可以關(guān)閉先前運(yùn)行的副本,并同時(shí)激活剛初始化完畢的新的副本。然而基于虛擬化的積極恢復(fù)也具有以下不足之處積極恢復(fù)通常對(duì)服務(wù)有一定的負(fù)面影響,因?yàn)楸镜赜布Y源有限,但是這些有限的資源被所有的副本域共享。在進(jìn)行積極 恢復(fù)時(shí)難免會(huì)涉及到新域的創(chuàng)建和舊域的銷毀,因此對(duì)資源的消耗是難免的。但在另一方面來(lái)說(shuō),這種積極恢復(fù)策略顯著降低了副本在新舊狀態(tài)間轉(zhuǎn)移時(shí)服務(wù)的不可用時(shí)間。本方案中,隨著錯(cuò)誤副本的增多,可以不斷將被動(dòng)副本激活轉(zhuǎn)換為活動(dòng)副本,但當(dāng)被動(dòng)副本均轉(zhuǎn)換為活動(dòng)副本后,則需要?jiǎng)?chuàng)建新的副本。所以,副本管理器監(jiān)測(cè)到F+1個(gè)活動(dòng)副本中錯(cuò)誤副本的個(gè)數(shù)與F的差距小于預(yù)設(shè)值時(shí),從標(biāo)準(zhǔn)副本復(fù)制ー影子副本,將活動(dòng)副本中正確副本的執(zhí)行進(jìn)程狀態(tài)同步到所述影子副本,激活此影子副本作為新的活動(dòng)副本,并關(guān)閉ー錯(cuò)誤副本。其中標(biāo)準(zhǔn)副本是不參與數(shù)據(jù)處理的副本,將此標(biāo)準(zhǔn)副本作為復(fù)制源副本可保證安全性。這樣,“干凈”的副本就能高效而連續(xù)的接替錯(cuò)誤副本的運(yùn)行,井能有效降低積極恢復(fù)對(duì)系統(tǒng)平臺(tái)的突發(fā)負(fù)面影響。本方案支持執(zhí)行進(jìn)程狀態(tài)的轉(zhuǎn)移策略當(dāng)創(chuàng)建好一個(gè)新的操作系統(tǒng)、中間件以及服務(wù)的實(shí)例后,新的副本需要根據(jù)服務(wù)狀態(tài)進(jìn)行初始化,這個(gè)過(guò)程需要狀態(tài)轉(zhuǎn)移的支持。狀態(tài)轉(zhuǎn)移増加了副本在積極恢復(fù)過(guò)程中的服務(wù)不可用時(shí)間,因?yàn)樵趧?chuàng)建狀態(tài)校驗(yàn)點(diǎn)時(shí)服務(wù)的執(zhí)行會(huì)短暫的中斷;另一方面狀態(tài)轉(zhuǎn)移也會(huì)對(duì)網(wǎng)絡(luò)通信資源和CPU資源造成一定的影響。虛擬化技術(shù)可以通過(guò)虛擬機(jī)監(jiān)控器來(lái)實(shí)現(xiàn)磁盤(pán)的存儲(chǔ)管理。在虛擬化磁盤(pán)管理中,虛擬化的永久狀態(tài)存儲(chǔ)可以用來(lái)實(shí)現(xiàn)高效的多個(gè)域之間的狀態(tài)的重映射機(jī)制,這種機(jī)制可以實(shí)現(xiàn)低成本低開(kāi)銷的狀態(tài)轉(zhuǎn)移策略。狀態(tài)轉(zhuǎn)移必須處理不同副本之間的異構(gòu)性,異構(gòu)性一般是通過(guò)多祥性引入的。狀態(tài)轉(zhuǎn)移時(shí)將副本初始狀態(tài)轉(zhuǎn)移到本地特定副本形式狀態(tài)需要副本具體實(shí)施的支持。本方案中,將正確副本的執(zhí)行進(jìn)程狀態(tài)同步到所述影子副本的方法包括所述副本管理器控制活動(dòng)副本即高級(jí)副本捕獲其執(zhí)行進(jìn)程狀態(tài)并轉(zhuǎn)換為抽象狀態(tài)發(fā)送到所述影子副本,接收所述影子副本返回的所述抽象狀態(tài)的校驗(yàn)和并發(fā)送給其它副本管理器,判斷收到F+1個(gè)校驗(yàn)和生成的校驗(yàn)和相等時(shí),判斷此活動(dòng)副本的執(zhí)行進(jìn)程狀態(tài)正確,將此活動(dòng)副本的執(zhí)行進(jìn)程狀態(tài)同步到所述影子副本。具體的執(zhí)行進(jìn)程狀態(tài)轉(zhuǎn)移包括以下步驟步驟一,副本管理器控制高級(jí)副本(即活動(dòng)副本)捕獲其執(zhí)行進(jìn)程狀態(tài),并且生成所有和應(yīng)用相關(guān)的可變狀態(tài)和永久狀態(tài)快照。在創(chuàng)建快照之前,副本必須處理完所有正在執(zhí)行的請(qǐng)求。步驟ニ,高級(jí)副本將ー種特殊應(yīng)用格式(Application-Specific Format)的快照轉(zhuǎn)化為ー種抽象格式,這種抽象格式可以讓所有副本都能解析。步驟三,在副本管理器的協(xié)調(diào)下,抽象狀態(tài)被直接從高級(jí)副本傳送到了影子副本。步驟四,在新?tīng)顟B(tài)被用來(lái)初始化影子副本之前,必須保證這些狀態(tài)沒(méi)有被毀壞,驗(yàn)證方法是看這個(gè)抽象狀態(tài)是不是和其它正確副本的抽象狀態(tài)相等。因此,影子副本會(huì)計(jì)算出關(guān)于抽象狀態(tài)數(shù)據(jù)所有部分的校驗(yàn)和,并且將它們發(fā)送給副本管理器,副本管理器收到這些校驗(yàn)和后就把它們直接廣播到其它的副本管理器。當(dāng)收到F+1個(gè)相等的校驗(yàn)和后,副本管理對(duì)比這F+1個(gè)校驗(yàn)和是不是和本地生成的校驗(yàn)和相等。如果相等,副本管理器就會(huì)將這個(gè)正確的校驗(yàn)點(diǎn)通知給影子副本。步驟五,如果校驗(yàn)和錯(cuò)誤,副本管理器就會(huì)向其它副本管理器詢問(wèn)關(guān)于正確校驗(yàn)和相關(guān)的正確狀態(tài)數(shù)據(jù)。此時(shí),正確的狀態(tài)數(shù)據(jù)將會(huì)傳遞給這個(gè)影子副本。步驟六,影子副本收到正確的數(shù)據(jù)后,將各部分驗(yàn)證后的抽象狀態(tài)轉(zhuǎn)化為特殊實(shí)施的狀態(tài)形式。 步驟七,影子副本就能夠在這些收到的執(zhí)行進(jìn)程狀態(tài)基礎(chǔ)之上開(kāi)始執(zhí)行原高級(jí)副本的工作,原高級(jí)副本可以被安全關(guān)閉,新舊副本間完成了工作交接。本方案支持多樣性策略虛擬化技術(shù)簡(jiǎn)化了系統(tǒng)多樣性的引入,因?yàn)樵谙到y(tǒng)域里運(yùn)行著ー個(gè)完全控制著應(yīng)用域里操作系統(tǒng)和服務(wù)實(shí)例的復(fù)制邏輯。副本的多祥化是容忍入侵系統(tǒng)必不可少的關(guān)鍵技術(shù),多祥性能夠避免攻擊者在很短的時(shí)間內(nèi)多次探測(cè)出系統(tǒng)相同的漏洞,而基于虛擬化的恢復(fù)機(jī)制能夠方便的引入時(shí)間和空間上的多祥性?;谔摂M機(jī)監(jiān)控器的復(fù)制架構(gòu)能夠獨(dú)立于操作系統(tǒng)、中間件以及服務(wù)的實(shí)施來(lái)透明的截取Client/Service的交互。只要不違背狀態(tài)確定的假設(shè),就能夠允許服務(wù)副本完全的異構(gòu)性。虛擬化的積極恢復(fù)機(jī)制能夠?qū)崿F(xiàn)時(shí)間上的多祥性,比如操作系統(tǒng)可以更新版本,或者系統(tǒng)內(nèi)部的ー些配置信息在恢復(fù)重啟時(shí)重新進(jìn)行修改;另外也可以通過(guò)地址空間隨機(jī)化向容忍入侵系統(tǒng)中引入多樣性。本方案對(duì)2F+1副本的維護(hù)副本管理器監(jiān)測(cè)到活動(dòng)副本個(gè)數(shù)小于F+1吋,將ー個(gè)或多個(gè)被動(dòng)副本轉(zhuǎn)換為活動(dòng)副本,不存在被動(dòng)副本時(shí)新創(chuàng)建ー個(gè)或多個(gè)副本并設(shè)置為活動(dòng)狀態(tài)以滿足具有F+1個(gè)活動(dòng)副本的條件。所述副本管理器監(jiān)測(cè)到活動(dòng)狀態(tài)的副本個(gè)數(shù)大于F+1并且小于2F+1時(shí),將多余的活動(dòng)副本設(shè)置為掛起狀態(tài)。如圖3所示,基于云計(jì)算的虛擬化容忍入侵的裝置包括副本管理器,所述副本管理器包括副本維護(hù)模塊和執(zhí)行控制模塊。所述副本維護(hù)模塊,用于在系統(tǒng)錯(cuò)誤容忍副本能力為F個(gè)時(shí),創(chuàng)建2F+1個(gè)副本,設(shè)置其中F+1個(gè)副本為活動(dòng)狀態(tài),其余F個(gè)副本為掛起狀態(tài),活動(dòng)狀態(tài)的副本稱為活動(dòng)副本,掛起狀態(tài)的副本稱為被動(dòng)副本;所述執(zhí)行控制模塊,用于收到服務(wù)請(qǐng)求后,由所述F+1個(gè)活動(dòng)副本執(zhí)行所述服務(wù)請(qǐng)求,執(zhí)行多數(shù)表決算法在F+1個(gè)執(zhí)行結(jié)果中確定一正確結(jié)果。所述副本維護(hù)模塊,還用于定期更新被動(dòng)副本的執(zhí)行進(jìn)程狀態(tài),ー活動(dòng)副本發(fā)生錯(cuò)誤或返回執(zhí)行結(jié)果超時(shí)后,激活ー被動(dòng)副本并以此被動(dòng)副本的最新執(zhí)行進(jìn)程狀態(tài)為起點(diǎn)更新執(zhí)行進(jìn)程狀態(tài)。所述副本維護(hù)模塊,還用于監(jiān)測(cè)到F+1個(gè)活動(dòng)副本中錯(cuò)誤副本的個(gè)數(shù)與F的差距小于預(yù)設(shè)值時(shí),從標(biāo)準(zhǔn)副本復(fù)制ー影子副本,將活動(dòng)副本中正確副本的執(zhí)行進(jìn)程狀態(tài)同步到所述影子副本,激活此影子副本作為新的活動(dòng)副本,并關(guān)閉ー錯(cuò)誤副本。所述副本維護(hù)模塊,還用于控制活動(dòng)副本即高級(jí)副本捕獲其執(zhí)行進(jìn)程狀態(tài)并轉(zhuǎn)換為抽象狀態(tài)發(fā)送到所述影子副本,接收所述影子副本返回的所述抽象狀態(tài)的校驗(yàn)和并發(fā)送給其它副本管理器,判斷收到F+1個(gè)校驗(yàn)和生成的校驗(yàn)和相等時(shí),判斷此活動(dòng)副本的執(zhí)行進(jìn)程狀態(tài)正確,將此活動(dòng)副本的執(zhí)行進(jìn)程狀態(tài)同步到所述影子副本。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相 互任意組合。當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過(guò)程序來(lái)指令相關(guān)硬件完成,所述程序可以存儲(chǔ)于計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如只讀存儲(chǔ)器、磁盤(pán)或光盤(pán)等??蛇x地,上述實(shí)施例的全部或部分步驟也可以使用ー個(gè)或多個(gè)集成電路來(lái)實(shí)現(xiàn)。相應(yīng)地,上述實(shí)施例中的各模塊/単元可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。本發(fā)明不限制于任何特定形式的硬件和軟件的結(jié)合。
權(quán)利要求
1.一種基于云計(jì)算的虛擬化容忍入侵的方法,其特征在干, 物理節(jié)點(diǎn)中的副本管理器在系統(tǒng)錯(cuò)誤容忍副本能力為F個(gè)時(shí),創(chuàng)建2F+1個(gè)副本,設(shè)置其中F+1個(gè)副本為活動(dòng)狀態(tài),其余F個(gè)副本為掛起狀態(tài),活動(dòng)狀態(tài)的副本稱為活動(dòng)副本,掛起狀態(tài)的副本稱為被動(dòng)副本,所述副本管理器收到服務(wù)請(qǐng)求,由所述F+1個(gè)活動(dòng)副本執(zhí)行所述服務(wù)請(qǐng)求,所述副本管理器執(zhí)行多數(shù)表決算法在F+1個(gè)執(zhí)行結(jié)果中確定一正確結(jié)果。
2.如權(quán)利要求I所述的方法,其特征在干, 所述副本管理器定期更新被動(dòng)副本的執(zhí)行進(jìn)程狀態(tài),一活動(dòng)副本發(fā)生錯(cuò)誤或返回執(zhí)行結(jié)果超時(shí)后,激活ー被動(dòng)副本并以此被動(dòng)副本的最新執(zhí)行進(jìn)程狀態(tài)為起點(diǎn)更新執(zhí)行進(jìn)程狀態(tài)。
3.如權(quán)利要求2所述的方法,其特征在干, 所述副本管理器監(jiān)測(cè)到F+1個(gè)活動(dòng)副本中錯(cuò)誤副本的個(gè)數(shù)與F的差距小于預(yù)設(shè)值吋,從標(biāo)準(zhǔn)副本復(fù)制ー影子副本,將活動(dòng)副本中正確副本的執(zhí)行進(jìn)程狀態(tài)同步到所述影子副本,激活此影子副本作為新的活動(dòng)副本,并關(guān)閉ー錯(cuò)誤副本。
4.如權(quán)利要求3所述的方法,其特征在干, 將正確副本的執(zhí)行進(jìn)程狀態(tài)同步到所述影子副本的方法包括 所述副本管理器控制活動(dòng)副本即高級(jí)副本捕獲其執(zhí)行進(jìn)程狀態(tài)并轉(zhuǎn)換為抽象狀態(tài)發(fā)送到所述影子副本,接收所述影子副本返回的所述抽象狀態(tài)的校驗(yàn)和并發(fā)送給其它副本管理器,判斷收到F+1個(gè)校驗(yàn)和生成的校驗(yàn)和相等時(shí),判斷此活動(dòng)副本的執(zhí)行進(jìn)程狀態(tài)正確,將此活動(dòng)副本的執(zhí)行進(jìn)程狀態(tài)同步到所述影子副本。
5.如權(quán)利要求4所述的方法,其特征在干, 所述副本管理器監(jiān)測(cè)到活動(dòng)副本個(gè)數(shù)小于F+1吋,將ー個(gè)或多個(gè)被動(dòng)副本轉(zhuǎn)換為活動(dòng)副本,不存在被動(dòng)副本時(shí)新創(chuàng)建ー個(gè)或多個(gè)副本并設(shè)置為活動(dòng)狀態(tài); 所述副本管理器監(jiān)測(cè)到活動(dòng)狀態(tài)的副本個(gè)數(shù)大于F+1并且小于2F+1時(shí),將多余的活動(dòng)副本設(shè)置為掛起狀態(tài)。
6.如權(quán)利要求5所述的方法,其特征在干, 所述副本管理器在単一物理節(jié)點(diǎn)中維護(hù)所述2F+1個(gè)副本,或者多個(gè)物理節(jié)點(diǎn)上維護(hù)所述2F+1個(gè)副本,不同物理節(jié)點(diǎn)中的副本管理器通過(guò)組通信裝置進(jìn)行信息交互。
7.一種基于云計(jì)算的虛擬化容忍入侵的裝置,其特征在干, 所述裝置包括副本管理器,所述副本管理器包括副本維護(hù)模塊和執(zhí)行控制模塊; 所述副本維護(hù)模塊,用于在系統(tǒng)錯(cuò)誤容忍副本能力為F個(gè)時(shí),創(chuàng)建2F+1個(gè)副本,設(shè)置其中F+1個(gè)副本為活動(dòng)狀態(tài),其余F個(gè)副本為掛起狀態(tài),活動(dòng)狀態(tài)的副本稱為活動(dòng)副本,掛起狀態(tài)的副本稱為被動(dòng)副本; 所述執(zhí)行控制模塊,用于收到服務(wù)請(qǐng)求后,由所述F+1個(gè)活動(dòng)副本執(zhí)行所述服務(wù)請(qǐng)求,執(zhí)行多數(shù)表決算法在F+1個(gè)執(zhí)行結(jié)果中確定一正確結(jié)果。
8.如權(quán)利要求7所述的裝置,其特征在干, 所述副本維護(hù)模塊,還用于定期更新被動(dòng)副本的執(zhí)行進(jìn)程狀態(tài),一活動(dòng)副本發(fā)生錯(cuò)誤或返回執(zhí)行結(jié)果超時(shí)后,激活ー被動(dòng)副本并以此被動(dòng)副本的最新執(zhí)行進(jìn)程狀態(tài)為起點(diǎn)更新執(zhí)行進(jìn)程狀態(tài)。
9.如權(quán)利要求8所述的裝置,其特征在干,所述副本維護(hù)模塊,還用于監(jiān)測(cè)到F+1個(gè)活動(dòng)副本中錯(cuò)誤副本的個(gè)數(shù)與F的差距小于預(yù)設(shè)值時(shí),從標(biāo)準(zhǔn)副本復(fù)制ー影子副本,將活動(dòng)副本中正確副本的執(zhí)行進(jìn)程狀態(tài)同步到所述影子副本,激活此影子副本作為新的活動(dòng)副本,并關(guān)閉ー錯(cuò)誤副本。
10.如權(quán)利要求9所述的裝置,其特征在干, 所述副本維護(hù)模塊,還用于控制活動(dòng)副本即高級(jí)副本捕獲其執(zhí)行進(jìn)程狀態(tài)并轉(zhuǎn)換為抽象狀態(tài)發(fā)送到所述影子副本,接收所述影子副本返回的所述抽象狀態(tài)的校驗(yàn)和并發(fā)送給其它副本管理器,判斷收到F+1個(gè)校驗(yàn)和生成的校驗(yàn)和相等時(shí),判斷此活動(dòng)副本的執(zhí)行進(jìn)程狀態(tài)正確,將此活動(dòng)副本的執(zhí)行進(jìn)程狀態(tài)同步到所述影子副本。
全文摘要
本發(fā)明公開(kāi)了一種基于云計(jì)算的虛擬化容忍入侵的方法及裝置,物理節(jié)點(diǎn)中的副本管理器在系統(tǒng)錯(cuò)誤容忍副本能力為F個(gè)時(shí),創(chuàng)建2F+1個(gè)副本,設(shè)置其中F+1個(gè)副本為活動(dòng)狀態(tài),其余F個(gè)副本為掛起狀態(tài),活動(dòng)狀態(tài)的副本稱為活動(dòng)副本,掛起狀態(tài)的副本稱為被動(dòng)副本,副本管理器收到服務(wù)請(qǐng)求,由所述F+1個(gè)活動(dòng)副本執(zhí)行所述服務(wù)請(qǐng)求,副本管理器執(zhí)行多數(shù)表決算法在F+1個(gè)執(zhí)行結(jié)果中確定一正確結(jié)果。本發(fā)明可以在N=2F+1個(gè)副本中容忍F個(gè)副本的錯(cuò)誤,相比于傳統(tǒng)的Byzantine容錯(cuò)算法容忍F個(gè)錯(cuò)誤副本則需要N=3F+1個(gè)副本。本發(fā)明在無(wú)入侵時(shí)只有F+1個(gè)活動(dòng)副本在執(zhí)行,其余副本置于被動(dòng)模式,這樣大量減少了云平臺(tái)資源的消耗。
文檔編號(hào)H04L29/06GK102917015SQ20121033350
公開(kāi)日2013年2月6日 申請(qǐng)日期2012年9月10日 優(yōu)先權(quán)日2012年9月10日
發(fā)明者羅登亮 申請(qǐng)人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司