国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于寫(xiě)時(shí)復(fù)制特性的虛擬機(jī)內(nèi)文件完整性度量方法與流程

      文檔序號(hào):11515277閱讀:326來(lái)源:國(guó)知局
      本發(fā)明是一種針對(duì)虛擬機(jī)內(nèi)文件的完整性度量方法,尤其涉及虛擬機(jī)的安全防護(hù),屬于計(jì)算機(jī)科學(xué)
      技術(shù)領(lǐng)域
      :。
      背景技術(shù)
      ::在云計(jì)算的iaas層,利用虛擬化技術(shù),可以將計(jì)算、存儲(chǔ)資源虛擬化并封裝為虛擬機(jī),為用戶提供基礎(chǔ)設(shè)施服務(wù),從而最大限度的提高資源的利用率和可靠性,使資源便于管理,降低維護(hù)成本。虛擬機(jī)使用鏡像文件作為存儲(chǔ)載體,鏡像格式有很多種,如qcow2、vmdk、vdi、raw等。部分鏡像格式,如qcow2、vmdk、vdi,能夠通過(guò)一個(gè)較小的文件表示一個(gè)較大的固定大小的虛擬地址空間。它們的鏡像由多個(gè)固定大小的鏡像塊組成,鏡像塊承載的內(nèi)容主要分為三類(lèi),分別是頭部、數(shù)據(jù)、索引。鏡像頭部用于保存鏡像的基本屬性,如鏡像格式版本、虛擬空間大小等內(nèi)容,占用一個(gè)或連續(xù)多個(gè)鏡像塊。鏡像數(shù)據(jù)部分用于存儲(chǔ)實(shí)際的數(shù)據(jù),使用多個(gè)鏡像塊,每個(gè)鏡像塊都表示一段與鏡像塊大小相同的地址空間,只有存儲(chǔ)有實(shí)際數(shù)據(jù)的鏡像塊才會(huì)包含在鏡像文件中。鏡像索引部分用于記錄鏡像數(shù)據(jù)部分使用的鏡像塊在虛擬空間中的順序和在鏡像文件中的位置,通常為樹(shù)形結(jié)構(gòu),索引項(xiàng)與鏡像數(shù)據(jù)部分使用的鏡像塊一一對(duì)應(yīng),使用多個(gè)鏡像塊。如果索引項(xiàng)中存儲(chǔ)的地址為空,則說(shuō)明其對(duì)應(yīng)的鏡像塊內(nèi)不存儲(chǔ)任何實(shí)際的數(shù)據(jù),該鏡像塊在鏡像文件中不存在。為了盡可能的節(jié)約存儲(chǔ)資源、簡(jiǎn)化虛擬機(jī)的部署,虛擬機(jī)監(jiān)控器支持將虛擬機(jī)的鏡像劃分為兩個(gè)部分,分別為基礎(chǔ)鏡像和增量鏡像?;A(chǔ)鏡像是只讀的,可以被多個(gè)增量鏡像同時(shí)使用,用于存儲(chǔ)具有共性的部分,如相同的操作系統(tǒng)、相同的軟件等。增量鏡像在基礎(chǔ)鏡像的基礎(chǔ)上創(chuàng)建,是可寫(xiě)的,以鏡像塊為單位,保存對(duì)基礎(chǔ)鏡像原有內(nèi)容的修改和新增內(nèi)容。根據(jù)寫(xiě)時(shí)復(fù)制特性,如果表示相同地址空間的鏡像塊同時(shí)出現(xiàn)在基礎(chǔ)鏡像和增量鏡像中,說(shuō)明基礎(chǔ)鏡像中表示該段地址空間的鏡像塊內(nèi)存儲(chǔ)的數(shù)據(jù)一定被修改過(guò)。因?yàn)殓R像索引項(xiàng)與鏡像數(shù)據(jù)部分使用的鏡像塊一一對(duì)應(yīng),所以在基礎(chǔ)鏡像和增量鏡像的索引中,當(dāng)與表示相同地址空間的鏡像塊對(duì)應(yīng)的索引項(xiàng)內(nèi)都存儲(chǔ)有實(shí)際的地址時(shí),說(shuō)明基礎(chǔ)鏡像中表示該段地址空間的鏡像塊內(nèi)存儲(chǔ)的數(shù)據(jù)一定被修改過(guò)。虛擬機(jī)內(nèi)的軟件和數(shù)據(jù)以文件為載體,存儲(chǔ)在以文件系統(tǒng)邏輯塊為單位的文件系統(tǒng)中。如圖2所示,文件在邏輯上分為三個(gè)部分,分別為文件頭部、索引和內(nèi)容。頭部用于存儲(chǔ)文件的屬性信息,文件權(quán)限、創(chuàng)建時(shí)間、修改時(shí)間等,頭部的長(zhǎng)度小于文件系統(tǒng)邏輯塊的長(zhǎng)度,多個(gè)文件頭部共享一個(gè)文件系統(tǒng)邏輯塊。內(nèi)容用來(lái)保存文件內(nèi)的實(shí)際數(shù)據(jù),占用多個(gè)完整的文件系統(tǒng)邏輯塊。索引用于記錄內(nèi)容使用的文件系統(tǒng)邏輯塊在分區(qū)內(nèi)的位置和順序,通常為樹(shù)形結(jié)構(gòu),其根存放在頭部中,占用多個(gè)完整的文件系統(tǒng)邏輯塊。在判斷文件完整性方面,對(duì)文件的三個(gè)部分的判斷方法是不同的。對(duì)于文件頭部,需要將頭部中的屬性可以分為兩類(lèi),分別為可變部分和不可變部分,可變部分包括文件最后一次被讀取時(shí)間等,這部分信息的改變不影響文件的完整性;不可變部分包括文件權(quán)限、文件大小等,如果這部分信息被改變,文件不完整。對(duì)于文件內(nèi)容,如果文件內(nèi)容發(fā)生變化,文件不完整。對(duì)于文件索引,由于記錄內(nèi)容使用的文件系統(tǒng)邏輯塊在分區(qū)內(nèi)的位置和順序,所以索引結(jié)構(gòu)發(fā)生改變,文件不完整;索引結(jié)構(gòu)不改變,文件也有可能是不完整,例如文件內(nèi)容使用的某個(gè)文件系統(tǒng)邏輯塊的內(nèi)容發(fā)生改變。隨著云計(jì)算的發(fā)展,虛擬機(jī)被廣泛使用,虛擬機(jī)也成為黑客的主要攻擊對(duì)象之一,承載數(shù)據(jù)和程序的虛擬機(jī)內(nèi)文件,面臨日益嚴(yán)峻的安全威脅。完整性檢測(cè)技術(shù)是增強(qiáng)虛擬機(jī)安全性的一種非常重要的方法,它通過(guò)檢測(cè)內(nèi)容不可變的文件是否被篡改,判斷虛擬機(jī)是否受到攻擊,如果需要度量的文件被篡改,則虛擬機(jī)一定受到攻擊。傳統(tǒng)的完整性檢測(cè)技術(shù)都基于信息摘要算法,如md5、sha等。信息摘要算法以整個(gè)文件的內(nèi)容為輸入,通過(guò)復(fù)雜的計(jì)算,生成固定長(zhǎng)度的信息摘要。在對(duì)某個(gè)文件進(jìn)行完整性檢測(cè)時(shí),首先度量該文件,得到一個(gè)基準(zhǔn)的信息摘要,然后在以后的某個(gè)時(shí)刻,重新對(duì)該文件進(jìn)行度量,產(chǎn)生新的信息摘要,最后對(duì)比新生成的信息摘要與基準(zhǔn)的信息摘要,如果兩個(gè)信息摘要不同,則文件必定被篡改。基于信息摘要算法的虛擬機(jī)內(nèi)文件完整性度量方法主要存在以下兩個(gè)問(wèn)題:(1)使用的數(shù)據(jù)量大:信息摘要算法以文件的整個(gè)內(nèi)容為輸入,輸入的數(shù)據(jù)量等于文件大?。粸榱双@取文件的內(nèi)容,操作系統(tǒng)還需要解析文件頭部和索引。所以,整個(gè)度量過(guò)程使用的數(shù)據(jù)量大。(2)計(jì)算復(fù)雜度高:為了保證不同的文件生成不同的信息摘要,計(jì)算過(guò)程會(huì)進(jìn)行矩陣轉(zhuǎn)置、求和等操作,計(jì)算復(fù)雜度高。技術(shù)實(shí)現(xiàn)要素:為了解決上述問(wèn)題,本發(fā)明提出一種基于寫(xiě)時(shí)復(fù)制特性的虛擬機(jī)內(nèi)文件完整性度量方法,在虛擬機(jī)使用基礎(chǔ)鏡像和增量鏡像、鏡像的鏡像塊與文件系統(tǒng)的文件系統(tǒng)邏輯塊大小相同且一一對(duì)應(yīng)、需要完整性度量的文件存放在基礎(chǔ)鏡像中時(shí),首先從基礎(chǔ)鏡像中,獲取文件頭部?jī)?nèi)容和文件頭部、索引、內(nèi)容使用文件系統(tǒng)邏輯塊對(duì)應(yīng)的鏡像索引項(xiàng);然后在增量鏡像中,分別檢查文件頭部、索引和內(nèi)容的完整性。該方法可以減小所需的數(shù)據(jù)量,降低計(jì)算的復(fù)雜度,從而加快完整性度量的速度。本發(fā)明提出的基于寫(xiě)時(shí)復(fù)制特性的虛擬機(jī)內(nèi)文件完整性度量方法與基于信息摘要算法的虛擬機(jī)內(nèi)文件完整性度量方法的區(qū)別在于:(1)適用的場(chǎng)景不同:該方法在虛擬機(jī)使用基礎(chǔ)鏡像和增量鏡像、鏡像的鏡像塊與虛擬機(jī)的文件系統(tǒng)邏輯塊大小相同且一一對(duì)應(yīng)、需要度量的文件存放在基礎(chǔ)鏡像中時(shí),才能使用。在該場(chǎng)景下,鏡像索引項(xiàng)與文件系統(tǒng)邏輯塊一一對(duì)應(yīng)。(2)用于判斷文件被篡改的方法不同:將文件分為頭部、索引和內(nèi)容三個(gè)部分,在(1)描述的場(chǎng)景下,首先從基礎(chǔ)鏡像中,獲取文件頭部?jī)?nèi)容和文件頭部、索引、內(nèi)容使用文件系統(tǒng)邏輯塊對(duì)應(yīng)的鏡像索引項(xiàng);然后在增量鏡像中,分別檢查文件頭部、索引和內(nèi)容的完整性。其原理是:若整個(gè)文件系統(tǒng)邏輯塊被存儲(chǔ)在基礎(chǔ)鏡像中的文件使用,當(dāng)增量鏡像索引中,與該文件系統(tǒng)邏輯塊對(duì)應(yīng)的索引項(xiàng)內(nèi)存儲(chǔ)有實(shí)際的地址時(shí),文件必定被改動(dòng)。在文件的三個(gè)邏輯部分中,文件索引和內(nèi)容占據(jù)多個(gè)完整的文件系統(tǒng)邏輯塊,多個(gè)文件頭部共享一個(gè)文件系統(tǒng)邏輯塊。所以,判斷文件索引和內(nèi)容是否被篡改,僅通過(guò)增量鏡像索引即可;判斷文件頭部是否被篡改,除了需要增量鏡像索引外,還可能需要比對(duì)增量鏡像和基礎(chǔ)鏡像中存儲(chǔ)的文件頭部?jī)?nèi)容。本發(fā)明提供一種基于寫(xiě)時(shí)復(fù)制特性的虛擬機(jī)內(nèi)文件完整性度量方法,包括9個(gè)步驟,具體如下:步驟1:創(chuàng)建基礎(chǔ)鏡像和安裝操作系統(tǒng);步驟2:將需要完整性度量的內(nèi)容不可變的文件放在基礎(chǔ)鏡像的某個(gè)分區(qū)中;步驟3:在基礎(chǔ)鏡像中獲取文件頭部信息,包括文件頭部存儲(chǔ)的內(nèi)容、文件頭部使用的文件系統(tǒng)邏輯塊在分區(qū)內(nèi)的起始地址,文件頭部在文件系統(tǒng)邏輯塊中的起始位置;步驟4:在基礎(chǔ)鏡像中獲取文件索引和內(nèi)容信息,包括文件索引和內(nèi)容使用的所有文件系統(tǒng)邏輯塊在分區(qū)內(nèi)的起始地址;步驟5:獲取與文件使用的文件系統(tǒng)邏輯塊對(duì)應(yīng)的鏡像索引項(xiàng)信息;步驟6:創(chuàng)建與基礎(chǔ)鏡像的鏡像塊大小相同的增量鏡像;步驟7:在增量鏡像中檢查文件頭部的完整性;步驟8:在增量鏡像中檢查文件索引和內(nèi)容的完整性;步驟9:根據(jù)文件頭部、索引和內(nèi)容的完整性判斷整個(gè)文件的完整性,如果都完整,則文件完整,如果其中任意一個(gè)不完整,則文件不完整。其中,步驟1創(chuàng)建基礎(chǔ)鏡像和安裝操作系統(tǒng),為了確保用于存儲(chǔ)數(shù)據(jù)的鏡像塊與文件系統(tǒng)邏輯塊大小相同且一一對(duì)應(yīng),需要滿足兩個(gè)條件(1)鏡像的鏡像塊大小與文件系統(tǒng)的文件系統(tǒng)邏輯塊大小相同,(2)分區(qū)大小為文件系統(tǒng)邏輯塊大小的整數(shù)倍。其中,步驟5包括:步驟51:將文件頭部、索引和內(nèi)容使用的文件系統(tǒng)邏輯塊在分區(qū)內(nèi)的起始地址轉(zhuǎn)換為鏡像的虛擬空間起始地址;步驟52:根據(jù)鏡像格式中存儲(chǔ)數(shù)據(jù)的鏡像塊與鏡像索引項(xiàng)的對(duì)應(yīng)關(guān)系,獲取與文件使用的文件系統(tǒng)邏輯塊的虛擬空間起始地址對(duì)應(yīng)的鏡像索引項(xiàng)。其中,步驟7包括:步驟71:根據(jù)獲取的文件頭部使用的文件系統(tǒng)邏輯塊對(duì)應(yīng)的鏡像索引項(xiàng)信息,檢查對(duì)應(yīng)的增量鏡像索引項(xiàng)中是否存儲(chǔ)有實(shí)際的地址,如果沒(méi)有,則說(shuō)明文件頭部使用的文件系統(tǒng)邏輯塊不在增量鏡像中,文件頭部完整,轉(zhuǎn)到步驟8;否則,根據(jù)對(duì)應(yīng)的增量鏡像索引項(xiàng)中存儲(chǔ)的地址,讀取增量鏡像中文件頭部使用的文件系統(tǒng)邏輯塊,轉(zhuǎn)到步驟72;步驟72:從文件頭部在文件系統(tǒng)邏輯塊中的起始位置開(kāi)始,逐字節(jié)與獲取的基礎(chǔ)鏡像中的文件頭部信息內(nèi)不可變部分做比較。如果不可變部分相同,則說(shuō)明文件頭部完整,轉(zhuǎn)到步驟8;否則,文件頭部不完整,轉(zhuǎn)到步驟9。其中,步驟8在增量鏡像中檢查文件索引和內(nèi)容的完整性,需要根據(jù)獲取的文件索引和內(nèi)容使用的文件系統(tǒng)邏輯塊對(duì)應(yīng)的鏡像索引項(xiàng)信息,逐個(gè)檢查每個(gè)對(duì)應(yīng)的增量鏡像索引項(xiàng)內(nèi)是否存儲(chǔ)有實(shí)際的地址,如果都沒(méi)有,說(shuō)明文件索引和內(nèi)容完整;否則,說(shuō)明文件索引或內(nèi)容不完整。本發(fā)明的優(yōu)點(diǎn)包括:本發(fā)明所提出的基于寫(xiě)時(shí)復(fù)制特性的虛擬機(jī)內(nèi)文件完整性度量方法,與現(xiàn)有技術(shù)相比,其主要優(yōu)點(diǎn)是:(1)減小了完整性度量所需的數(shù)據(jù)量:信息摘要算法以文件的整個(gè)內(nèi)容為輸入,輸入的數(shù)據(jù)量等于文件大?。粸榱双@取文件的內(nèi)容,操作系統(tǒng)還需要解析文件頭部和索引,所以,整個(gè)度量過(guò)程使用的數(shù)據(jù)量大。但是在該方法中,在設(shè)定的條件下,利用寫(xiě)時(shí)復(fù)制特性、鏡像索引項(xiàng)與文件系統(tǒng)塊的對(duì)應(yīng)關(guān)系,使得算法的輸入為文件頭部?jī)?nèi)容和頭部、索引、內(nèi)容使用的文件系統(tǒng)邏輯塊對(duì)應(yīng)的鏡像索引項(xiàng),從而大幅度減小文件完整性度量所需的數(shù)據(jù)量。(2)減小了完整性度量算法的計(jì)算復(fù)雜度:信息摘要算法為了保證不同的文件生成的信息摘要不同,計(jì)算過(guò)程會(huì)進(jìn)行矩陣轉(zhuǎn)置、求和等操作,計(jì)算復(fù)雜度高。但是在該算法中,只有字節(jié)的比對(duì)和從字節(jié)到地址數(shù)字的轉(zhuǎn)換,計(jì)算復(fù)雜度低。附圖說(shuō)明圖1是本發(fā)明的流程圖。圖2是本發(fā)明的文件邏輯結(jié)構(gòu)與物理結(jié)構(gòu)對(duì)應(yīng)關(guān)系圖。圖3是本發(fā)明的文件系統(tǒng)邏輯塊與鏡像索引項(xiàng)的對(duì)應(yīng)關(guān)系轉(zhuǎn)換圖。圖4是本發(fā)明的通過(guò)鏡像索引檢查文件使用的文件系統(tǒng)邏輯塊是否被篡改圖。具體實(shí)施方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)表達(dá)得更加清楚明白,以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述,但不作為對(duì)本發(fā)明的限定。在實(shí)例中,使用的鏡像格式為qcow2格式,鏡像的虛擬空間大小為10gb,操作系統(tǒng)為linux,文件系統(tǒng)為ext4,具體內(nèi)容如下所示:步驟1:創(chuàng)建基礎(chǔ)鏡像和安裝操作系統(tǒng),首先,創(chuàng)建鏡像塊大小為4kb、虛擬空間為10gb的基礎(chǔ)鏡像,然后,在安裝linux操作系統(tǒng)時(shí),創(chuàng)建大小為4kb的整數(shù)倍的三個(gè)分區(qū)(partition),分別為1gb的boot分區(qū)、8gb的根分區(qū)和1gb的swap分區(qū),在boot和根分區(qū)內(nèi)安裝ext4文件系統(tǒng),文件系統(tǒng)邏輯塊(logicblock)大小為4kb。從而保證鏡像塊與文件系統(tǒng)邏輯塊大小相同且一一對(duì)應(yīng)。步驟2:將需要完整性度量的內(nèi)容不可變的文件放在基礎(chǔ)鏡像的某個(gè)分區(qū)中。步驟3:在基礎(chǔ)鏡像中,獲取文件頭部(inode)信息,包括文件頭部存儲(chǔ)的內(nèi)容,設(shè)為inode_content、文件頭部使用的文件邏輯塊在分區(qū)內(nèi)的起始地址,設(shè)為inode_in_partition,文件頭部使用的文件邏輯塊中的位置,設(shè)為inode_in_logicblock。將inode_content和inode_in_logicblock存儲(chǔ)到數(shù)據(jù)庫(kù)中。步驟4:在基礎(chǔ)鏡像中獲取文件索引和內(nèi)容信息,包括文件索引和內(nèi)容使用的所有文件系統(tǒng)邏輯塊在分區(qū)內(nèi)的起始地址。如圖2所示,由于ext4文件系統(tǒng)的索引是樹(shù)形結(jié)構(gòu)。根在inode中,不占用任何文件系統(tǒng)邏輯塊。葉子結(jié)點(diǎn)占用多個(gè)完整的文件系統(tǒng)邏輯塊,葉子結(jié)點(diǎn)中的項(xiàng)保存了文件內(nèi)容使用的文件系統(tǒng)邏輯塊在分區(qū)內(nèi)的起始地址;其它索引結(jié)點(diǎn)占用多個(gè)完整的文件系統(tǒng)邏輯塊,其中的項(xiàng)保存了下一級(jí)的節(jié)點(diǎn)使用的文件系統(tǒng)邏輯塊在分區(qū)內(nèi)的起始地址。設(shè)文件索引使用的文件系統(tǒng)邏輯塊的集合為index[x1,x2,…],則可以從存儲(chǔ)在inode中的根開(kāi)始搜索,得到文件索引使用的每個(gè)文件系統(tǒng)邏輯塊在分區(qū)內(nèi)的起始地址集合,設(shè)為index_in_partition[x1,x2,…]。設(shè)文件內(nèi)容使用的文件系統(tǒng)邏輯塊集合為content[y1,y2,…],可以從文件索引的葉子結(jié)點(diǎn)中,得到文件內(nèi)容使用的文件系統(tǒng)邏輯塊在分區(qū)內(nèi)的起始地址集合,設(shè)為content_in_partition[y1,y2,…]。步驟5:獲取與文件使用的文件系統(tǒng)邏輯塊對(duì)應(yīng)的鏡像索引項(xiàng)信息。步驟51:將文件頭部、索引和內(nèi)容使用的文件系統(tǒng)邏輯塊在分區(qū)內(nèi)的起始地址轉(zhuǎn)換為鏡像的虛擬空間起始地址,如圖3所示,計(jì)算方法為分區(qū)內(nèi)地址+分區(qū)起始位置。所以,文件頭部的虛擬空間起始地址為inode_in_virtualspace=inode_in_partition+1gb,文件索引使用的文件系統(tǒng)邏輯塊集合的虛擬空間起始地址集合為index_in_virtualspace[x1,x2,…]=index_in_partition[x1,x2,…]+1gb,文件內(nèi)容使用的文件系統(tǒng)邏輯塊集合的虛擬空間起始地址為content_in_virtualspace[y1,y2,…]=content_in_partition[y1,y2,…]+1gb。步驟52:根據(jù)鏡像格式中存儲(chǔ)數(shù)據(jù)的鏡像塊與鏡像索引項(xiàng)的對(duì)應(yīng)關(guān)系,獲取與文件使用的文件系統(tǒng)邏輯塊的虛擬空間起始地址對(duì)應(yīng)的鏡像索引項(xiàng)。如圖3所示,在qcwo2鏡像格式中,使用兩級(jí)索引,第一級(jí)索引(l1table)由連續(xù)的一個(gè)或多個(gè)鏡像塊組成,其中的項(xiàng)指向第二級(jí)索引使用的鏡像塊;第二級(jí)索引(l2table)由多個(gè)按需創(chuàng)建鏡像塊組成,每個(gè)鏡像塊中存儲(chǔ)部分第二級(jí)索引項(xiàng),每個(gè)項(xiàng)中存儲(chǔ)有用于存儲(chǔ)數(shù)據(jù)的鏡像塊在鏡像文件中的地址。所以,用于存儲(chǔ)數(shù)據(jù)的鏡像塊對(duì)應(yīng)的鏡像索引中的項(xiàng),可以使用二元組<l1table_index,l2table_index>表示,其中l(wèi)1table_index為在l1table中的位置,l2table_index為在l2table使用的某個(gè)鏡像塊中的位置。設(shè)某個(gè)用于存儲(chǔ)數(shù)據(jù)的鏡像塊的起始地址為offset,鏡像塊大小為cluster_size,l2table使用的某個(gè)鏡像塊中項(xiàng)的數(shù)量為l2_entries,則轉(zhuǎn)換公式為:l2_entries=(cluster_size/sizeof(uint64_t))l1table_index=(offset/cluster_size)/l2_entriesl2tabel_index=(offset/cluster_size)%l2_entries通過(guò)轉(zhuǎn)換公式,計(jì)算出文件頭部、索引和內(nèi)容使用的文件系統(tǒng)邏輯塊的虛擬空間起始地址對(duì)應(yīng)的鏡像索引項(xiàng)。文件頭部使用的文件系統(tǒng)邏輯塊對(duì)應(yīng)的鏡像索引項(xiàng)為inode_entry,文件索引使用的文件系統(tǒng)邏輯塊集合對(duì)應(yīng)的鏡像索引項(xiàng)集合為index_entries[x1,x2,…],文件內(nèi)容使用的文件系統(tǒng)邏輯塊集合對(duì)應(yīng)的鏡像索引項(xiàng)集合為content_entries[y1,y2,…]。步驟6:創(chuàng)建與基礎(chǔ)鏡像的鏡像塊大小相同的增量鏡像,其鏡像塊大小為4kb。步驟7:在增量鏡像中檢查文件頭部的完整性。步驟71:從數(shù)據(jù)庫(kù)中讀取inode_entry信息,如圖4所示,檢查增量鏡像中鏡像索引項(xiàng)inode_entry中是否存儲(chǔ)有實(shí)際的地址,根據(jù)寫(xiě)時(shí)復(fù)制特性,如果沒(méi)有,則說(shuō)明文件頭部使用的文件系統(tǒng)邏輯塊不在增量鏡像中,文件頭部完整,轉(zhuǎn)到步驟8;否則,根據(jù)鏡像索引項(xiàng)inode_entry中存儲(chǔ)的地址,讀取增量鏡像中文件頭部使用的文件系統(tǒng)邏輯塊,轉(zhuǎn)到步驟72;步驟72:從數(shù)據(jù)庫(kù)中讀取inode_content和inode_in_logicblock信息,然后從增量鏡像中讀取到文件頭部使用的文件系統(tǒng)邏輯塊的inode_in_logicblock位置開(kāi)始,逐字節(jié)與inode_content中不可變部分對(duì)比,如果不可變部分相同,則說(shuō)明文件頭部完整,轉(zhuǎn)到步驟8;否則,文件頭部不完整,轉(zhuǎn)到步驟9。步驟8:在增量鏡像中檢查文件索引和內(nèi)容的完整性,首先從數(shù)據(jù)庫(kù)中讀取index_entries[x1,x2,…]和content_entries[y1,y2,…]信息,如圖4所示,然后逐個(gè)檢查增量鏡像索引項(xiàng)index_entries[x1,x2,…]和content_entries[y1,y2,…]中,是否存儲(chǔ)有實(shí)際的地址,如果都沒(méi)有,說(shuō)明文件索引和內(nèi)容完整;否則,說(shuō)明文件索引或內(nèi)容不完整。步驟9:根據(jù)文件頭部、索引和內(nèi)容的完整性判斷整個(gè)文件的完整性,如果都完整,則文件完整,如果其中任意一個(gè)不完整,則文件不完整。當(dāng)然,本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明做出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。當(dāng)前第1頁(yè)12當(dāng)前第1頁(yè)12
      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1