專利名稱:備份文件的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及允許來自存儲在存儲巻上的計算機(jī)文件的數(shù)據(jù)被移動或備份到可 選位置以釋放存儲巻上的空間的結(jié)構(gòu)和方法。更為具體地,本發(fā)明涉及這樣的結(jié)構(gòu) 結(jié)構(gòu)和方法,其中停留在存儲巻上的備份文件的剩余部分和在可選位置處的已備份 文件可以(如果需要的話)被獲取并且被放回被備份的文件中以形成反備份文件。
背景技術(shù):
在諸如個人計算機(jī)、計算機(jī)服務(wù)器等計算設(shè)備中,正如已知的,數(shù)據(jù)通常以 駐留在計算設(shè)備的--個或多個本地存儲巻上的本地計算機(jī)文件的形式持久地存儲 在計算設(shè)備上。每個這種存儲巻可以駐留在計算設(shè)備的硬盤等上,這種存儲巻可以 由在計算設(shè)備上運(yùn)行的文件系統(tǒng)來組織、通過其被訪問或者由其控制,這也是已知 的。
有時,可能對存儲巻上的一些、許多、可能甚至是大多數(shù)的計算機(jī)文件并不 感興趣的情況,并且會被認(rèn)為是"冷的"。即,舉例而言,這種冷文件已經(jīng)一段時 間未被訪問和/或可能在未來一段時間也不會被訪問,因此將其保留在巻上幾乎沒 有(如果有的話)實(shí)際價值。
當(dāng)然,可以簡單地將這種冷文件從存儲巻上刪除,尤其是在這種巻上需要空 間時。然而,應(yīng)該理解,多數(shù)用戶厭惡簡單地刪除文件以創(chuàng)建空間。此外,僅因?yàn)?感覺上廢棄而刪除冷文件被認(rèn)為是較差的做法。無論如何,情況可以并可能是雖然 認(rèn)為冷文件是不需要的且預(yù)見為不需要的,但是仍然可能在將來某個時間變成需要 的。
那么,在這種情況下,能夠通過將數(shù)據(jù)從這種冷文件中移動到可選位置,同 時仍然允許這種冷文件維持出現(xiàn)在巻上來在巻上創(chuàng)建空間,這會是有用的。即,能 夠通過將數(shù)據(jù)從這種冷文件移動到可選位置或?qū)⒄麄€文件復(fù)制到可選位置,同時將 冷文件以較小的、備份形式的留在巻上來備份冷文件會是有用的。因此,如果事實(shí) 上需要在計算設(shè)備上備份文件,那么可以從替代位置重建這種備份的文件,基于此 來重建經(jīng)備份的文件并且接著可以采用這種重建的文件。
5在另一種情況下,情況可以是組織等的數(shù)據(jù)文件要從可能是諸如集線器等中 央位置復(fù)制到該組織的多個分支位置上。例如,結(jié)構(gòu)設(shè)計公司會希望其所有的結(jié)構(gòu) 設(shè)計文件在該公司的若干個分支中的任何一個都可用。
在這種情況下,聯(lián)網(wǎng)的系統(tǒng)可以被構(gòu)建成將每個文件的副本復(fù)制到每個分支, 并將所有文件保存在當(dāng)前所有分支上。在這種系統(tǒng)中,例如,中央集線器服務(wù)器會 存儲每個這樣的文件,并且會采用復(fù)制服務(wù)將集線器處每個文件的副本通過網(wǎng)絡(luò)發(fā) 布到每個分支上的分支服務(wù)器等上。然而,應(yīng)該理解,隨著組織的文件的數(shù)目的增 長,隨著每個文件的大小的增長,隨著分支數(shù)目的增長,網(wǎng)絡(luò)上的話務(wù)量也會增長, 可能會到超過可用帶寬的程度。此外,隨著集線器服務(wù)器處所有文件的整體大小的 增長,實(shí)際上可能的情況是每個分支服務(wù)器上沒有足夠的可用空間來存儲從集線器 服務(wù)器復(fù)制的所有這種文件。
然而,類似于先前的情況,情況可能是對特定分支的分支服務(wù)器上的一些、 許多或可能甚至大多數(shù)計算機(jī)文件都不感興趣,并且它們可以被認(rèn)為是多余的。這 種多余的文件可以是,例如涉及不與特定分支相關(guān)的事件,可能不會通過特定分支 來訪問,因此復(fù)制到特定分支的分支服務(wù)器上幾乎沒有(如果有的話)實(shí)際價值。 例如,賓夕法尼亞州的威爾克斯一巴里市中的結(jié)構(gòu)設(shè)計公司的支局可能幾乎不需要
(如果有的話)具有與佛羅里達(dá)州柏英敦海灘中的公司的支局處理的項(xiàng)目有關(guān)的結(jié) 構(gòu)設(shè)計文件。
于是,在這種情況下,類似于先前的情況,能夠?yàn)樵摻M織僅將與特定分支相 關(guān)的那些文件全部存儲到特定分支的分支服務(wù)器上,而僅將來自集線器服務(wù)器可用 的所有其他非相關(guān)文件部分地存儲到這種特定分支的這種分支服務(wù)器上會是有用 的。因此,以與上一情況類似的方式,能夠?qū)⒎窍嚓P(guān)文件'備份'到特定分支的分 支服務(wù)器上,使得每個非相關(guān)文件以較小的、'備份'形式保持在分支服務(wù)器上會 是有用的。因此,再次,如果在分支服務(wù)器處需要經(jīng)備份的文件,可用從集線器服 務(wù)器獲取這種經(jīng)備份的文件的數(shù)據(jù),并基于此來重建經(jīng)備份的文件,并且接著可以 使用這種經(jīng)重建的文件。
因此,存在對一種方法和機(jī)制的需求,該方法和機(jī)制用于復(fù)制或備份在諸如 本地巻或分支服務(wù)器的源處的文件使得其上的數(shù)據(jù)被存儲在諸如可選位置或集線 器服務(wù)器的接收器中,并且源處的文件由此以如有需要可被重建的簡化或備份的形 式重建。具體地,存在對這種方法和機(jī)制的需求,用于按需形成和重建這種經(jīng)備份 的文件。
發(fā)明內(nèi)容
本發(fā)明至少部分地滿足了上述需求,其中連同具有存儲巻的計算設(shè)備、管理 存儲巻的文件系統(tǒng)、以及由文件系統(tǒng)存儲在存儲巻上并由這種文件系統(tǒng)訪問的多個 文件提供了一種方法。每個文件被定義為包括數(shù)據(jù)和與該數(shù)據(jù)相關(guān)的元數(shù)據(jù),以及 從文件中移除并存儲在多個可選位置中的一個上的數(shù)據(jù)的至少一部分,這樣使得數(shù) 據(jù)不會實(shí)質(zhì)上占據(jù)巻上的任何空間,并且文件是以簡化的、備份的形式。此外,對 于多個可選位置中的每一個,計算設(shè)備具有相應(yīng)的備份管理器,其中每個備份管理 器被用于和與之對應(yīng)的可選位置通信。
為了重建經(jīng)備份的文件以供使用,計算設(shè)備上的單個備份過濾器定位經(jīng)備份 文件的元數(shù)據(jù)中的備份信息,并在備份信息中定位計算設(shè)備的特定備份管理器的標(biāo) 識,其中經(jīng)標(biāo)識的備份管理器負(fù)責(zé)經(jīng)備份的文件。其后,備份過濾器向經(jīng)標(biāo)識的備 份管理器傳遞請求以從相應(yīng)的可選位置獲取經(jīng)備份文件的數(shù)據(jù),并且經(jīng)標(biāo)識的備份 管理器實(shí)際上從這種可選位置獲取這種請求數(shù)據(jù)。一旦從經(jīng)標(biāo)識的備份管理器接收 經(jīng)備份文件的請求數(shù)據(jù),備份過濾器則將接收到的數(shù)據(jù)重建為經(jīng)備份的文件。由此, 單個備份過濾器對計算設(shè)備的所有備份管理器是通用的。
當(dāng)結(jié)合附圖閱讀時,能更好地理解以上概述和以下對本發(fā)明的實(shí)施例的詳細(xì) 描述。為了示出本發(fā)明,在附圖中示出了當(dāng)前優(yōu)選的實(shí)施例。然而,正如應(yīng)該理解 的,本發(fā)明并不限于示出的精確的方案和手段。在附圖中
圖1是示出通用計算機(jī)系統(tǒng)的框圖,其中可以包括本發(fā)明的各方面和/或其部
分;
圖2是依照本發(fā)明的實(shí)施例示出的在源處備份的文件的框圖,這樣其數(shù)據(jù)就 存儲在接收器中;
圖3A和3B是依照本發(fā)明的實(shí)施例示出的圖2的文件和數(shù)據(jù)的框圖,其中僅 將數(shù)據(jù)存儲在接收器中(圖3A),以及將整個文件存儲在接收器中(圖3B);
圖4是依照本發(fā)明的一個實(shí)施例示出的在將文件備份到圖2的接收器過程中 執(zhí)行的主要步驟的流程圖5是依照本發(fā)明的一個實(shí)施例示出的從圖2的接收器重建經(jīng)備份的文件過 程中執(zhí)行的主要步驟的流程圖;圖6是依照本發(fā)明的一個實(shí)施例更詳細(xì)地示出的從圖2的接收器重建經(jīng)備份 的文件過程中執(zhí)行的主要步驟的流程圖7是依照本發(fā)明的一個實(shí)施例示出的從圖2的接收器部分地重建經(jīng)備份的 文件過程中執(zhí)行的主要步驟的流程圖8是依照本發(fā)明的一個實(shí)施例示出的圖2的文件的數(shù)據(jù)的各種情況的框圖9是依照本發(fā)明的一個實(shí)施例示出的基于圖8中提出的部分的數(shù)據(jù)段的狀 況的從圖2的接收器有效地重建經(jīng)備份文件的至少一部分的過程中執(zhí)行的關(guān)鍵步 驟的流程圖10是依照本發(fā)明的一個實(shí)施例示出的當(dāng)將文件重新備份到圖2的接收機(jī)中 時執(zhí)行的主要步驟的流程圖11是依照本發(fā)明的一個實(shí)施例示出的與多個接收器相關(guān)聯(lián)的圖2的源的框 圖,其中源具有單個通用的備份過濾器和與每個接收器對應(yīng)的備份管理器。
圖12是依照本發(fā)明的一個實(shí)施例示出的在源處備份和重建文件時由圖11的 備份過濾器執(zhí)行的主要步驟的流程圖。
具體實(shí)施方式
計算機(jī)環(huán)境
圖1和以下描述旨在提供對可在其中實(shí)現(xiàn)本發(fā)明和/或其部分的合適的計算環(huán) 境的簡要、 一般描述。盡管不是必需的,但本發(fā)明將在由諸如客戶機(jī)工作站或服務(wù) 器的由計算機(jī)執(zhí)行的諸如程序模塊的計算機(jī)可執(zhí)行指令的一般上下文中描述。一般 而言,程序模塊或軟件組件包括例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等,它們執(zhí)行 特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型。此外,應(yīng)該理解,本發(fā)明和/或其部分可以使 用其他的計算系統(tǒng)配置來實(shí)現(xiàn),包括個手持式設(shè)備、多處理器系統(tǒng)、基于微處理器 或可編程消費(fèi)者電子產(chǎn)品、網(wǎng)絡(luò)PC、小型機(jī)、大型計算機(jī)等。本發(fā)明也可以在分 布式計算環(huán)境中實(shí)現(xiàn),其中任務(wù)由通過通信網(wǎng)絡(luò)鏈接遠(yuǎn)程處理設(shè)備來執(zhí)行。在分布 式計算環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程存儲器存儲設(shè)備中。
如圖1中所示,示例性通用計算系統(tǒng)包括常規(guī)個人計算機(jī)120等,包括處理 單元121、系統(tǒng)存儲器122和將包括系統(tǒng)存儲器在內(nèi)的各種系統(tǒng)組件耦合至處理單 元121的系統(tǒng)總線123。系統(tǒng)總線123可以是若干種總線結(jié)構(gòu)中的任一種,包括存 儲器總線或存儲器控制器、外圍總線和使用各種總線結(jié)構(gòu)中的任一種的局部總線。 系統(tǒng)存儲器包括只讀存儲器(ROM) 124和隨機(jī)存取存儲器(RAM) 125。基本輸入/輸出系統(tǒng)(BIOS) 126包含有助于諸如啟動時在個人計算機(jī)120中的元件之間 傳遞信息的基本例程,它可以存儲在ROM 124中。
個人計算機(jī)120還可以包括從硬盤(未示出)中讀取或向其寫入的硬盤驅(qū)動 器127,從可移動磁盤129中讀取或向其寫入的磁盤驅(qū)動器128,以及從諸如CD ROM或其它光學(xué)介質(zhì)等可移動光盤131中讀取或向其寫入的光盤驅(qū)動器130。硬 盤驅(qū)動器127、磁盤驅(qū)動器128和光盤驅(qū)動器130分別由硬盤驅(qū)動器接口 132、磁 盤驅(qū)動器接口 133和光盤驅(qū)動器接口 134連接至系統(tǒng)總線123。驅(qū)動器及其相關(guān)聯(lián) 的計算機(jī)可讀介質(zhì)為個人計算機(jī)120提供了對計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模 塊和其它數(shù)據(jù)的非易失性存儲。
盡管此處所述的示例性環(huán)境采用硬盤、可移動磁盤129和可移動光盤131,但 是應(yīng)該理解,能夠存儲可由計算機(jī)訪問的數(shù)據(jù)的其他類型的計算機(jī)可讀介質(zhì)也可用 于示例性計算環(huán)境中。這種其他類型的介質(zhì)包括盒式磁帶、閃存卡、數(shù)字多功能盤、 貝努利盒式磁盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)等。
可以在硬盤、磁盤129、光盤131、 ROM 124或RAM 125上存儲多個程序模 塊,包括操作系統(tǒng)135、 一個或多個應(yīng)用程序136、其它程序模塊137和程序數(shù)據(jù) 138。用戶可以通過諸如鍵盤140和定點(diǎn)設(shè)備142的輸入設(shè)備向個人計算機(jī)120輸 入命令和信息。其他輸入設(shè)備(未示出)可以包括麥克風(fēng)、操縱桿、游戲墊、圓盤 式衛(wèi)星天線、掃描儀等其它輸入設(shè)備。這些和其它輸入設(shè)備通常由耦合至系統(tǒng)總線 的串行端口接口 146連接至處理單元121,但也可以由其他接口連接,諸如并行端 口、游戲端口或通用串行總線(USB)。監(jiān)視器147或其他類型的顯示設(shè)備也經(jīng)由 諸如視頻適配器148的接口連接至系統(tǒng)總線123。除監(jiān)視器147之外,個人計算機(jī) 一般包括其它外圍輸出設(shè)備(未示出),諸如揚(yáng)聲器和打印機(jī)。圖1的示例性系統(tǒng) 也包括主機(jī)適配器155、小型計算機(jī)系統(tǒng)接口 (SCSI)總線156和連接到SCSI總 線156上的外部存儲設(shè)備162。
個人計算機(jī)120可以工作在使用到一個或多個諸如遠(yuǎn)程計算機(jī)149的遠(yuǎn)程計 算機(jī)的邏輯連接的聯(lián)網(wǎng)環(huán)境內(nèi)。遠(yuǎn)程計算機(jī)149可以是另一個人計算機(jī)、服務(wù)器、 路由器、網(wǎng)絡(luò)PC、對等設(shè)備或其它公共網(wǎng)絡(luò)節(jié)點(diǎn),并且一般包括與個人計算機(jī)120 相關(guān)的許多或所有上述元件,然而圖1中僅示出了存儲器存儲設(shè)備150。圖1所示 的邏輯連接包括局域網(wǎng)(LAN) 151以及廣域網(wǎng)(WAN) 152。這種網(wǎng)絡(luò)環(huán)境常見 于辦公室、企業(yè)范圍的計算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)以及因特網(wǎng)。
當(dāng)用于LAN聯(lián)網(wǎng)環(huán)境時,個人計算機(jī)120通過網(wǎng)絡(luò)接口或適配器153連接到
9LAN 151。當(dāng)用于WAN聯(lián)網(wǎng)環(huán)境時,個人計算機(jī)120—般包括調(diào)制解調(diào)器154或 用于在諸如因特網(wǎng)的廣域網(wǎng)152上建立通信的其它裝置??梢允莾?nèi)置或外置的調(diào)制 解調(diào)器154經(jīng)由串行口接口 146連接到系統(tǒng)總線123。在聯(lián)網(wǎng)環(huán)境中,相關(guān)于個人 計算機(jī)120描述的程序模塊或其部分可以存儲在遠(yuǎn)程存儲器存儲設(shè)備中。可以理 解,所示網(wǎng)絡(luò)連接是示例性的,并且可以使用在計算機(jī)間建立通信鏈接的其他裝置。
備份和重建文件
在本發(fā)明中,現(xiàn)在轉(zhuǎn)向圖2,諸如個人計算機(jī)或計算機(jī)服務(wù)器等D計算設(shè)備 10具有諸如硬盤或永久性RAM驅(qū)動器等的存儲巻12,巻12上存儲有多個計算機(jī) 文件14,并且?guī)?2上的文件14是由在計算設(shè)備10上運(yùn)行的文件系統(tǒng)16組織、 通過其訪問,或者由其控制的。如可以理解的,計算設(shè)備IO、巻12、文件14和文 件系統(tǒng)16可以是任何類型的計算設(shè)備、巻、文件和文件系統(tǒng),而不會背離本發(fā)明 的精神和范圍。
在本發(fā)明的一個實(shí)施例中,計算設(shè)備10是個人計算機(jī)等,且在其巻12上的 文件14中,至少一些文件14被確定為冷的,例如沒有被訪問已持續(xù)一段時間和/ 或可能不會被訪問將持續(xù)一段時間,因此保留在巻12上幾乎沒有任何(如果有的 話)實(shí)際價值。注意,雖然可以用任何適當(dāng)?shù)姆绞蕉x文件14的冷,但不會背離 本發(fā)明的精神和范圍。
無論如何,當(dāng)被確定為冷的時,文件14不會從巻12上刪除而是通過將它的 至少一部分?jǐn)?shù)據(jù)20移動到可選位置18來減小巻12上的大小。這種可選位置18 可以是計算設(shè)備本地的或者遠(yuǎn)程的。 一般地,這種可選位置18被適當(dāng)?shù)伛詈系接?算設(shè)備10,并且可以是任何適當(dāng)?shù)拇鎯ξ恢枚粫畴x本發(fā)明的精神和范圍。例 如,可選位置18可以是存儲設(shè)備IO上的另一巻12、另一計算設(shè)備IO上的另一巻 12、服務(wù)器處的文件倉庫、遠(yuǎn)程服務(wù)器處的長期存儲設(shè)備等。
有了可選位置18,那么可以通過將上述數(shù)據(jù)20從這種冷文件14移動到這種 可選位置18來釋放巻12上的空間。重要的是,雖然數(shù)據(jù)20從這種冷文件14中移 動,但是這種冷文件14在巻12上保持存在或'備份',雖然是以減小或'經(jīng)備份' 的形式。因此,如果實(shí)際上在計算設(shè)備10上需要經(jīng)備份的文件14,那么就通過從 可選位置18檢索其數(shù)據(jù)20并將這種經(jīng)檢索的數(shù)據(jù)20與這種經(jīng)備份的文件14重新 關(guān)聯(lián)以形成重建的文件14來重建這種經(jīng)備份的文件14。如可以理解的, 一旦被重 建,文件14于是可以實(shí)際被采用。
10在本發(fā)明的另一實(shí)施例中,計算設(shè)備10是分支服務(wù)器等,且其巻12上的至 少一部分文件14已被確定為無關(guān)的,因?yàn)槔邕@種文件14和與這種分支服務(wù)器相 關(guān)聯(lián)的支局不相關(guān)。當(dāng)然,關(guān)于文件14的不相關(guān)性可以用任何適當(dāng)?shù)姆绞蕉x, 而不會背離本發(fā)明的精神和范圍。
無論如何,如上所述,不相關(guān)的文件14以簡化的格式保留在分支服務(wù)器10 的巻12上,而沒有至少一些數(shù)據(jù)20。此處,這種數(shù)據(jù)20被存儲在諸如中央集線 器服務(wù)器的可選位置18處,所述中央集線器服務(wù)器由其支局是分支的組織來維護(hù)。 這種集線器服務(wù)器18再次被適當(dāng)?shù)伛詈系椒种Х?wù)器10上。
有了集線器服務(wù)器18,于是通過來自這種不相關(guān)的文件14的上述數(shù)據(jù)20存 儲到計算器服務(wù)器18處,可以最小化分支服務(wù)器10的巻12上使用的空間,也可 以最小化填充該空間所需的帶寬。重要的是,并且與之前類似,雖然來自這種不相 關(guān)的文件14的數(shù)據(jù)20不出現(xiàn)在分支服務(wù)器10上,但是這種不相關(guān)的文件14在巻 12上保持存在或'備份',雖然是以減小或'備份,的形式。因此,如果實(shí)際上 在分支服務(wù)器10處需要經(jīng)備份的文件14,那么就通過從集線器服務(wù)器18檢索其 數(shù)據(jù)20并將這種經(jīng)檢索的數(shù)據(jù)20與這種經(jīng)備份的文件14重新關(guān)聯(lián)以形成重建的 文件14來重建這種經(jīng)備份的文件14。而且, 一旦被重建,文件14于是可以實(shí)際 被采用。
為了推廣起見,無論方案中涉及諸如個人計算機(jī)的計算設(shè)備10、可選位置18、 分支服務(wù)器10和集線器服務(wù)器18或其他方面,'備份,涉及源10處的巻12上的 文件14,如圖2所示,其中已作出確定,文件14應(yīng)該僅以簡化的格式出現(xiàn)在巻12 上,所述簡化的格式不包括與這種文件14相關(guān)聯(lián)的數(shù)據(jù)20的某些部分。相應(yīng)地, 如圖2中所示,這種數(shù)據(jù)20被存儲在適當(dāng)?shù)伛詈系皆?0處的接收器18處。
有了這種接收器18,于是可以最小化源10的巻12上使用的空間,因?yàn)閹?2 上經(jīng)備份的文件14以簡化或'剩余,的形式出現(xiàn)。因此,如果在源10處實(shí)際上需 要經(jīng)備份的文件14,那么通過從接收器18檢索其數(shù)據(jù)20并將這種檢索的數(shù)據(jù)20 與這種經(jīng)備份的文件14重新關(guān)聯(lián)以形成重建的文件14來重建這種經(jīng)備份的文件 14。而且, 一旦被重建,文件14于是可以在源IO處按所需地實(shí)際被采用。
在本發(fā)明的一個實(shí)施例中,出現(xiàn)在源10的巻上的經(jīng)備份的文件14的剩余被 存儲在巻上與源文件14相同的位置。因此,無論文件系統(tǒng)16依照目錄格式或其他 方式組織巻12,在特定位置查找被備份的文件14的文件系統(tǒng)16應(yīng)該在這樣的位 置找到文件14的剩余,即經(jīng)備份的文件14。重要的是,駐留在源10的巻12上的經(jīng)備份的文件14包含來自源、未備份的文件14的所有元數(shù)據(jù)22,并且也包含可 用于從接收器18為文件14檢索數(shù)據(jù)20所使用的備份信息24。如可以理解的,這 種備份信息24可被添加到文件14的元數(shù)據(jù)22中,或被存儲在文件14的另一位置 中。
因此,用戶等可以通過文件系統(tǒng)16瀏覽源10的整個巻12,即使巻12上的一 些文件14被備份,而巻12上的一些文件14沒有被備份。具體地,在這種瀏覽期 間,可采用與經(jīng)備份的文件14相關(guān)聯(lián)的元數(shù)據(jù)22以標(biāo)識經(jīng)備份的文件14、提供 大小信息、日期信息等。當(dāng)用戶試圖訪問經(jīng)備份的文件14時,基于經(jīng)備份的文件 14中出現(xiàn)的備份信息24來檢索數(shù)據(jù)20,將經(jīng)備份的文件14重建成未經(jīng)備份的文 件14,并且未經(jīng)備份的文件14接著可實(shí)際上由用戶訪問。
現(xiàn)在轉(zhuǎn)向圖3A,可以看到可駐留在源10處的巻12上的未備份文件14包括 可以被組織到頭部等中的元數(shù)據(jù)22,其中,這種元數(shù)據(jù)22包括與未備份的文件14 的數(shù)據(jù)20有關(guān)的信息,諸如邏輯文件大小、巻12上的大小、創(chuàng)建時間、修改時間、 訪問時間、訪問權(quán)限以及各種文件屬性。此外,顯然地,這種駐留在元10的巻12 上的未備份文件14包括文件14的實(shí)際數(shù)據(jù)20。這里注意,這種實(shí)際數(shù)據(jù)20可以 被組織成主要數(shù)據(jù)和可選數(shù)據(jù),其中主要數(shù)據(jù)是來自文件14可以被應(yīng)用程序30 等(圖2)所采用的數(shù)據(jù)20,而可選數(shù)據(jù)是文件14的未其他使用所創(chuàng)建的數(shù)據(jù)。 僅作為一個示例,這種可選數(shù)據(jù)可以包括諸如'拇指'的圖形表示,當(dāng)顯示文件14 的表示時可采用(可能被應(yīng)用程序30或源IO處的文件系統(tǒng)16)該"拇指"。
無論如何,情況可能是主要數(shù)據(jù)是按照大小的大量數(shù)據(jù)20。因此,當(dāng)未備份 文件14實(shí)際上被備份時,實(shí)際的情況可能是僅將數(shù)據(jù)20的主要數(shù)據(jù)從未備份文件 14的剩余部分移除,以形成經(jīng)備份的文件14,并且僅將這些主要數(shù)據(jù)存儲在接收 器18中,可能與經(jīng)備份文件14的標(biāo)識一起,如圖3A所示。當(dāng)然,文件14的其 他部分也可以在文件14的備份期間被移除,而會不背離本發(fā)明的精神和范圍。
如可以理解的,雖然當(dāng)未備份文件14在分支服務(wù)器10和集線器服務(wù)器18的 設(shè)備環(huán)境中實(shí)際上被備份時,其中集線器服務(wù)器18將文件14復(fù)制到分支服務(wù)器 10中,但實(shí)際情況可能是當(dāng)將數(shù)據(jù)20的主要數(shù)據(jù)從源18處的復(fù)制的文件14的剩 余部分移除以形成已備份文件14時,這種文件14全部被存儲在接收器18中,可 能與經(jīng)備份文件14的標(biāo)識一起,如圖3B所示。
為了將未備份的文件14轉(zhuǎn)換成經(jīng)備份的文件14 (即備份文件14),現(xiàn)在參 考圖3和4,首先標(biāo)識文件14 (步驟401),此后標(biāo)識要從文件14上移除的數(shù)據(jù)20 (步驟403)。再者,這種數(shù)據(jù)20通常是數(shù)據(jù)20的主要數(shù)據(jù),但可以是來自數(shù) 據(jù)20的其他數(shù)據(jù)。無論如何,然后通過適當(dāng)?shù)膫鬏敊C(jī)制和渠道將經(jīng)標(biāo)識的數(shù)據(jù)20 從源IO移動到接收器18 (步驟405),然后將這種經(jīng)移動的數(shù)據(jù)20以適當(dāng)?shù)母袷?存儲在接收器18處(步驟407)。如可以理解的,可以用任何適當(dāng)?shù)母袷胶头绞?將數(shù)據(jù)20存儲在接收器18中,而不會背離本發(fā)明的精神和范圍。例如,如果期望 可以壓縮和/或加密數(shù)據(jù)20,可以用某種方式存儲這種數(shù)據(jù)20,以便收到重建文件 14的請求時,可以相對簡單地檢索這種數(shù)據(jù)20。例如,可依照為檢索所采用的ID 來存儲這種數(shù)據(jù)20,如以下將詳細(xì)描述的。
一旦在步驟405處移動了數(shù)據(jù)20,由這種數(shù)據(jù)20在源10的巻12上占據(jù)的空 間無需保持分配給文件14,正如可以理解的。因此,這種分配的空間可被標(biāo)記為 空閑的(步驟409),其結(jié)果是現(xiàn)在備份的文件14被標(biāo)記為稀疏的(sparse)。重 要的是,雖然從經(jīng)備份文件14的使用中釋放出這種分配的空間,但現(xiàn)在備份的文 件14的邏輯文件大小在這種文件14的元數(shù)據(jù)22或別處不應(yīng)該被改變,盡管文件 14的巻上的大小可能實(shí)際上被改變以反應(yīng)這種被釋放的空間。
此外,在本發(fā)明的一個實(shí)施例中,修改現(xiàn)在備份的文件14的元數(shù)據(jù)以示出這 種文件14現(xiàn)在被備份(步驟411)。舉例而言,為此可以在元數(shù)據(jù)22中設(shè)置'備 份'屬性。如可以理解的,這種設(shè)置備份屬性可以主要用作査詢應(yīng)用程序30等的 信號,表明文件14實(shí)際上被備份了。有了這種信號,查詢應(yīng)用程序30于是可以意 識到,不僅文件14實(shí)際上被備份了,而且訪問這種文件14涉及成本,因?yàn)楸仨毷?先將這種文件14重建成未備份的形式。如可以理解的,這種成本可以根據(jù)從接收 器18訪問文件14的數(shù)據(jù)20所需的帶寬、巻12上數(shù)據(jù)20所需的空間和/或在接收 器18處訪問數(shù)據(jù)20和基于此來重建文件14的等待時間。
同時,在本發(fā)明的一個實(shí)施例中,修改現(xiàn)在備份的文件14的元數(shù)據(jù)22以包 括上述備份信息24 (步驟413)。此外,這種備份信息24包括從接收器18檢索文 件14的數(shù)據(jù)20所用的信息等。例如,這種備份信息24可以包括在接收器18處與 數(shù)據(jù)20 —起存儲并標(biāo)識該數(shù)據(jù)的ID,以及可用于存儲與經(jīng)備份的文件14相關(guān)的 其他信息的存儲量,包括如何定位接收器18、如何重建文件14等的信息。在備份 信息24上的這種存儲可以是可變或固定的量,并且在后一種情況下可能限于16 千字節(jié)左右。如可以理解的,這種備份信息24主要由用于重建文件14的任何構(gòu)造 所采用,并且一般不由上述查詢應(yīng)用程序30等使用,雖然這種使用仍然可能發(fā)生, 而不會背離本發(fā)明的精神和范圍。如現(xiàn)在應(yīng)該理解的,經(jīng)備份的備份文件14可以不受干擾地駐留在源10的巻
12上較短的時間、較長的時間、很長的時間或者永遠(yuǎn),至少直至巻12不再運(yùn)作。 可是在任何時間點(diǎn),現(xiàn)在轉(zhuǎn)向圖5,應(yīng)該理解可用從應(yīng)用程序30、在應(yīng)用程序30 處的用戶等接收到訪問備份文件14的存儲數(shù)據(jù)20的請求(步驟501)。當(dāng)然,在 這種請求之前,也可能接收到一個或多個要訪問這種備份文件14的元數(shù)據(jù)22的請 求。例如,上述應(yīng)用程序30可以訪問這種備份文件14的元數(shù)據(jù)22中的設(shè)置備份 屬性,以確定文件14實(shí)際上被備份了,或者控制巻12的文件系統(tǒng)16可以在編譯 目錄列表等的過程中訪問元數(shù)據(jù)22。在后一種情況下,顯著的是,文件系統(tǒng)16、 應(yīng)用程序30或其他實(shí)體也可以訪問數(shù)據(jù)22的可選數(shù)據(jù)以獲取當(dāng)顯示文件14的表 示時可采用的上述圖形。
無論如何,相應(yīng)如在步驟501處訪問備份文件14的存儲數(shù)據(jù)20的請求,實(shí) 際上用以下方式重建備份文件14。首先,文件14位于巻12上(步驟503),隨后 標(biāo)識出文件14的元數(shù)據(jù)22中的備份信息24 (步驟505)。如可以理解的,存儲在 接收器18處的文件14的數(shù)據(jù)20基于這種標(biāo)識的備份信息24來定位(步驟507), 于是這種定位數(shù)據(jù)20可以通過適當(dāng)?shù)膫鬏敊C(jī)制和渠道從接收器18移動到源10處 (步驟511)。
當(dāng)然,為了在源10處存儲文件14的這種數(shù)據(jù)20,必須分配由源10的巻12 上的這種數(shù)據(jù)20所占據(jù)的空間(步驟509),其結(jié)果是不再備份的文件14不再被 標(biāo)記為稀疏的。如現(xiàn)在可以理解的,當(dāng)實(shí)際上將數(shù)據(jù)20移動到文件14以重建相同 的文件后,修改不再備份的文件14的元數(shù)據(jù)22以示出這種文件14沒有被備份(步 驟5B),諸如通過重置元數(shù)據(jù)22中的備份屬性。同時,修改不再備份文件14的 元數(shù)據(jù)22以刪除備份信息24 (步驟515)。相應(yīng)地,文件14現(xiàn)在是未備份形式。
如現(xiàn)在應(yīng)該理解的,有兩種主要的情況導(dǎo)致創(chuàng)建備份文件14。在第一種情況 中,直接將文件14創(chuàng)建為巻12上的備份文件14。這種備份創(chuàng)建在諸如上述具有 分支服務(wù)器IO和集線器服務(wù)器18的復(fù)制結(jié)構(gòu)中是典型的。在這種復(fù)制結(jié)構(gòu)中,使 用來自中央集線器服務(wù)器18的所有文件14的未備份副本來填充若干分支服務(wù)器 IO會需要非常大量的帶寬。因此,而是復(fù)制引擎會決定只在分支服務(wù)器10上創(chuàng)建 文件14的備份副本。于是可以按需和當(dāng)需要才從集線器服務(wù)器18檢索任何特殊分 支服務(wù)器10處的任何特定的備份文件14相關(guān)聯(lián)的數(shù)據(jù)20以將這種特定的備份文 件14重建成這種特定的分支服務(wù)器10處的未備份文件14。
在第二種情況中,文件14被創(chuàng)建為巻12上的未備份文件14并在某個較晚的時間被轉(zhuǎn)換成這種巻12上的備份文件14。這種未備份的創(chuàng)建在諸如上述具有個人 計算機(jī)等和可選位置18的空間節(jié)省結(jié)構(gòu)中是典型的。在這種空間節(jié)省結(jié)構(gòu)中,通 過將與例如很少使用的文件14相關(guān)聯(lián)的數(shù)據(jù)20移動到可選位置18 (可以是另一 媒體或到另一系統(tǒng))來收回個人計算機(jī)等的巻12上的空間。如第一種情況中,于 是可以按需和當(dāng)需要時從可選位置檢索與個人計算機(jī)處的任何特定備份文件14相 關(guān)聯(lián)的數(shù)據(jù)20以將這種特定的備份文件14重建為未備份文件14 。
在本發(fā)明的一個實(shí)施例中,在源10處代表用戶或應(yīng)用程序30以及有關(guān)備份 文件14執(zhí)行的圖5的操作實(shí)際上是在備份過濾器26的協(xié)助下執(zhí)行的,如在圖2 中所示??梢酝该鞯鼗蛲ㄖ脩艋驊?yīng)用程序30地執(zhí)行這些操作,雖然透明對用戶 或應(yīng)用程序30可能是優(yōu)選的。特別地,當(dāng)用戶或應(yīng)用程序30試圖訪問備份文件 14的移除的數(shù)據(jù)20時,當(dāng)接收到這種訪問的請求時,文件系統(tǒng)16會發(fā)現(xiàn)備份文 件14并不包含移除的數(shù)據(jù)20,并因此返回備份過濾器26將會截取的錯誤。 一旦 有這種截取,備份過濾器26就會利用文件系統(tǒng)16來從備份文件14的元數(shù)據(jù)22 獲取備份信息24,并且基于獲取的備份信息24,這種備份過濾器26觸發(fā)這種備份 文件14的重建,如以下會更詳細(xì)描述的,以便訪問請求最終得到實(shí)現(xiàn)。
如可以理解的,備份過濾器26可以是低級的構(gòu)造而沒有太多的功能且不能訪 問諸如接收器18的網(wǎng)絡(luò)資源。在這種情況下,如圖2所示,備份過濾器26會與諸 如備份管理器28的高級構(gòu)造連接,其中這種備份管理器28包括其他備份功能和對 諸如接收器18的網(wǎng)絡(luò)資源的直接訪問。此外,在這種情況下,應(yīng)該理解的是當(dāng)備 份過濾器26觸發(fā)這種文件14的這種重建時,備份管理器28執(zhí)行對源10的大量的 重建功能,如以下將結(jié)合圖5更詳細(xì)地描述的。這種備份服務(wù)器28也會執(zhí)行對源 的大量的備份功能,如結(jié)合圖4所示。
應(yīng)用程序30從備份文件14請求數(shù)據(jù)20
雖然以上結(jié)合圖4詳細(xì)地描述了重建備份文件14,但從希望讀取這種備份文 件14的數(shù)據(jù)20的某些部分的應(yīng)用程序30等的角度看,再次訪問這個過程是有益 的。如可以理解的,則希望從這種文件14讀取這種數(shù)據(jù)20的這種應(yīng)用程序30通 常通過向與文件14相關(guān)的文件系統(tǒng)16發(fā)出打開命令然后向與這種打開的文件14 有關(guān)的文件系統(tǒng)16發(fā)出讀取命令來實(shí)現(xiàn)這種功能。在本發(fā)明的一個實(shí)施例中,這 種應(yīng)用程序30連續(xù)發(fā)出這種打開和讀取命令,雖然有時因正在備份的在討論的文 件14會略有不同地解釋這些命令。這種不同對于應(yīng)用程序30而言是透明的或者不關(guān)心的,盡管應(yīng)用程序30會在重建備份文件14的過程中經(jīng)歷一些等待時間,這種 等待時間可能很大程度上取決于將數(shù)據(jù)20從接收器18移動到源10。
無論如何,現(xiàn)在轉(zhuǎn)向圖6,應(yīng)用程序30通過發(fā)出有關(guān)巻12上的特定的備份文 件14的打開命令來開始該過程,這種打開命令最終由文件系統(tǒng)16接收到(步驟 601)。顯著地,發(fā)出這種打開命令的應(yīng)用程序30不期望知道特定的文件14實(shí)際 上被備份,雖然應(yīng)用程序30可能實(shí)際上通過命令文件系統(tǒng)16報告是否設(shè)置了文件 14的備份屬性可作出這樣的判定。
如以上上所提及的,文件系統(tǒng)16在接收到打開命令時注意到備份文件14不 包含移除的數(shù)據(jù)20,由此返回錯誤(步驟603),備份過濾器26截取這種返回的 錯誤,并基于此認(rèn)識到在討論的文件14實(shí)際上是備份的格式的(步驟605)。因此, 備份過濾器26自身命令文件系統(tǒng)16從這種備份文件14中檢索備份信息24,并且 實(shí)際上接收這種備份信息24 (步驟607)?;谶@種備份信息24,備份過濾器26 接著創(chuàng)建對應(yīng)于備份文件14的緩沖器和句柄,并將該句柄傳遞給應(yīng)用程序30,作 為對來自該應(yīng)用程序的打開命令的(正常)響應(yīng)(步驟609)。
注意,由應(yīng)用程序30接收到的備份文件14的句柄表示打開的備份文件14的 實(shí)例,并且當(dāng)發(fā)出與這種文件14有關(guān)的諸如讀取命令或關(guān)閉命令的進(jìn)一步命令時, 由應(yīng)用程序30用作對這種文件14的參考。然而,重要的是由備份過濾器26創(chuàng)建 并且用作來自應(yīng)用程序30的命令的句柄參數(shù)的備份文件14的這種句柄會使得這種 命令被直接傳遞到備份過濾器26,而不是到文件系統(tǒng)16。
也要注意,備份過濾器26使用備份文件14的緩沖器來存儲有關(guān)備份文件14 的信息,諸如其備份信息24。因此,在備份過濾器26操作備份文件14的過程中, 這種備份信息24的改變可以被記錄在緩沖器中,并無需寫回到文件14中。當(dāng)然, 如果需要的話,當(dāng)備份過濾器26完成備份文件14的操作后,可以將緩沖器中的這 種記錄的改變寫回到文件的備份信息24中。
無論如何,有了來自備份過濾器26的備份文件14的句柄,應(yīng)用程序30可通 過發(fā)出與巻12上的特定的備份文件14有關(guān)的讀取命令而繼續(xù)轄區(qū),其中這種讀取 命令具有包括句柄、文件的數(shù)據(jù)20中的偏移量、與從該偏移量開始的這種數(shù)據(jù)20 有關(guān)的讀取長度等參數(shù)。因此,基于使得這種句柄作為其參數(shù)的這種讀取命令最終 由備份過濾器26而不是文件系統(tǒng)16接收到(步驟611)。然而,很顯然的是,數(shù) 據(jù)20實(shí)際上不存在于備份文件14中,因此備份過濾器將讀取命令存儲在隊(duì)列等中, 用于等待進(jìn)一步的處理(步驟613)。
16如應(yīng)該理解的,這種進(jìn)一步的處理主要包括從接收器18獲取備份文件14的
數(shù)據(jù)20。具體地,備份過濾器26基于接收器18處的它的數(shù)據(jù)20開始重建備份文 件14 (步驟615),其中這種重建會以以下方式發(fā)生。
記住,備份過濾器25會與備份管理器28連接以執(zhí)行高級備份功能和對諸如 接收器18的網(wǎng)絡(luò)資源的直接訪問,備份過濾器26向備份管理器28發(fā)出請求,以 從接收器18獲取備份文件14的數(shù)據(jù)的一些部分(步驟615a),其中這種請求包 括來自備份文件14的備份信息24的ID、到數(shù)據(jù)20中的偏移量以及從這種偏移量 開始獲取的數(shù)據(jù)20的長度。此后,備份管理器28實(shí)際上從接收器18獲取這種數(shù) 據(jù)20的請求的部分(步驟615b)。假設(shè)備份管理器28包括這樣獲取的所有必須 的功能,并且使用已知或?qū)τ嘘P(guān)公眾顯而易見并且無需在此作出任何詳細(xì)描述的方 式進(jìn)行。相應(yīng)地,可以采用這種獲取的任何特定的方法,而不會背離本發(fā)明的精神 和范圍。
注意,情況可能是如在步驟615b處備份管理器28從接收器18獲取數(shù)據(jù)20 的請求的部分時,可能有一些延遲。例如,情況可能是通過網(wǎng)絡(luò)來獲取這種數(shù)據(jù) 29,其中可能有網(wǎng)絡(luò)延遲,或許類似于若干微秒、若干秒或甚至更多。因此,備份 管理器28、備份過濾器26和/或另一實(shí)體可能希望維護(hù)表示從接收器18請求的并 且還未從中獲取的數(shù)據(jù)20的每個部分(可能與相應(yīng)的請求時間一起)的待決數(shù)據(jù) 列表。如可以理解的,當(dāng)被如此請求時,數(shù)據(jù)的每個請求部分的標(biāo)識被添加到待決 數(shù)據(jù)列表中,并且當(dāng)被接收到且與備份文件14 一起存儲時從這種待決數(shù)據(jù)列表中 移除。有了這種待決數(shù)據(jù)列表,則情況可能是監(jiān)控所有對數(shù)據(jù)20的待決請求的時 效,而且在某個時間段內(nèi)未滿足的請求可以超時。
一旦備份管理器28實(shí)際上從接收器18獲取了這種數(shù)據(jù)20的這種請求部分, 那么請求管理器28將這種請求部分傳遞給備份過濾器26 (步驟615c),并且備份 過濾器26然后通過對文件系統(tǒng)16的適當(dāng)?shù)拿顚⑦@種請求的部分寫入在討論的文 件14的適當(dāng)位置(步驟615d)。將這種請求的部分寫入在討論的文件14的適當(dāng) 位置是已知的或者對于相關(guān)的公眾是顯而易見的,因此無需在此作任何詳細(xì)描述。 因此,可以采用這種寫入的任何特定方法而不會背離本發(fā)明的精神和范圍。
當(dāng)然,可能必須多次重復(fù)步驟615a-615d,直至文件14的所有數(shù)據(jù)20被寫入, 因此按照需要重復(fù)這些步驟。 一旦文件14的所有數(shù)據(jù)20實(shí)際上被寫入,備份過濾 器26根據(jù)需要向向文件系統(tǒng)14發(fā)布命令以整理(f1X)這種現(xiàn)在重建的文件14的 元數(shù)據(jù)22,包括移除備份信息24和重置備份屬性(步驟617)。此外,備份過濾器26從隊(duì)列檢索文件14的所有讀取命令,并將這種讀取命令傳遞給文件系統(tǒng)16 以供進(jìn)一步處理(步驟619),由此來自應(yīng)用程序30的讀取命令實(shí)際上響應(yīng)于在 討論的數(shù)據(jù)20。
注意,打開文件14的句柄保持與備份過濾器26相關(guān)聯(lián),并繼續(xù)將來自與這 種現(xiàn)在重建的文件14相關(guān)的應(yīng)用程序30的命令指引到備份過濾器26。因此,情 況可能是備份過濾器26將這些命令轉(zhuǎn)發(fā)給文件系統(tǒng)16,情況可能是備份過濾器26 重新將句柄與文件系統(tǒng)16相關(guān)聯(lián),或者可能是備份過濾器命令另一構(gòu)造以將手柄 與文件系統(tǒng)16相關(guān)聯(lián)等。
部分重建備份文件14
如可以理解的,在請求的應(yīng)用程序需要文件14少于全部備份數(shù)據(jù)20的情況 下,應(yīng)該不需要完全地重建備份文件14。因此,如果應(yīng)用程序30可以確定僅需要 數(shù)據(jù)30的2千兆字節(jié)的特定偏移量處的1、 2、 12或100千字節(jié),應(yīng)該不需要從接 收器18獲取數(shù)據(jù)20的2千兆字節(jié),而僅需要在特定偏移量處的數(shù)據(jù)20的千字節(jié)。 此外,在這種情況下,通過僅僅部分重建備份文件14,避免了將大量不需要的數(shù) 據(jù)20從接收器18發(fā)送到源10,并且完成這些所需的帶寬相應(yīng)地降低。
通過僅僅部分重建備份文件14,應(yīng)用程序30于是能夠僅讀取(如果需要)文 件的一些字節(jié),而不用觸發(fā)文件14的完全重建。因此,舉例而言,如果僅需要視 頻文件14的第一幀,那么會從接收器18處的文件14的數(shù)據(jù)20獲取該第一幀,而 不是備份文件14的數(shù)據(jù)20的全部量,可能類似于10或甚至100千兆字節(jié)。于是 部分重建可僅從接收器18獲取為備份文件14所需的同樣多的數(shù)據(jù)20以滿足來自 應(yīng)用程序的特定讀取請求,就此為止。
注意,當(dāng)部分重建備份文件14時,情況可能是或可能不是實(shí)際上從接收器18 移除從接收器18獲取的數(shù)據(jù)20的部分。另一方面,獲取的部分被存儲在源10處, 因此不再需要在接收器18處維持。然而,另一方面,實(shí)際上可能需要更多努力以 實(shí)際上從接收器18刪除獲取的部分。此外,在至少一些情況下,這種獲取部分應(yīng) 該保留在接收器18處以供其他源10的訪問,諸如如果接收器是集線器服務(wù)器18, 而源是分支服務(wù)器10。
如可以理解的,如果備份文件14實(shí)際上被部分重建,那么必須維護(hù)記錄以注 意備份文件14的什么部分實(shí)際上被重建,以便備份過濾器26可以確定這些部分是 否存在于備份文件14中。因此,在本發(fā)明的一個實(shí)施例中,這種記錄被維護(hù)在備份文件14的元數(shù)據(jù)22中的備份信息24中。具體地,對于重建并由此出現(xiàn)在備份 文件14中的備份文件14的數(shù)據(jù)20的每個連續(xù)區(qū)域(section),備份信息24包括 區(qū)域參考,區(qū)域參考包括描述區(qū)域的開始的偏移量以及該區(qū)域的連續(xù)量的長度。
通常,由備份過濾器26維護(hù)包括部分重建數(shù)據(jù)20的上述記錄的備份文件14 的備份信息24。如以上所提及的,雖然備份過濾器26可以通過文件系統(tǒng)16直接 維護(hù)和更新備份文件14的元數(shù)據(jù)22中的備份信息24,但這種維護(hù)和更新可能干 擾文件系統(tǒng)16執(zhí)行的其他操作。因此,備份過濾器26在操作備份文件14的過程 中而是一開始就從元數(shù)據(jù)22獲取備份信息24,并如圖6的步驟609,將備份信息 24存儲在與備份文件14有關(guān)的創(chuàng)建的緩沖器中,接著在操作備份文件14的過程 中維護(hù)和更新備份信息24,并且在結(jié)束時將備份信息24從緩沖器寫入到備份文件 14的元數(shù)據(jù)22中。
注意,在備份文件14的部分重建可以被中斷的場合中,例如源12處的功率 損失或網(wǎng)絡(luò)連接。同樣地,情況也可能是丟失了備份文件14的緩沖器,尤其是在 功率損失且緩沖器維護(hù)在易失性RAM等的情況下。在這種情況下,維護(hù)和更新的 備份信息24丟失并且沒有從緩沖器寫到文件14的元數(shù)據(jù)22中,結(jié)果不僅丟失了 備份信息24,而且丟失了與之相關(guān)聯(lián)的所有部分重建的數(shù)據(jù)20,即使其物理地存 在于源10處,尤其是因?yàn)闆]有這種備份信息24數(shù)據(jù)20不能被定位。因此,在本 發(fā)明的一個實(shí)施例中,被維護(hù)和更新的備份信息24被周期性地從緩沖器寫入到文 件14的元數(shù)據(jù)22中,諸如大約每分鐘一次。因此,由于緩沖器的丟失,最多會丟 失1分鐘左右的這種備份信息24以及與之相關(guān)聯(lián)的部分重建的數(shù)據(jù)20。
在本發(fā)明的一個實(shí)施例中,基于來自從備份文件14請求數(shù)據(jù)20的應(yīng)用程序 30的適當(dāng)?shù)拿睿瑐浞菸募?4僅被部分地重建。因此,應(yīng)用程序30必須首先檢 查文件系統(tǒng)16,以確定是否為特定的文件14設(shè)置了備份屬性,以判定這種文件14 實(shí)際上是否被備份,如果是這樣,那么應(yīng)用程序30會使用適當(dāng)?shù)拿钫埱髮@種 備份文件14的數(shù)據(jù)20的一部分或多部分的部分重建。
考慮到部分重建,于是在本發(fā)明的一個實(shí)施例中,響應(yīng)于諸如在圖6的步驟 611處給出的備份文件14有關(guān)的讀取命令,備份過濾器26通過首先査看存儲在相 應(yīng)的緩沖器中的備份文件14的備份信息24中的任何部分參考,接著從該部分參考 確定所請求的數(shù)據(jù)20或其部分是否已經(jīng)存在于源10的備份文件14中來對此作出 響應(yīng)。如果所有請求的數(shù)據(jù)20實(shí)際上存在,那么從源10處的備份文件14讀取這 種數(shù)據(jù)20,而無需從接收器18獲取這種數(shù)據(jù)20。如果僅存在請求數(shù)據(jù)20的一部分,那么從源10處的備份文件14讀取數(shù)據(jù)20的存在的部分,而無需從接收器18 獲取這種數(shù)據(jù)20,而從接收器18處獲取數(shù)據(jù)20的剩余部分,并接著如上被讀取。 如果不存在任何請求的數(shù)據(jù)20,就從接收器18獲取所有這種數(shù)據(jù)20,并接著如上 被讀取。總而言之,現(xiàn)在轉(zhuǎn)向圖7,響應(yīng)來自應(yīng)用程序30打開可能需要從中進(jìn)行 部分重建的備份文件14的命令(步驟701),備份過濾器26再次創(chuàng)建緩沖器和對 應(yīng)于備份文件14的句柄,并將句柄傳遞給應(yīng)用程序30作為對步驟609處來自于此 的打開命令的(正常)響應(yīng)(步驟703)。此外,備份過濾器26—開始從備份文 件14的元數(shù)據(jù)22獲取備份信息24,并將備份信息24存儲在創(chuàng)建的緩沖器中(步 驟705)。
如上所述,有了來自備份過濾器26的過濾文件14的句柄,應(yīng)用程序30對巻 12上特定備份文件14的數(shù)據(jù)20的一部分發(fā)出讀取命令,其中這種讀取命令包括 句柄以并定義該部分的偏移量和長度,如在步驟611處(步驟707)。此處,響應(yīng) 于讀取命令,備份過濾器26基于備份文件14的緩沖器中的備份信息24判定定義 的該部分是否至少已部分存在于駐留在源10處的備份文件14中(步驟709)。作 出這種判定是已知的或者對于相關(guān)的公眾是顯而易見的,因此無需在此作任何詳細(xì) 的描述。因此,可以采用作出這種判定的任何方法而不會背離本發(fā)明的精神和范圍。
再者,如果數(shù)據(jù)20的所有部分實(shí)際上是存在,就無需從接收器18獲取這種 數(shù)據(jù)的該部分(步驟711a)。如果僅存在數(shù)據(jù)20的部分的一部分,那么從接收器 18獲取數(shù)據(jù)20的剩余部分(步驟711b)。如果不存在數(shù)據(jù)20的任何部分,那么 從接收器18獲取數(shù)據(jù)20的所有這種部分(步驟711c)。重要的是,在步驟711b 和711c處從接收器18獲取數(shù)據(jù)20的任何部分時,備份過濾器26更新存儲在緩沖 器中的備份文件14的備份信息24,以適當(dāng)?shù)胤从硵?shù)據(jù)20的該部分現(xiàn)在與備份文 件14 一起駐留并被重建到備份文件14 (步驟713)。無論如何,由于數(shù)據(jù)20的請 求部分現(xiàn)在駐留在源10處,這種請求部分現(xiàn)在可能實(shí)際上由應(yīng)用程序30讀取,如 在步驟619處(步驟715)。
如上所述,備份過濾器26周期性地將備份信息24以其最近的形式從緩沖器 寫到文件14的元數(shù)據(jù)22中,這樣在緩沖器丟失的事件中不會完全丟失這種備份信 息24和與之相關(guān)聯(lián)的部分重建的數(shù)據(jù)20 (步驟717)。此外, 一旦備份文件14 被關(guān)閉,諸如在應(yīng)用程序30的命令時(步驟719),備份過濾器26通過將備份信 息24以其最近的形式從緩沖器寫到文件14的元數(shù)據(jù)22中來關(guān)閉緩沖器(步驟 721),當(dāng)然假設(shè)備份文件14還沒有被完全重建。因此,以其最近形式的這種備份信息24可以在以后某個時間再次被獲取,如在步驟705處。 快速讀取部分重建備份文件14
發(fā)送有關(guān)備份文件14的讀取命令的應(yīng)用程序30不考慮備份文件14的狀態(tài), 尤其不考慮備份文件14是否已經(jīng)被部分重建和/或已經(jīng)處于被部分重建的過程中。 即,現(xiàn)在轉(zhuǎn)向圖8,情況可能是與備份文件14有關(guān)的特定讀取命令指定數(shù)據(jù)20的 特定部分,這種特定部分對應(yīng)于包含己經(jīng)存在于備份文件14中的數(shù)據(jù)20的第一分 段、包含即將要從接收器18復(fù)制到備份文件14的數(shù)據(jù)的第二分段,以及包含不存 在于備份文件14中而是僅存儲在接收器18處的數(shù)據(jù)20的第三分段。
如可以理解的,如果要處理這種讀取命令使得數(shù)據(jù)20的所有特定部分從接收 器18復(fù)制到備份文件14,有關(guān)對應(yīng)于這種特定部分的至少第一和第二分段的這種 處理是雙重的且浪費(fèi)的。具體地,且可以理解的,復(fù)制對應(yīng)于第一分段的數(shù)據(jù)20 是不必要的,因?yàn)檫@種數(shù)據(jù)20已經(jīng)存在于備份文件14中,復(fù)制對應(yīng)于第二分段的 數(shù)據(jù)20是不必要的,因?yàn)檫@種數(shù)據(jù)20已即將從接收器18復(fù)制到備份文件14。實(shí) 際上,僅需要將對應(yīng)于第三分段的數(shù)據(jù)20從接收器14復(fù)制到備份文件14中,因 為這種數(shù)據(jù)20不存在于備份文件14中,且還沒有被請求復(fù)制到備份文件14中。
在本發(fā)明的一個實(shí)施例中,備份過濾器26于是通過以下步驟處理對數(shù)據(jù)20 的特定部分的讀取命令首先標(biāo)識對應(yīng)于己經(jīng)存在的備份文件14中的分段(即第 一分段)、已經(jīng)待決的備份文件14中的相應(yīng)的分段(即第二分段),以及不存在 或不是待決的備份文件14的相應(yīng)的分段(即第三分段)的數(shù)據(jù)20的特定部分,然 后實(shí)際上僅獲取第三分段。實(shí)際上,備份過濾器26然后從讀取命令剝除實(shí)際上無 需從接收器18讀取的所有分段。通過執(zhí)行這種剝除動作,能夠更快地處理讀取命 令,因?yàn)檫@種'快速讀取'僅從接收器獲取實(shí)際上需要的數(shù)據(jù)20,而不是已經(jīng)存 在于備份文件14中或待決的數(shù)據(jù)20。因此,由備份過濾器26執(zhí)行的快速讀出造 成了對來自于應(yīng)用程序30的讀取命令的更快的響應(yīng),并降低了這種讀取命令所需 的帶寬量。
在本發(fā)明的一個實(shí)施例中,備份過濾器26標(biāo)識關(guān)于為備份文件14維護(hù)的備 份信息已經(jīng)存在的備份文件14中每個第一分段。如上所述,可以參考位于這種備 份文件14的元數(shù)據(jù)22中的備份信息24,或者參考位于備份文件14的緩沖區(qū)中的 備份信息24。同樣地,在本發(fā)明的一個實(shí)施例中,備份過濾器26標(biāo)識己待決的備 份文件14中的每個第二分段,該備份文件14關(guān)于以上結(jié)合圖6的步驟615b揭示
21的待決數(shù)據(jù)列表中的信息。關(guān)于這種備份信息24和待決數(shù)據(jù)列表來標(biāo)識第一和第 二分段應(yīng)該是已知的或者對于相關(guān)的公眾是顯而易見的,因此無需在此作任何詳細(xì) 的描述。因此,可以用任何適當(dāng)?shù)姆绞綀?zhí)行這種標(biāo)識而不會背離本發(fā)明的精神和范 圍。
如現(xiàn)在可以理解的, 一旦標(biāo)識了第一和第二分段,剩余部分就是第三分段, 于是通過排除過程,標(biāo)識出不存在或不是待決的備份文件的第三分段。當(dāng)然, 一旦
被標(biāo)識,可能實(shí)際上從接收器18處請求第三分段,并在接收到時復(fù)制給備份文件 14。注意一旦請求了,每個這種第三分段實(shí)際上成為第二、待決分段。也要注意, 一旦接收并復(fù)制到備份文件14,每個第二分段實(shí)際上變成第一、存在的分段。注 意,最后, 一旦分段變成了第一分段,那么這種第一分段可用于響應(yīng)來自于此的讀 取命令實(shí)際上由應(yīng)用程序30讀取。
至少在某些情況下,應(yīng)該理解雖然應(yīng)用程序30沒有對備份文件14中的特定 數(shù)據(jù)20發(fā)出讀取命令,備份過濾器26仍然應(yīng)該預(yù)期到這種讀取命令將數(shù)據(jù)20從 接收器18移動到備份文件14,尤其是如果沒有使用其他的方式占據(jù)備份過濾器14。 僅作為一個示例,當(dāng)流動諸如備份音頻文件14、備份視頻文件14或備份多媒體文 件14的內(nèi)容時,合理的是,期望在特定時間段T0數(shù)據(jù)20的讀取命令會跟隨著下 一時段T1處的數(shù)據(jù)20的讀取命令。在這種情況下,備份過濾器26 (如果沒有被 其他占據(jù))可以使得其自身具有能夠從接收器18處獲取時間段T1的數(shù)據(jù)20的機(jī) 會,甚至無需來自應(yīng)用程序30的特定讀取命令。當(dāng)然,這樣做,備份過濾器26 可執(zhí)行這種動作,作為用以上所述方法中的快速讀取。
總而言之,現(xiàn)在轉(zhuǎn)向圖9,備份過濾器26用以下方式響應(yīng)來自應(yīng)用程序30 的讀取命令而執(zhí)行快速讀取。首先,確實(shí)從應(yīng)用程序30接收讀取命令,其中這種 讀取命令指定從備份文件14讀取出一部分或一定范圍的數(shù)據(jù)20 (步驟901)。通 常,而且這種范圍被表示為與數(shù)據(jù)20有關(guān)的偏移量和長度。
此后,備份過濾器26首先標(biāo)識與已經(jīng)存在的備份文件14中數(shù)據(jù)20的第一分 段相應(yīng)的數(shù)據(jù)20的這種范圍(步驟903)。而且,這種標(biāo)識是關(guān)于為這種備份文 件14所維護(hù)的備份信息24而執(zhí)行的,是在為備份文件14的元數(shù)據(jù)22中或者在對 應(yīng)于備份文件14的緩沖器中。如果標(biāo)識出的第一分段包括數(shù)據(jù)20的所有請求的范 圍,那么備份文件14己經(jīng)被重建到滿足讀取命令所需的程度,并且這種讀取命令 可由此完成,而無需任何進(jìn)一步地從接收器18復(fù)制數(shù)據(jù)20以及無需等待任何待決 數(shù)據(jù)20 (步驟905)。然而,如果標(biāo)識出的第一分段沒有包括數(shù)據(jù)20的所有請求范圍,那么必須至
少基于待決數(shù)據(jù)20,實(shí)際上將備份文件14重建到滿足讀取命令所需的程度,因此, 備份過濾器26計算包括不是第一分段的數(shù)據(jù)20的請求范圍的每個分段的范圍的第 一集合(步驟907)。此后,類似于先前的,備份過濾器26在第一集合中標(biāo)識出待決 的備份文件中14數(shù)據(jù)2 0的相應(yīng)第二分段(步驟909)。再者,關(guān)于該待決的數(shù)據(jù)列 表來執(zhí)行這種標(biāo)識。如果標(biāo)識出的第二分段包括所有的第一集合,那么備份文件 14待決地要被重建成滿足讀取命令所需的程度,并且當(dāng)將所有的待決數(shù)據(jù)20實(shí)際 上復(fù)制到備份文件14后可以完成這種讀取命令(步驟9U)。
如現(xiàn)在應(yīng)該理解的,雖然如果標(biāo)識的第二分段不包含第一集合的全部,但是 備份文件14必須基于要從接收器18復(fù)制的數(shù)據(jù)20確實(shí)要被重建到滿足讀取命令 所需的程度,因此,備份過濾器26計算包括不是第一分段和不是第二分段,即第 三分段的數(shù)據(jù)20的請求范圍的每個分段的范圍的第二集合(步驟913)。此后,備份 過濾器26請求將第二集合/第三分段從接收器18復(fù)制到備份文件14 (步驟915)。
經(jīng)過一定的時間,并且請求的每個第三分段成為第二、待決的分段,實(shí)際上 復(fù)制的每個第二分段成為第一、存在的分段,直至完成所有的復(fù)制(步驟917)。 此后,讀取命令所請求的范圍實(shí)際上可用于由應(yīng)用程序30讀取,以響應(yīng)讀取命令 (步驟919)。
再備份/備份文件14
如可以理解的,被重建或部分重建的備份文件14在某些時候可以被再備份, 例如如果在源IO處需要更多的空間。此外,如也可以理解的,從來沒有被同樣備 份過的文件14在某些點(diǎn)因類似的原因被備份。
具體地, 一旦部分或完全地重建了備份文件14,或者一旦文件14被安裝在源 10處,那么這種文件14繼續(xù)以這種形式駐留在源10處,除非這種文件14被再備 份或備份(此后成為'再備份')。這種再備份是由某些事件觸發(fā)的,可能是例如 確定在源IO處需要空間、確定文件14沒有被訪問某個時間段等。此外,通過再備 份文件14,尤其在分支服務(wù)器10和集線器服務(wù)器18的環(huán)境中,在源10或接收器 18處文件14的任何改變可以分別被復(fù)制到接收器18或源10處,以保持文件14 最新。
在本發(fā)明的一個實(shí)施例中,依照再備份算法來執(zhí)行源IO處的再備份,再備份 算法考慮到諸如最近訪問時間、巻上的剩余自由空間、訪問數(shù)據(jù)的頻率、在別處發(fā)生的對文件14的修改和/或類似的因素??紤]到這些因素的再備份算法具有降低備 份文件14在被再備份后不久被再次重建的可能性的目的。因此,可以最小化(否 則為降低)這種備份和再備份所必須的帶寬。通常,雖然不是必須的,再備份算法
由源10處的應(yīng)用程序30或源10處的備份管理器28執(zhí)行,雖然其他實(shí)體可以執(zhí)行 這種再備份算法,而不會背離本發(fā)明的精神和范圍。
可至少部分基于可配置策略來定義用于再備份源10處的文件14的再備份算 法。具體地,至少可以部分基于可配置策略來觸發(fā)這種再備份算法,這種再備份算 法可至少部分基于可配置策略來決定再備份特定的文件14。在每個實(shí)例中,這種 策略可以由源IO處的用戶、由源10的管理員等配置。
結(jié)合再備份算法采用的可能的觸發(fā)參數(shù)包括但不限于
一當(dāng)預(yù)定時間段過去時激活的周期性觸發(fā)器;
一當(dāng)源10處的巻12的自由空間下降至某個量以下,或者當(dāng)在源10處巻12 處的已用空間超過某個量時激活的空間觸發(fā)器;
一當(dāng)預(yù)定時間段過去,但僅在源10處的自由空間下降至某個量以下或源處 的已用空間超過某個量時才激活的周期性一空間觸發(fā)器;
一當(dāng)備份過濾器26注意到文件系統(tǒng)16返回的完整巻錯誤以表示巻12沒有 剩余的自由空間時激活的完整巻觸發(fā)器;
一當(dāng)預(yù)定數(shù)量的字節(jié)被下載到源10時激活的字節(jié)下載觸發(fā)器;以及
一由用戶、管理員等激活的手動觸發(fā)器。
當(dāng)然,可以基于這種單個觸發(fā)器或觸發(fā)器的組合發(fā)生再備份算法的觸發(fā)。 用于判定是否再備份特定文件14的可能的選擇因素包括但不限于 一上次文件14被訪問的時間,由此具有較早的訪問時間的文件14會被優(yōu)先 再備份;
一與文件14相關(guān)聯(lián)的下載時間,由此具有較早的下載時間的文件14會被優(yōu) 先再備份;
一文件14的文件大小,由此較大的文件14會被優(yōu)先再備份; 一文件14的文件類型,由此具有特定擴(kuò)展的文件14會被優(yōu)先再備份; 一文件14的文件屬性,由此例如,作為系統(tǒng)文件的文件14不會被再備份, 而作為隱藏的文件14被再備份;
一是否存在多個類似的文件14,由此認(rèn)為是相似的文件14會被優(yōu)先再備份;
一是否在接收器18處修改過文件14,由此這種文件14被再備份以移除其中可能被認(rèn)為過期的數(shù)據(jù)20;
一文件14是否已經(jīng)在源10處被修改過或被創(chuàng)建,由此這種文件14可能或 者不會被選擇作再備份以保持這種修改/創(chuàng)建,或者可以被選擇再備份以將這種修 改/創(chuàng)建復(fù)制到接收器18;
_在特定時間段訪問文件14的頻率;
一在特定時間段訪問文件14的次數(shù);
一諸如在相同的文件夾中、在相同的內(nèi)容集合中的其他相關(guān)文件14的訪問
頻率/訪問次數(shù)/最近訪問時間等;
一諸如通過列表、方法、XML文件等方式的特定文件或文件類型的外部輸入
被優(yōu)先再備份。
當(dāng)然,再備份算法可采用這種選擇因素中的單個選擇因素或其組合。
注意,被選擇用于再備份的文件14實(shí)際上可以被再備份,或者而是僅被指定 為優(yōu)先再備份的候選者。尤其在后一種情況下,只有在達(dá)到特定的停止觸發(fā)器時才 執(zhí)行再備份。如可以理解的,這種停止觸發(fā)器可對應(yīng)于開始再備份會話的觸發(fā)參數(shù), 可對應(yīng)于選擇候選文件14以供再備份的標(biāo)準(zhǔn),或者可以是另一觸發(fā)器而不會背離 本發(fā)明的精神和范圍。
也要注意,在只有達(dá)到某個停止觸發(fā)器時才執(zhí)行再備份的情況下,基于作為 要被再備份以消除文件14的再備份的候選者的文件14的選擇標(biāo)準(zhǔn)是可行的。例如, 如果基于在源IO處具有至少兩周的上次訪問時間來選擇候選文件14,則可行的是 首先再備份具有大于兩個月的上次訪問時間的所有這種候選者,然后如果必須就再 備份具有大于一個月的上次訪問時間的所有候選者,然后如果必須就再備份三個星 期的等,直至激活停止觸發(fā)器。同樣地,如果基于至少具有IO兆字節(jié)的文件大小 來選擇候選文件14,則可行的是首先再備份文件大小大于1千兆字節(jié)的所有這種 候選則,接著如果必須就再備份文件大小大于100兆字節(jié)的所有這種候選者,然后 如果必須就再備份50兆字節(jié)的等,直至激活停止觸發(fā)器。如可以理解的,在任何 一種環(huán)境中,需要某些處理來創(chuàng)建候選文件14的列表,以對列表分類來生成一輪 或更多輪的再備份等。
也要注意,可以采用再備份以維護(hù)源10處和接收器18處文件14的一致性, 尤其是在不同版本的文件14位于兩個位置的情況下。因此,如果在源IO處重建了 文件14,并且修改了其數(shù)據(jù)20而沒有修改接收器18處對應(yīng)的數(shù)據(jù)20,則會執(zhí)行 再備份以將接收器18處的數(shù)據(jù)20替換成源10處的數(shù)據(jù)。同樣地,如果源10處的文件14的數(shù)據(jù)20沒有被修改,而接收器18處的相應(yīng)的數(shù)據(jù)20被修改,那么可以 執(zhí)行再備份以僅刪除源10處的數(shù)據(jù)20,并期望對這種文件的稍后的重建會將接收 器18處的數(shù)據(jù)20復(fù)制到源10處。當(dāng)然,如果源10處的文件14的數(shù)據(jù)20被修改, 并且也修改了接收器18處相應(yīng)的數(shù)據(jù)20,就會存在沖突,那么因此會協(xié)商適當(dāng)?shù)?沖突規(guī)則以確定是否是這樣,并且如果是這樣的話,如何再備份文件14。
總而言之,現(xiàn)在轉(zhuǎn)向圖10,可以依照再備份算法執(zhí)行對巻12上文件14的再 備份,其中這種再備份算法由某些實(shí)體用以下方式執(zhí)行。首先,再備份算法由某些 事件觸發(fā)(步驟1001),其中這種觸發(fā)器會由實(shí)體內(nèi)部地生成或者由這種實(shí)體外 部地接收。在這種觸發(fā)時,再備份算法于是基于某些選擇標(biāo)準(zhǔn)從完全和部分重建的 文件14和從未被備份的文件14中選擇文件14 (步驟1003)。
此時,再備份算法可以僅從再備份選定的文件14開始(步驟1005),或而是 將選定的文件14認(rèn)為是可能再備份的候選文件14(步驟1007)。在后一種情況下, 于是在一輪或多輪選擇要再備份的候選文件14直至激活停止觸發(fā)器。具體地,對 于每一輪,選擇一組候選文件14(步驟1009),這種選定的組被再備份(步驟1011), 并且作出是否己激活停止觸發(fā)器的判定。如果已經(jīng)激活,則過程結(jié)束(步驟1013)。 否則,過程通過返回到步驟1009處選擇另一組來繼續(xù)(步驟1015)。
通用備份
如本申請中迄今為止所描述的,在特定源10處備份的所有文件14被特別地 備份,使得其數(shù)據(jù)20駐留在單個接收器18處。然而,如可以理解的,情況可能是 在特定源10處每個備份文件14的數(shù)據(jù)20可以駐留在多個這種接收器18中的任何 一個,如圖11中所示。
具體地,如可以理解的,本發(fā)明的備份過濾器26無需被限制到與單個備份管 理器28—起工作以將來自文件14的數(shù)據(jù)20備份到單個接收器18。而是,備份過 濾器實(shí)際上與多個備份管理器28 —起工作,其中每個備份管理器28執(zhí)行與多個接 收器18中的特定的一個相關(guān)的備份功能。
舉例而言,在分支服務(wù)器10和集線器服務(wù)器18的環(huán)境中,特定的分支服務(wù) 器10可以與多個集線器服務(wù)器18交互。因此,可能是與特定的分支服務(wù)器10交 互的一個集線器服務(wù)器18具有來自第一源的數(shù)據(jù)20,而與這個特定的分支服務(wù)器 10交互的另一集線器服務(wù)器18具有來自第二源的數(shù)據(jù)20。同樣地,例如,在計算 設(shè)備IO和可選位置18的環(huán)境中,特定的計算設(shè)備IO可以將數(shù)據(jù)20存儲在多個可 選位置。因此,可能是特定的計算設(shè)備10的一個可選位置18被指定為存儲來自第一特定類型的文件14的數(shù)據(jù)20,而該特定的計算設(shè)備10的另一可選位置被指定 為存儲來自第二特定類型的文件14的數(shù)據(jù)20。當(dāng)然,所采用的接收器18的數(shù)目 以及在接收器18之間劃分?jǐn)?shù)據(jù)20的標(biāo)準(zhǔn)可以是任何適當(dāng)?shù)臄?shù)目和標(biāo)準(zhǔn),而不會背 離本發(fā)明的精神和范圍。
無論如何,如果對特定的源18要采用多個接收器18,那么需要一種機(jī)制來標(biāo) 識哪個接收器18具有來自源10的特定備份文件14的數(shù)據(jù)20,并標(biāo)識必須采用哪 個相應(yīng)的備份管理器28來訪問接收器18。因此,在本發(fā)明的一個實(shí)施例中,這種 標(biāo)識被維護(hù)在與這種特定文件14相關(guān)聯(lián)的備份信息24中,如圖11中所示。
結(jié)果是,當(dāng)遇到任何特定的備份文件14并從中讀取備份信息24時,備份過 濾器26可以從這種備份信息24獲取要結(jié)合該特定的備份文件14使用的備份服務(wù) 器28的標(biāo)識,并基于此與標(biāo)識的備份服務(wù)器28通信以適當(dāng)?shù)卦L問接收器18。于 是實(shí)際上,備份過濾器26對于所有的備份管理器28是通用的,并且經(jīng)標(biāo)識的備份 管理器28控制或'擁有,這種特定的備份文件14,因?yàn)閭浞葸^濾器26永遠(yuǎn)不應(yīng) 該與和這種特定備份文件14相關(guān)的任何其他備份管理器28通信。
假設(shè),每個備份管理器28包括與對應(yīng)于該備份管理器28的接收器18通信所 需的所有功能和信息,以便備份過濾器26無需關(guān)心這些問題。于是對于備份過濾 器26,與和特定備份文件14相關(guān)的經(jīng)標(biāo)識的備份服務(wù)器28通信是訪問相應(yīng)的接 收器18所需的全部,這種備份過濾器26實(shí)際上無需關(guān)心這種經(jīng)標(biāo)識的備份管理器 28如何與相應(yīng)的接收器18通信,經(jīng)標(biāo)識的備份管理器28如何定位相應(yīng)的接收器 18等。
類似于圖4和5中所示的過程,現(xiàn)在參考圖12,使用以下方式執(zhí)行對文件14 的通用備份和重建。假設(shè)這種備份是由具有特定標(biāo)識(ID)的特定備份管理器28 開始的,并且實(shí)際上由備份過濾器26執(zhí)行,這種備份管理器28因此將適當(dāng)?shù)膫浞?請求發(fā)送給具有ID的備份過濾器26和要備份的文件14的標(biāo)識(步驟1201),此 后備份過濾器26按需將數(shù)據(jù)20從14處移除(步驟1203)。備份過濾器26然后 通過其ID將這種按需移除的數(shù)據(jù)20轉(zhuǎn)發(fā)給請求的備份管理器28 (步驟1205), 備份管理器28于是基于可以這樣做并包含在這種備份管理器28中的任何協(xié)議將這 種已移除的數(shù)據(jù)轉(zhuǎn)發(fā)給相應(yīng)的接收器18。
注意在根據(jù)接收器18和文件14的類型這點(diǎn)上,備份管理器28實(shí)際上選擇不 將移除的數(shù)據(jù)發(fā)送給接收器18,諸如如果接收器18己只讀方式將在討論的文件14 復(fù)制到源IO。當(dāng)然,在這種情況下,可能是來自備份管理器28的備份請求通知備份過濾器實(shí)際上不執(zhí)行步驟1205,因?yàn)闆]有必要。
無論如何,如上所述,備份過濾器26通過設(shè)置'備份'屬性并添加備份信息 24來修改現(xiàn)在備份的文件的元數(shù)據(jù)22 (步驟1207)。重要的是,這種備份信息應(yīng) 該包括備份服務(wù)器28的ID,以供以后重建備份文件14時使用。因此,在稍后某 個時間,當(dāng)備份服務(wù)器28或應(yīng)用程序30請求訪問備份文件14的數(shù)據(jù)20時,該請 求最終到達(dá)備份過濾器26,如上所述(步驟1209),并且備份過濾器26定位文件 14的元數(shù)據(jù)22中的備份信息24 (步驟1211)。
再者,基于經(jīng)標(biāo)識的備份信息24來定位存儲在接收器18處的文件14的數(shù)據(jù) 20,雖然在該實(shí)例中備份過濾器26首先在備份信息24中定位負(fù)責(zé)備份文件14的 備份服務(wù)器28的ID (步驟1213),且使用這種ID將請求發(fā)送給相應(yīng)的備份管理 器28,以實(shí)際上從相應(yīng)的接收器18獲取數(shù)據(jù)20 (步驟1215)。假設(shè),備份管理 器28實(shí)際上從接收器18獲取數(shù)據(jù)20,并將其提供給備份過濾器26 (步驟1217), 備份過濾器于是將數(shù)據(jù)20重建為在討論的文件14 (步驟1219)。
結(jié)論
實(shí)現(xiàn)結(jié)合本發(fā)明所執(zhí)行的過程所需的編程是相對簡單的,并且對于程序設(shè)計 公眾應(yīng)該是顯而易見的。因此,這種編程沒有附在這里。那么,可用采用任何特定 的編程來實(shí)現(xiàn)本發(fā)明而不會背離其精神和范圍。
在以上描述中,可以看到本發(fā)明包括新穎而有用的方法和機(jī)制,使用這種方 法和機(jī)制可以復(fù)制或備份位于諸如本地巻12、計算設(shè)備10或分支服務(wù)器10的源 10處的文件14,以便其數(shù)據(jù)20被存儲在諸如可選位置18或集線器服務(wù)器18的接 收器18處,因此,如果需要的話,源處的文件14是可以被重建的減小或備份的形 式??砂葱栊纬珊椭亟ń?jīng)備份的文件14。
應(yīng)該理解,可以對上述實(shí)施例作出改變而不會背離其發(fā)明性的理念。于是 一般地,應(yīng)該理解,本發(fā)明因此不限于所揭示的特定實(shí)施例,它旨在覆蓋由所 附權(quán)利要求所定義的本發(fā)明的精神和范圍內(nèi)的修改。
權(quán)利要求
1. 一種與具有存儲卷的計算設(shè)備、管理所述存儲卷的文件系統(tǒng)以及由所述文件系統(tǒng)存儲在所述存儲卷上并由該文件系統(tǒng)訪問的多個文件有關(guān)的方法,每個文件被定義成包括數(shù)據(jù)和與該數(shù)據(jù)相關(guān)的元數(shù)據(jù),所述文件的數(shù)據(jù)的至少一部分已從所述文件移除并被存儲在多個可選位置中的一個,以便所述數(shù)據(jù)實(shí)質(zhì)上不會占據(jù)所述卷上的任何空間,而所述文件是減小的備份形式,所述計算設(shè)備還包括具有為所述多個可選位置的每一個的相應(yīng)的備份管理器,每個備份管理器被用于和與之對應(yīng)的可選位置通信,所述方法用于重建備份文件以供使用,并包含所述計算設(shè)備上的單個備份過濾器在所述備份文件的元數(shù)據(jù)中定位備份信息;在所述備份信息中定位所述計算設(shè)備的特定備份管理器的標(biāo)識,所述經(jīng)標(biāo)識的備份管理器負(fù)責(zé)所述備份文件;將一請求傳遞到所述經(jīng)標(biāo)識的備份管理器以獲取來自相應(yīng)的可選位置的所述備份文件的數(shù)據(jù),由此所述經(jīng)標(biāo)識的備份管理器實(shí)際上包含來自所述可選位置的請求的數(shù)據(jù);從所述經(jīng)標(biāo)識的備份管理器接收所述備份文件的所述請求的數(shù)據(jù);以及將所接收的數(shù)據(jù)重建為所述備份文件,由此單個備份過濾器對所述計算設(shè)備的所有備份管理器是通用的。
2. 如權(quán)利要求l所述的方法,其特征在于,包括將一請求發(fā)送給所述經(jīng)標(biāo)識 的備份管理器以從相應(yīng)的可選位置獲取所述備份文件的數(shù)據(jù)的一部分。
3. 如權(quán)利要求l所述的方法,其特征在于,包括將一請求發(fā)送給所述經(jīng)標(biāo)識 的備份管理器以從相應(yīng)的可選位置獲取所述經(jīng)備份文件的所有數(shù)據(jù)。
4. 如權(quán)利要求l所述的方法,其特征在于,所述計算設(shè)備是分支服務(wù)器,每 個可選位置是遠(yuǎn)離所述分支服務(wù)器的集線器服務(wù)器,所述集線器服務(wù)器為多個所述 分支服務(wù)器提供服務(wù)。
5. 如權(quán)利要求l所述的方法,其特征在于,駐留在所述巻上的所述備份文件 的元數(shù)據(jù)實(shí)質(zhì)上包括在備份之前所述文件的所有元數(shù)據(jù),也包括用于從所述可選位 置檢索所述文件的數(shù)據(jù)的備份信息。
6. 如權(quán)利要求l所述的方法,其特征在于,所述文件被定義成包括包含主要數(shù)據(jù)和次要數(shù)據(jù)的數(shù)據(jù),所述主要數(shù)據(jù)大于所述次要數(shù)據(jù),至少將所述文件的主要 數(shù)據(jù)從所述文件移除并將其存儲在所述可選位置。
7. —種與具有存儲巻的計算設(shè)備、管理所述存儲巻的文件系統(tǒng)以及由所述文件系統(tǒng)存儲在所述存儲巻上并由該文件系統(tǒng)訪問的多個文件有關(guān)的方法,每個文件 被定義成包括數(shù)據(jù)和與該數(shù)據(jù)相關(guān)的元數(shù)據(jù),所述文件的數(shù)據(jù)的至少一部分已從所 述文件移除并被存儲在多個可選位置中的一個,以便所述數(shù)據(jù)實(shí)質(zhì)上不會占據(jù)所述 巻上的任何空間,而所述文件是以減小的備份形式,所述計算設(shè)備還包括具有為所 述多個可選位置的每一個的相應(yīng)的備份管理器,每個備份管理器被用于和與之對應(yīng) 的可選位置通信,所述方法用于重建備份文件以供使用,并且包含 所述備份文件的元數(shù)據(jù)中定位備份信息;在所述備份信息中定位所述計算設(shè)備的特定備份管理器的標(biāo)識,所述經(jīng)標(biāo)識 的備份管理器負(fù)責(zé)所述備份文件;將一請求傳遞到所述經(jīng)標(biāo)識的備份管理器以獲取來自相應(yīng)可選位置的所述備 份文件的數(shù)據(jù),由此所述經(jīng)標(biāo)識的備份管理器實(shí)際上包含來自所述可選位置的請求 的數(shù)據(jù);從所述經(jīng)標(biāo)識的備份管理器接收所述備份文件的所述請求的數(shù)據(jù);以及 將所接收到的數(shù)據(jù)重建為所述備份文件。
8. 如權(quán)利要求7所述的方法,其特征在于,包括將一請求發(fā)送給所述經(jīng)標(biāo)識 的備份管理器以從相應(yīng)的可選位置獲取經(jīng)備份的文件的數(shù)據(jù)的一部分。
9. 如權(quán)利要求7所述的方法,其特征在于,包括將一請求發(fā)送給所述經(jīng)標(biāo)識 的備份管理器以從相應(yīng)的可選位置獲取經(jīng)備份的文件的所有數(shù)據(jù)。
10. 如權(quán)利要求7所述的方法,其特征在于,所述計算設(shè)備是分支服務(wù)器, 每個可選位置是遠(yuǎn)離所述分支服務(wù)器的集線器服務(wù)器,所述集線器服務(wù)器為多個所 述分支服務(wù)器提供服務(wù)。
11. 如權(quán)利要求7所述的方法,其特征在于,駐留在所述巻上的所述備份文 件的元數(shù)據(jù)實(shí)質(zhì)上包括在備份之前所述文件的所有元數(shù)據(jù),也包括用于從所述可選 位置檢索所述文件的數(shù)據(jù)的備份信息。
12. 如權(quán)利要求7所述的方法,其特征在于,所述文件被定義成包括包含主 要數(shù)據(jù)和次要數(shù)據(jù)的數(shù)據(jù),所述主要數(shù)據(jù)大于所述次要數(shù)據(jù),至少將所述文件的主 要數(shù)據(jù)從所述文件移除并將其存儲在所述可選位置。
13. —種計算機(jī)設(shè)備,具有存儲巻;管理所述存儲巻的文件系統(tǒng);以及由所述文件系統(tǒng)存儲在所述存儲巻上并由所述文件系統(tǒng)訪問的多個文件,每 個文件被定義成包括數(shù)據(jù)和與該數(shù)據(jù)相關(guān)的元數(shù)據(jù),所述文件的數(shù)據(jù)的至少一部分 從所述文件移除并被存儲在多個可選位置中的一個,以便所述數(shù)據(jù)實(shí)質(zhì)上不會占據(jù) 所述巻上的任何空間,而所述文件是以減小的備份形式,所述計算設(shè)備還包括為所述多個可選位置的每一個的相應(yīng)的備份管理器,每 個備份管理器被用于和與之對應(yīng)的可選位置通信,所述計算設(shè)備上的每個備份文件 在其元數(shù)據(jù)中具有備份信息,所述備份信息包括所述計算設(shè)備的特定備份管理器的標(biāo)識,所述經(jīng)標(biāo)識的備份管理器負(fù)責(zé)所述備份文件;由此,每個所述備份文件可通過在其備份信息中定位所述計算設(shè)備的特定備 份管理器的標(biāo)識來重建,所述經(jīng)標(biāo)識的備份管理器負(fù)責(zé)所述備份文件,并將請求傳 遞到所述經(jīng)標(biāo)識的備份管理器以獲取來自相應(yīng)的可選位置的所述備份文件的數(shù)據(jù), 所述經(jīng)標(biāo)識的備份管理器實(shí)際上從所述可選位置獲取這種請求的數(shù)據(jù),并且所述獲 取的數(shù)據(jù)重建為所述備份文件。
14. 如權(quán)利要求13所述的設(shè)備,其特征在于,所述計算設(shè)備是分支服務(wù)器, 每個可選位置是遠(yuǎn)離所述分支服務(wù)器的集線器服務(wù)器,所述集線器服務(wù)器為多個所 述分支服務(wù)器提供服務(wù)。
15. 如權(quán)利要求13所述的設(shè)備,其特征在于,駐留在所述巻上的所述備份文 件的元數(shù)據(jù)實(shí)質(zhì)上包括在備份之前所述文件的所有元數(shù)據(jù),也包括用于從所述可選 位置獲取所述文件的數(shù)據(jù)的備份信息。
16. 如權(quán)利要求13所述的設(shè)備,其特征在于,所述文件被定義成包括包含主 要數(shù)據(jù)和次要數(shù)據(jù)的數(shù)據(jù),所述主要數(shù)據(jù)大于所述次要數(shù)據(jù),至少將所述文件的主 要數(shù)據(jù)從所述文件移除并將其存儲在所述可選位置。
全文摘要
為了重建經(jīng)備份的文件以供使用,計算設(shè)備上的單個備份過濾器定位該經(jīng)備份的文件的元數(shù)據(jù)中的備份信息,并在該備份信息中定位該計算設(shè)備的特定備份管理器的標(biāo)識,其中經(jīng)標(biāo)識的備份管理器負(fù)責(zé)經(jīng)備份的文件。此后,該備份過濾器向經(jīng)標(biāo)識的備份管理器發(fā)送請求,以從相應(yīng)的可選位置獲取經(jīng)備份的文件的數(shù)據(jù),并且經(jīng)標(biāo)識的備份管理器實(shí)際上從這種可選位置獲取這種請求數(shù)據(jù)。一旦從經(jīng)標(biāo)識的備份管理器接收經(jīng)標(biāo)識的文件的請求數(shù)據(jù),該備份過濾器將接收到的數(shù)據(jù)重建為經(jīng)備份的文件。該單個備份過濾器對于該計算設(shè)備的所有備份管理器是通用的。
文檔編號G06F12/00GK101535964SQ200680025690
公開日2009年9月16日 申請日期2006年7月10日 優(yōu)先權(quán)日2005年7月14日
發(fā)明者A·H·莫漢德, C·F·羅伯特, G·瑟里亞納拉亞南, S·C·哈弗瓦拉 申請人:微軟公司