專利名稱:用于數(shù)據(jù)安全性的非易失性盤高速緩存的制作方法
用于數(shù)據(jù)安全性的非易失性盤高速緩存
北旦 冃眾
硬盤驅(qū)動(dòng)器可能失效,這是許多用戶定期備份他們的數(shù)據(jù)、或者至少應(yīng)備 份他們的數(shù)據(jù)的原因。然而,假定系統(tǒng)中具有單個(gè)硬盤驅(qū)動(dòng)器的當(dāng)代計(jì)算模型, 當(dāng)硬盤驅(qū)動(dòng)器失效時(shí),自最后一次備份以來寫入該硬盤驅(qū)動(dòng)器的任何數(shù)據(jù)很可 能丟失。
諸如RAID (冗余獨(dú)立磁盤陣列,其可包括盤鏡像概念).之類的解決方案 幫助保護(hù)免于這種數(shù)據(jù)丟失。然而,這些解決方案是昂貴的、可能是低效的且 可降低性能,并且因而對許多計(jì)算機(jī)用戶不是合乎需要的。
概述
提供本概述以便以簡化形式介紹將在以下的詳細(xì)描述中進(jìn)一步描述的一 些代表性概念。本概述并不旨在標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特 征,也不旨在用于以限制所要求保護(hù)的主題的范圍的任何方式來使用。
簡要地,在此所述的主題的各方面涉及一種技術(shù),通過該技術(shù),第一非易 失性存儲(chǔ)(例如,計(jì)算機(jī)硬盤驅(qū)動(dòng)器)保留數(shù)據(jù)的當(dāng)前狀態(tài),包括在第一數(shù)據(jù) 狀態(tài)之后所做出的改變,該改變包括作為數(shù)據(jù)備份操作的一部分保存的數(shù)據(jù)。 第二非易失性存儲(chǔ)(例如,閃存設(shè)備)保留在第一狀態(tài)之后所做的備份改變。 備份改變可與第一狀態(tài)中的數(shù)據(jù)組合以重新創(chuàng)建與當(dāng)前狀態(tài)相對應(yīng)的還原狀 態(tài)。因而,數(shù)據(jù)可通過讀取第二非易失性存儲(chǔ)中的備份改變數(shù)據(jù)以及讀取所保 留的備份數(shù)據(jù)來還原,藉此例如如果硬盤驅(qū)動(dòng)器失效,則在備份數(shù)據(jù)之后所做 的改變被保存而不丟失。
在一個(gè)示例實(shí)現(xiàn)中,計(jì)算設(shè)備具有保留數(shù)據(jù)的當(dāng)前狀態(tài)的主非易失性存 儲(chǔ)、以及保留從與先前保存的數(shù)據(jù)狀態(tài)相對應(yīng)的開始點(diǎn)起的對數(shù)據(jù)的改變的輔 助非易失性存儲(chǔ)。還原機(jī)制可通過將所保存數(shù)據(jù)狀態(tài)的數(shù)據(jù)與保留在輔助非易 失性存儲(chǔ)中的對數(shù)據(jù)的改變相組合來重新創(chuàng)建與當(dāng)前狀態(tài)相對應(yīng)的還原狀態(tài)。主非易失性存儲(chǔ)可以是第一硬盤驅(qū)動(dòng)器,并且輔助非易失性存儲(chǔ)可以是閃存、
電池備份RAM、另一硬盤驅(qū)動(dòng)器、靜態(tài)RAM、 EEPROM設(shè)備、或網(wǎng)絡(luò)存儲(chǔ) 位置、或其任何組合。輔助非易失性存儲(chǔ)可作為卡、作為主板組件、通過有線 連接、或者通過無線連接、或者通過其任何組合,經(jīng)由通用串行總線設(shè)備耦合 到計(jì)算設(shè)備。
在一個(gè)示例實(shí)現(xiàn)中,備份改變數(shù)據(jù)可與使數(shù)據(jù)與存儲(chǔ)設(shè)備上的至少一個(gè)塊 (例如,分配單元)相關(guān)聯(lián)的元數(shù)據(jù)一起保留。替換地或附加地,備份改變數(shù) 據(jù)可與使數(shù)據(jù)與存儲(chǔ)設(shè)備上的文件的至少一部分相關(guān)聯(lián)的元數(shù)據(jù)一起保留。備 份改變可被過濾,以使僅某些寫作為備份改變數(shù)據(jù)來保留。
更進(jìn)一步地,在一個(gè)示例實(shí)現(xiàn)中,讀請求可至少部分地通過從第二非易失 性存儲(chǔ)中讀取數(shù)據(jù)來滿足。性能高速緩存(例如,磁盤高速緩存)也可位于非 易失性存儲(chǔ)上。備份改變數(shù)據(jù)空間可在需要時(shí)增長到性能高速緩存空間中。
結(jié)合附圖閱讀以下詳細(xì)描述,本發(fā)明的其他優(yōu)點(diǎn)會(huì)變得顯而易見。
附圖簡述
作為示例而非限制,在附圖中示出了本發(fā)明,附圖中相同的附圖標(biāo)記指示 相同或相似的元素,附圖中-
圖1示出了可以將本發(fā)明的各方面并入其中的通用計(jì)算環(huán)境的說明性示例。
圖2是寫請求由常規(guī)硬盤存儲(chǔ)裝置處理并在塊(分配單元)級(jí)安全備份到 非易失性存儲(chǔ)器的示例表示。
圖3是寫請求由常規(guī)硬盤存儲(chǔ)裝置處理并在文件級(jí)安全備份到非易失性 存儲(chǔ)器的示例表示。
圖4A-4C是在寫和其它事件隨時(shí)間發(fā)生時(shí)非易失性存儲(chǔ)器可如何在備份 安全性部分與性能部分之間分配的示例表示。
圖5是文件級(jí)改變備份驅(qū)動(dòng)程序和性能高速緩存驅(qū)動(dòng)程序的示例表示。
圖6是表示使用來自非易失性的安全備份數(shù)據(jù)和最后一次備份數(shù)據(jù)來重 新創(chuàng)建自最后一次完全備份以來的硬盤驅(qū)動(dòng)器狀態(tài)的示例還原操作的框圖。
圖7是示出可采用來將寫數(shù)據(jù)備份到非易失性存儲(chǔ)器的示例步驟的流程圖。
圖8是示出可采用來從易失性存儲(chǔ)器以及用于提高性能的硬盤驅(qū)動(dòng)器讀 取數(shù)據(jù)的示例步驟的流程圖。
圖9是示出可采用來從所備份數(shù)據(jù)和非易失性存儲(chǔ)器的備份改變數(shù)據(jù)還 原數(shù)據(jù)的示例步驟的流程圖。
詳細(xì)描述
在此所述的技術(shù)的各方面一般涉及非易失性存儲(chǔ)器的使用從而提供保存 已在硬盤驅(qū)動(dòng)器備份之間改變的數(shù)據(jù)的相對便宜且穩(wěn)健的數(shù)據(jù)安全性解決方 案。在硬盤驅(qū)動(dòng)器失效(或者諸如對于膝上型計(jì)算機(jī)的被盜硬盤驅(qū)動(dòng)器)的情 況下,則所備份數(shù)據(jù)改變可與最后一次硬盤驅(qū)動(dòng)器數(shù)據(jù)備份相組合以將數(shù)據(jù)還 原到其當(dāng)前狀態(tài)。如將理解的,本技術(shù)還具有允許性能增強(qiáng)的額外益處。
在一個(gè)示例實(shí)現(xiàn)中,所改變的數(shù)據(jù)通過將該數(shù)據(jù)寫入諸如閃存設(shè)備之類的 非易失性存儲(chǔ)器來同時(shí)備份。然而,如將理解的,任何類型的非易失性存儲(chǔ)器
將足夠作為改變備份介質(zhì),包括電池備份RAM、另一硬盤驅(qū)動(dòng)器、靜態(tài)RAM、 EEPROM設(shè)備、網(wǎng)絡(luò)存儲(chǔ)位置等等。此外,包括不同類型介質(zhì)的多個(gè)備份介 質(zhì)可被組合在同一計(jì)算機(jī)系統(tǒng)中。
更進(jìn)一步地,雖然如在此所述地可被備份的改變數(shù)據(jù)的單元的示例包括文 件、文件的各部分、或盤分配單元(例如,在此稱為塊的扇區(qū)或簇),但是不 要求使用任何特定單元,并且實(shí)際上,各種類型的單元可被混合在同一備份介 質(zhì)上,諸如將整個(gè)文件作為一個(gè)單元來備份、將一些塊作為其它單元來備份等 等。此外,不是每個(gè)寫入盤的每一改變都需要被備份;例如,用戶可設(shè)置過濾 器以使僅寫入某一目錄組的改變被同時(shí)備份到非易失性存儲(chǔ)器,而其它改變不 被備份。
如此,本發(fā)明不限于在此所描述的任何特定實(shí)施例、方面、概念、結(jié)構(gòu)、 功能和/或示例。相反,在此所描述的實(shí)施例、方面、概念、結(jié)構(gòu)、功能和/或 示例中的任何一個(gè)都是非限制性的,并且本發(fā)明可以按一般在計(jì)算和數(shù)據(jù)安全 性中提供益處和優(yōu)點(diǎn)的各種方式來使用。
圖1示出一示例框圖,其中通用計(jì)算機(jī)系統(tǒng)110包括耦合到南橋芯片114
7的非易失性存儲(chǔ)器112,該南橋芯片114又耦合到其它常規(guī)計(jì)算機(jī)系統(tǒng)組件。
典型地,圖1的示例計(jì)算機(jī)系統(tǒng)110包括經(jīng)由北橋芯片118耦合到RAM 120 和圖形處理單元(GPU/卡)122的處理單元(CPU) 116。同樣典型地,南橋 芯片114被示為連接到用于遠(yuǎn)程連接的網(wǎng)絡(luò)接口卡(NIC) 124、連接到硬盤驅(qū) 動(dòng)器126、以及連接到用于設(shè)備連接的其它端口 128。
注意,如由圖2中的虛線所指示地,非易失性存儲(chǔ)器112可替換地通過諸 如通用串行總線(USB)存儲(chǔ)設(shè)備接口之類的這種端口 128連接。非易失性存 儲(chǔ)器112可作為卡(例如,外圍部件互連即PCI、 PCI express、 PCMCIA)來 連接,可內(nèi)置到計(jì)算機(jī)系統(tǒng)主板,或者可以用基本上任何其它方式來耦合,包 括經(jīng)由網(wǎng)絡(luò)連接、火線、藍(lán)牙②、紅外線、串行端口、并行端口等等。更進(jìn)一 步地,如以上所提及地,在單個(gè)計(jì)算機(jī)系統(tǒng)中可存在多個(gè)非易失性存儲(chǔ)器類型。
注意,圖l僅是一個(gè)示例體系結(jié)構(gòu);其它替換體系結(jié)構(gòu)可包括使非易失性 存儲(chǔ)器鏈接到北橋(NB),諸如電池備份RAM的一部分。
如以上所描述地,與自從某一先前所保存的狀態(tài)(例如,先前的硬盤備份) 以來的硬盤寫相對應(yīng)的改變被存儲(chǔ)在非易失性存儲(chǔ)器112中。如圖2中所表示 地,在一個(gè)示例替換實(shí)現(xiàn)中,改變備份可在分配單元、或塊級(jí)發(fā)生。更具體地, 當(dāng)寫請求正待決時(shí),寫請求數(shù)據(jù)230在實(shí)際被寫入硬盤驅(qū)動(dòng)器126之前被發(fā)送 通過多個(gè)驅(qū)動(dòng)程序。該請求可以采用通過驅(qū)動(dòng)程序棧的I/0請求分組,即IRP 的形式,或者可由驅(qū)動(dòng)程序管理器體系結(jié)構(gòu)來控制,該驅(qū)動(dòng)程序管理器體系結(jié) 構(gòu)以受管的順序?qū)RP或其它數(shù)據(jù)結(jié)構(gòu)選擇性地路由到每個(gè)驅(qū)動(dòng)程序并且處 理所返回的數(shù)據(jù)。無論如何,要被寫入硬盤驅(qū)動(dòng)器126的數(shù)據(jù)230可在其正被 寫入之前由一個(gè)或多個(gè)驅(qū)動(dòng)程序處理。
在圖2的示例中,如已知地,文件系統(tǒng)232將與指定文件位置處的數(shù)據(jù)相 對應(yīng)的寫請求映射到與硬盤驅(qū)動(dòng)器格式化相對應(yīng)的各個(gè)塊(例如,簇或扇區(qū)), 并且經(jīng)由巻管理器234將文件數(shù)據(jù)寫入那些塊。文件系統(tǒng)232跟蹤該映射(例 如,在文件分配表或主文件表中),以使適當(dāng)?shù)臄?shù)據(jù)被定位用于對指定文件位 置處的數(shù)據(jù)的讀請求。
為安全地備份與自從最后一個(gè)狀態(tài)以來的改變相對應(yīng)的塊級(jí)寫入(例如, 基于實(shí)用程序的硬盤驅(qū)動(dòng)器備份),在塊級(jí)操作的改變備份驅(qū)動(dòng)程序236將寫數(shù)據(jù)230復(fù)制到非易失性存儲(chǔ)器112。對非易失性存儲(chǔ)器112的每一次寫都經(jīng)
由元數(shù)據(jù)240來跟蹤,藉此寫入元數(shù)據(jù)的數(shù)據(jù)242可被適當(dāng)?shù)刈x回。雖然可以 使用各種技術(shù)來跟蹤這些寫,諸如伴隨每組寫入的數(shù)據(jù)的頭部,但是圖2例示 了其中元數(shù)據(jù)240記錄硬盤驅(qū)動(dòng)器上的塊號(hào)以及其在非易失性存儲(chǔ)器112中的 相應(yīng)位置的機(jī)制。
如可容易地理解的,塊級(jí)改變備份的一個(gè)優(yōu)點(diǎn)是它通過將改變應(yīng)用于在最 后一次全備份時(shí)保存的數(shù)據(jù)來基本使硬盤驅(qū)動(dòng)器能被精確地重新創(chuàng)建在另一 硬盤驅(qū)動(dòng)器上。盡管如此,也可能在功能上(而非精確地)重新創(chuàng)建硬盤驅(qū)動(dòng) 器,諸如通過選擇性地復(fù)制某些所改變的數(shù)據(jù),而不復(fù)制頻繁改變但與存儲(chǔ)在 硬盤驅(qū)動(dòng)器上的程序和用戶數(shù)據(jù)不相關(guān)的諸如日志、某些元數(shù)據(jù)等其它數(shù)據(jù)。 為減少所復(fù)制的數(shù)據(jù)量,可執(zhí)行塊級(jí)過濾,諸如不備份已知對在功能上重新創(chuàng) 建硬盤驅(qū)動(dòng)器不必要的塊。用戶模式改變備份軟件244在圖2中示出,諸如向 用戶提供界面以配置設(shè)置的軟件,例如排除可從中定位相應(yīng)塊用于塊級(jí)過濾的 某些類型的數(shù)據(jù)。軟件244還可允許用戶指定塊級(jí)備份(相對于以下所描述的 文件級(jí)改變備份和閾值)以及控制任何其它改變備份變量(例如,添加或調(diào)整 非易失性空間)。
塊級(jí)改變備份的缺點(diǎn)是用戶可能高速緩存不為其特定用途所需的許多改 變,即使采用了相對復(fù)雜的塊級(jí)過濾。例如,用戶可能希望來自工作文件的數(shù) 據(jù)被備份,而不是與所記錄的電視演出、游戲文件等相對應(yīng)的數(shù)據(jù)改變。如此, 一種替換數(shù)據(jù)改變備份機(jī)制執(zhí)行文件級(jí)改變備份,在文件級(jí)改變備份中僅對所 選文件(例如,由其擴(kuò)展名來標(biāo)識(shí))和/或目錄的改變被備份。
圖3例示文件級(jí)改變備份概念,其中要寫入的數(shù)據(jù)125在它到達(dá)文件系統(tǒng) 232之前被文件級(jí)改變備份驅(qū)動(dòng)程序336復(fù)制。如已知地,數(shù)據(jù)寫附帶有包括 文件標(biāo)識(shí)符、對文件的偏移量、以及寫大小的元數(shù)據(jù)。如可容易地理解的,該 文件元數(shù)據(jù)可以是用來跟蹤復(fù)制到非易失性存儲(chǔ)器112中的一個(gè)或一組位置的 數(shù)據(jù)342的元數(shù)據(jù)340的基礎(chǔ)。此外,用戶模式改變備份軟件344在圖3中示 出,諸如向用戶提供界面以選擇文件、文件類型和/或目錄來進(jìn)行文件級(jí)包括或 排除過濾的軟件;該軟件344還可使用戶能指定塊級(jí)對文件級(jí)改變備份,設(shè)置 閾值(以下所述),控制其它變量等等。
9非易失性存儲(chǔ)器112不需要專用于改變備份,而是部分地可用于諸如用作 磁盤驅(qū)動(dòng)器之類的常規(guī)用途、以及用于新用途??臻g可針對每一用途來分配, 例如四千兆字節(jié)閃存設(shè)備可具有一千兆字節(jié)用于盤驅(qū)動(dòng)器以及三千兆字節(jié)用 于備份改變存儲(chǔ)。重新分配是可能的,然而一旦空間被用在盤驅(qū)動(dòng)器或備份改 變存儲(chǔ)中,該空間不能被重新分配用于另一用途直到該空間被釋放,否則其相 應(yīng)文件數(shù)據(jù)或備份改變數(shù)據(jù)將丟失。
一種使用非易失性存儲(chǔ)器的新技術(shù)是通過使非易失性存儲(chǔ)器用作盤高速 緩存來提高計(jì)算機(jī)系統(tǒng)性能。為此,塊(例如,扇區(qū))在寫請求時(shí)被復(fù)制到非 易失性存儲(chǔ)器,并且在可用時(shí),在讀請求時(shí)從該非易失性存儲(chǔ)器讀回。如所理 解地,這相比常規(guī)盤訪問要快得多,從而提供顯著的性能改進(jìn)。
關(guān)于在同一設(shè)備(或一組設(shè)備)上組合性能高速緩存和備份改變數(shù)據(jù),動(dòng) 態(tài)重新分配通過在性能高速緩存中釋放存儲(chǔ)備份改變數(shù)據(jù)所需的空間而是可 能的。在需要空間并且空間已被轉(zhuǎn)儲(chǔ)清除到磁盤時(shí),性能高速緩存數(shù)據(jù)可如同 任何其它高速緩存的數(shù)據(jù)一樣被丟棄。注意一旦被備份,改變數(shù)據(jù)就還可被用 于性能增益,因?yàn)楦淖償?shù)據(jù)還可用于在非易失性存儲(chǔ)器112上的讀訪問。然而, 所備份的改變數(shù)據(jù)例如在從許多寫中被過濾時(shí)可以僅是用戶的總數(shù)據(jù)寫的子 集,并且因而保留性能高速緩存在非易失性存儲(chǔ)器空間否則不為改變數(shù)據(jù)備份 所需要時(shí)仍具有重大價(jià)值。
圖4A-4C示出將改變備份數(shù)據(jù)部分440增長到可供使用或由非易失性存 儲(chǔ)器112的性能高速緩存部分442先前所使用的空間的概念。如在圖4A至4B 的部分的大小中的變化可見,由于對于改變寫需要更多的備份空間,所以改變 備份部分440隨著性能高速緩存部分442收縮而增長,通常直到非易失性存儲(chǔ) 器112中沒有剩余任何空間為止(如以下所述)。如圖4C所表示地,在改變 備份部分440不再為存儲(chǔ)改變數(shù)據(jù)所需要時(shí),性能高速緩存部分442可被返回 給非易失性存儲(chǔ)器112空間的更大的部分(例如,所有或者幾乎所有部分,如 果一些小空間總是為改變備份扇區(qū)440所保存的話)??蔀楦淖儌浞萆葏^(qū)440 定義某一最小空間量。該重新分配可在硬盤的下一基于實(shí)用程序的備份操作之 后,或者在改變備份部分440被轉(zhuǎn)移到另一介質(zhì)之后,如以下所描述地。
如可容易地理解的,塊級(jí)性能高速緩存和塊級(jí)改變備份可被合并到同一模塊,例如同一驅(qū)動(dòng)程序中。確實(shí),如果塊級(jí)改變備份不執(zhí)行過濾操作,則處理 寫時(shí)沒有真實(shí)差異存在。然而,與性能高速緩存不同,為在硬盤驅(qū)動(dòng)器失效時(shí)
保護(hù)免于數(shù)據(jù)丟失,改變備份軟件需要在高速緩存滿時(shí)通知用戶,在該情況中 用戶需要采取行動(dòng)來保存未來改變,例如執(zhí)行基于實(shí)用程序的硬盤驅(qū)動(dòng)器備 份,將非易失性存儲(chǔ)器內(nèi)容轉(zhuǎn)移到另一存儲(chǔ),添加更多的存儲(chǔ),壓縮數(shù)據(jù)等。 圖5示出與性能高速緩存驅(qū)動(dòng)程序537 (這還可包括塊級(jí)改變備份驅(qū)動(dòng)程
序)共存的文件級(jí)改變備份驅(qū)動(dòng)程序536的概念。在圖5中,改變備份驅(qū)動(dòng)程 序536經(jīng)由過濾操作來有效地備份僅與一組指定文件、 一組指定目錄等相對應(yīng) 的那些改變。如此,并非所有改變都被備份,并且改變備份部分440 (圖4A, 與非易失性存儲(chǔ)器112A的圖5中的元數(shù)據(jù)540A和數(shù)據(jù)542B區(qū)域相對應(yīng))不 會(huì)像在塊級(jí)改變數(shù)據(jù)備份情況下增長得那么快。
在此示例中,性能級(jí)高速緩存在塊級(jí)經(jīng)由性能高速緩存驅(qū)動(dòng)程序537發(fā) 生。這可以是高速緩存到其非易失性存儲(chǔ)器112B的其自己的區(qū)域540A和 540B,這些區(qū)域可收縮。注意在一個(gè)替換中,在文件級(jí)的任何備份改變數(shù)據(jù)也 被寫到(作為在其相應(yīng)塊中的數(shù)據(jù))性能高速緩存。出于效率起見,改變備份 驅(qū)動(dòng)程序536可與性能高速緩存驅(qū)動(dòng)程序537通信以避免將同一數(shù)據(jù)兩次寫到 非易失性存儲(chǔ)器112中。
到非易失性存儲(chǔ)的改變備份的各種其它方面可被用來改進(jìn)總的用戶體驗(yàn)。 例如,數(shù)據(jù)加密和解密可在更高的驅(qū)動(dòng)程序級(jí)對備份驅(qū)動(dòng)程序透明地發(fā)生。出 于安全性起見,解密密鑰可與大量備份數(shù)據(jù)而非與非易失性存儲(chǔ)一起保持,因 為如果非易失性存儲(chǔ)是可移動(dòng)的并且丟失或被盜,則其上的任何數(shù)據(jù)在沒有密 鑰附帶在該加密數(shù)據(jù)上的情況下被加密。
用戶還可確定數(shù)據(jù)安全性的級(jí)別。例如,用戶可采用鏡像或類似的RAID 技術(shù)將改變數(shù)據(jù)散布在多個(gè)(便宜的)非易失性存儲(chǔ)設(shè)備上。多個(gè)非易失性存 儲(chǔ)設(shè)備還可出于性能原因而使用,例如提供并行數(shù)據(jù)訪問。
在管理設(shè)備的軟件建議執(zhí)行硬盤驅(qū)動(dòng)器備份或?qū)浞莞淖冝D(zhuǎn)移到另一介 質(zhì)之前,可設(shè)置諸如可被備份改變消耗的空間量之類的閾值。更仔細(xì)的用戶, 或者那些往往會(huì)執(zhí)行大尺寸改變的用戶可設(shè)置閾值警告級(jí)別以提供充足的預(yù) 先警告。改變可對每一用戶備份。例如,用戶可使非易失性存儲(chǔ)僅備份該用戶的改 變,而非另一用戶的改變,而不管改變的文件的所有權(quán)??刹捎米R(shí)別(例如, 作為元數(shù)據(jù)的一部分)當(dāng)前用戶的改變的過濾器,藉此用戶可僅用自最后一次 備份以來的用戶的改變來重新創(chuàng)建硬盤狀態(tài)。替換地,非易失性存儲(chǔ)中的元數(shù) 據(jù)可被用來保留哪一用戶做了改變以便稍后在改變中進(jìn)行區(qū)分。這使用戶能在 某人也對共享文件作出改變(例如,破壞)的情況下還原他或她自己的改變。
轉(zhuǎn)到從非易失性存儲(chǔ)還原數(shù)據(jù)的考慮,圖6示出還原到新的硬盤驅(qū)動(dòng)器 670的示例。盡管如此,可以理解,如果硬盤驅(qū)動(dòng)器失效不是問題,諸如如果 用戶的數(shù)據(jù)或共享數(shù)據(jù)被另一用戶破壞,如以上所描述地,則還原可以是對同 一硬盤驅(qū)動(dòng)器的(重新格式化或?qū)ζ渖系目臻e空間)。
為還原,最后一次硬盤驅(qū)動(dòng)器備份數(shù)據(jù)672 (例如,在硬盤驅(qū)動(dòng)器狀態(tài)l 由某一備份實(shí)用程序674等先前備份的,其在先前硬盤驅(qū)動(dòng)器126失效的情況 下可不再存在)由還原實(shí)用程序676寫入新的硬盤驅(qū)動(dòng)器670,且來自非易失 性存儲(chǔ)器112的改變被應(yīng)用來更新該新的硬盤驅(qū)動(dòng)器670以重新創(chuàng)建其最后一 個(gè)狀態(tài),狀態(tài)2。如以上所描述地,此基本上可以是精確的重新創(chuàng)建、功能上 的重新創(chuàng)建、或者指定數(shù)據(jù)的重新創(chuàng)建。
還在圖6中表示的是可存在的一個(gè)或多個(gè)增量備份數(shù)據(jù)集678的概念。更 具體地,用戶可將非易失性存儲(chǔ)器112的內(nèi)容轉(zhuǎn)移到包含備份改變的增量備份 數(shù)據(jù)組,例如在非易失性存儲(chǔ)器變得充滿備份改變時(shí)。與備份狀態(tài)la相對應(yīng) 的該數(shù)據(jù)集或數(shù)據(jù)集的組678可被存儲(chǔ)在任何地方,但是出于安全性的目的, 由于失效或丟失的可能性,將不被存儲(chǔ)在硬盤驅(qū)動(dòng)器上,(雖然出于從數(shù)據(jù)破 壞恢復(fù)的目的,它可被存儲(chǔ)在硬盤驅(qū)動(dòng)器上)。例如,可選擇網(wǎng)絡(luò)轉(zhuǎn)儲(chǔ)清除以 將非易失性存儲(chǔ)器112自動(dòng)地轉(zhuǎn)移到網(wǎng)絡(luò)存儲(chǔ),這可保持最后一次硬盤驅(qū)動(dòng)器 備份數(shù)據(jù)672與一個(gè)或多個(gè)增量備份數(shù)據(jù)集673相關(guān)聯(lián)。光學(xué)介質(zhì)轉(zhuǎn)儲(chǔ)清除是 另一替換方案,其可被插入不同的閃存設(shè)備,從而知道新的閃存設(shè)備相對于先 前的增量備份數(shù)據(jù)678是增量的,而不與最后一次硬盤驅(qū)動(dòng)器備份數(shù)據(jù)672直 接相關(guān)。
可保留任何數(shù)目的增量備份數(shù)據(jù)集678,只要保持順序。在還原之后,所 備份硬盤驅(qū)動(dòng)器數(shù)據(jù)(狀態(tài)l)與任何增量備份數(shù)據(jù)集678中的改變一起與在
12開始在非易失性存儲(chǔ)器112上寫入改變之前的狀態(tài)(在此一起稱為狀態(tài)la且 保持順序)相對應(yīng)。注意, 一種還原方式是寫入硬盤驅(qū)動(dòng)器內(nèi)容,并且然后在 改變發(fā)生時(shí)按順序通過任何增量備份數(shù)據(jù)集并且然后以非易失性存儲(chǔ)器112中 的改變結(jié)束來蓋新寫數(shù)據(jù)。 一種替換的還原方式是一次填充每一塊,從可針對 該塊找到的最新近的改變開始,在需要時(shí)在時(shí)間上返回以找到最后一次改變
(如果不存在更新近的改變,則一直到狀態(tài)1硬盤驅(qū)動(dòng)器備份數(shù)據(jù)672)。注 意在該后一還原替換方案中,非易失性存儲(chǔ)器112中的改變被首先還原。
又一方面涉及在非易失性存儲(chǔ)設(shè)備不可用時(shí),例如被用戶拆下或?yàn)闈M時(shí), 在硬盤驅(qū)動(dòng)器自身上高速緩存改變。然后,在稍后可用后,(例如,重新附連 或轉(zhuǎn)移到另一介質(zhì)),那些高速緩存的改變可被同步回到非易失性存儲(chǔ)器。這 在完全同步之前帶有硬盤驅(qū)動(dòng)器失效或丟失的奉獻(xiàn),但是仍提供益處。
作為示例,在塊級(jí),改變備份驅(qū)動(dòng)程序或類似的組件可簡單地記錄哪些塊 關(guān)于需要被同步被改變(變臟)。類似地,在文件級(jí),改變備份驅(qū)動(dòng)程序可跟 蹤相關(guān)寫的原數(shù)據(jù)。當(dāng)非易失性存儲(chǔ)器再次變得可用時(shí),同步可以是自動(dòng)的。 通過使用事務(wù)概念來分別同步每一塊或各塊的子集、或文件的一部分或各部 分,部分同步在完全同步不能在單個(gè)會(huì)話中完成時(shí)是可能的。
用戶可以用各種方式被通知關(guān)于改變備份數(shù)據(jù)的狀態(tài),包括經(jīng)由文本、圖 形等等。例如,在計(jì)算機(jī)顯示的圖標(biāo)上或其它地方上的綠色指示器(例如,在
非易失性存儲(chǔ)器設(shè)備上的LED)可指示所有相關(guān)改變已被備份并且數(shù)據(jù)是安全 的。黃色指示器可指示所有相關(guān)改變己被備份,但是非易失性存儲(chǔ)器設(shè)備的空 間不夠,并且硬盤驅(qū)動(dòng)器備份或增量轉(zhuǎn)移應(yīng)被執(zhí)行。紅色指示器可指示例如由 于S間限制、設(shè)備己被移除等等所有改變尚未被備份,雖然如以上所描述地這 些改變可被保留在硬盤驅(qū)動(dòng)器上以用于同步。
轉(zhuǎn)到處理寫數(shù)據(jù)的示例性說明,圖7是示出例如在改變備份驅(qū)動(dòng)程序上可 被釆用處理寫數(shù)據(jù)的可能步驟的流程圖。步驟702表示接收寫數(shù)據(jù),且步驟704 表示對作為過濾的結(jié)果被排除在改變備份存儲(chǔ)之外的寫數(shù)據(jù)的任何一個(gè)進(jìn)行 性能高速緩存。
如果至少一些寫數(shù)據(jù)要作為改變來備份,則步驟706將其大小與非易失性 存儲(chǔ)器上的空閑空間量進(jìn)行比較。該空閑空間包括任何性能高速緩存空間,這縮。更進(jìn)一步地,步驟706包括如果非易失性存儲(chǔ) 已被移除,在該情況中空閑空間為零。如果空間不足,則改變不能被備份,并 且經(jīng)由步驟720通知用戶該數(shù)據(jù)不是安全的。雖然未被具體示出,但是可理解 如以上描述地,未備份的數(shù)據(jù)改變可被記錄或者以其他方式保存在硬盤驅(qū)動(dòng)器 上,以使同步可稍后在空間可用/非易失性存儲(chǔ)器設(shè)備被重新附連時(shí)發(fā)生。
如果由于性能高速緩存空間而在非易失性存儲(chǔ)器中有足夠空間可用,但是 在備份部分中空間不足,則步驟708和710通過收縮性能高速緩存空間來增長 備份部分空間。步驟712然后將適當(dāng)?shù)臄?shù)據(jù)和元數(shù)據(jù)寫入備份部分。注意,數(shù) 據(jù)可蓋寫已存在的相應(yīng)數(shù)據(jù)(例如,在同一塊或文件部分中),這或者通過直 接蓋寫或者通過寫入新空間并釋放舊空間來進(jìn)行。更進(jìn)一步地,注意寫錯(cuò)誤等 可以用已知方式來處理。
步驟714評估在寫之后,空閑空間量是否接近閾值限制,該閾值限制可以 是用戶可配置的。如果是,則警告用戶備份空間不夠,即很快需要硬盤驅(qū)動(dòng)器 備份或轉(zhuǎn)移到增量數(shù)據(jù)集以避免數(shù)據(jù)丟失的可能性。
圖8表示可被采用來通過在可能時(shí)從非易失性存儲(chǔ)器讀取以有效方式處 理讀請求的示例步驟,各步驟在接收讀請求的步驟802開始。歩驟804評估所 請求的數(shù)據(jù)是否在備份部分中。注意,這往往是頻繁使用的數(shù)據(jù),并且因而通 常是存在的。替換地,可首先對性能部分評估所請求數(shù)據(jù)是否存在于其中。
在步驟804,如果數(shù)據(jù)的至少一些存在于改變備份部分中,則執(zhí)行步驟806 以將該數(shù)據(jù)讀入讀緩沖器,否則執(zhí)行步驟812以在性能高速緩存中尋找所請求 數(shù)據(jù)。如果在步驟806讀取并且該請求如步驟808所示地被完全滿足,則在步 驟824返回具有適當(dāng)成功狀態(tài)的讀緩沖器。
如果沒有或僅一部分?jǐn)?shù)據(jù)可從改變備份部分中獲得,則步驟810將原始請 求修改成尋找缺失數(shù)據(jù)的一個(gè)或多個(gè)讀請求。在步驟812,如果數(shù)據(jù)中的至少 —些存在于性能部分中,則步驟812分支到步驟814以執(zhí)行一次讀(或多次讀), 否則步驟812分支到步驟820以執(zhí)行從硬盤驅(qū)動(dòng)器的一次讀(或多次讀)。
如果執(zhí)行步驟814,則步驟816表示原始讀請求是否被完全滿足。如果是, 則在步驟824返回具有適當(dāng)成功狀態(tài)的讀緩沖器。如果未完全滿足,則然后步 驟818調(diào)整一次或多次讀以訪問硬盤驅(qū)動(dòng)器來尋找缺失數(shù)據(jù),并且步驟820從
14硬盤驅(qū)動(dòng)器讀取;執(zhí)行步驟822和824以使讀請求對請求實(shí)體表現(xiàn)為是正常讀 操作。
應(yīng)注意,圖8的各步驟僅是滿足讀請求的一種方式,例如通過使用來自非 易失性存儲(chǔ)的數(shù)據(jù)建立讀緩沖器到可能的程度,以使硬盤驅(qū)動(dòng)器僅在必要時(shí)被 訪問以獲得僅僅是完成請求所需的數(shù)據(jù)。然而,可實(shí)現(xiàn)其他替換方案,諸如確 定讀是否可經(jīng)由非易失性存儲(chǔ)來完全滿足,并且如果不是,則像往常一樣執(zhí)行 從硬盤驅(qū)動(dòng)器的完整讀取。
圖9表示還原操作,步驟902和904表示備份硬盤驅(qū)動(dòng)器(例如,經(jīng)由備 份實(shí)用程序備份到完全備份),以及步驟904表示保留任何增量備份,即自最 后一次規(guī)則備份操作以來從非易失性存儲(chǔ)轉(zhuǎn)移。
步驟906表示等待還原操作,該還原操作可在遙遠(yuǎn)的將來發(fā)生。因而,步 驟906通常不是過程中反復(fù)出現(xiàn)額循環(huán),而是表示等待開始完全分開的還原操 作過程。
步驟908和910表示基于諸如保留在網(wǎng)絡(luò)備份位置處的所有保留的數(shù)據(jù)將 硬盤驅(qū)動(dòng)器的狀態(tài)重新創(chuàng)建到某一接收介質(zhì)(例如,新的硬盤驅(qū)動(dòng)器)。如以 上所描述地,硬盤驅(qū)動(dòng)器狀態(tài)可從初始備份數(shù)據(jù)(備份狀態(tài)l)、以及按順序 應(yīng)用的任何其它增量備份數(shù)據(jù)(如備份狀態(tài)la)來重新創(chuàng)建。 為還原最新近的狀態(tài),步驟910表示使用非易失性存儲(chǔ)的備份改變數(shù)據(jù)。 注意,步驟910可獨(dú)立地執(zhí)行,或者替換地可被合并到步驟908,例如通過轉(zhuǎn) 移非易失性存儲(chǔ)內(nèi)容以在執(zhí)行步驟908之前變成最新近的增量備份,并且然后 執(zhí)行步驟908。
盡管本發(fā)明易于作出各種修改和替換構(gòu)造,其某些說明性實(shí)施例在附圖中 示出并在上面被詳細(xì)地描述。然而應(yīng)當(dāng)了解,這不旨在將本發(fā)明限于所公開的 具體形式,而是相反地,旨在覆蓋落入本發(fā)明的精神和范圍之內(nèi)的所有修改、 替換構(gòu)造和等效方案。
權(quán)利要求
1.至少一個(gè)具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述指令在被執(zhí)行時(shí)實(shí)現(xiàn)以下步驟,所述步驟包括保留與處于第一狀態(tài)時(shí)的存儲(chǔ)設(shè)備的內(nèi)容相對應(yīng)的備份數(shù)據(jù);接收涉及改變所述存儲(chǔ)設(shè)備的內(nèi)容的寫請求;將與所述寫請求相對應(yīng)的備份改變數(shù)據(jù)寫入與所述存儲(chǔ)設(shè)備分開的非易失性存儲(chǔ),同時(shí)允許所述寫請求繼續(xù)將所述存儲(chǔ)設(shè)備的內(nèi)容改變到第二狀態(tài);以及還原接收存儲(chǔ)設(shè)備以與所述第二狀態(tài)的所述存儲(chǔ)設(shè)備相對應(yīng),其包括通過讀取所述非易失性存儲(chǔ)中的所述備份改變數(shù)據(jù)以及讀取所保留的備份數(shù)據(jù)。
2. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,保留所述備份數(shù) 據(jù)包括執(zhí)行備份操作以及在所述備份操作之后保留與所述存儲(chǔ)設(shè)備的內(nèi)容相 對應(yīng)的數(shù)據(jù)結(jié)構(gòu)。
3. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,保留所述備份數(shù) 據(jù)包括執(zhí)行備份操作以及在所述備份操作之后保留與所述存儲(chǔ)設(shè)備的內(nèi)容相 對應(yīng)的數(shù)據(jù)結(jié)構(gòu),以及保留跟蹤在所述備份操作之后并在所述寫請求之前發(fā)生 的寫操作的至少一個(gè)增量改變備份數(shù)據(jù)集。
4. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,寫入所述備份改 變數(shù)據(jù)包括將數(shù)據(jù)以及使所述數(shù)據(jù)與所述存儲(chǔ)設(shè)備的至少一個(gè)數(shù)據(jù)塊相關(guān)聯(lián) 的元數(shù)據(jù)一起寫入所述非易失性存儲(chǔ)。
5. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,寫入所述備份改 變數(shù)據(jù)包括將數(shù)據(jù)以及使所述數(shù)據(jù)與所述存儲(chǔ)設(shè)備上的文件的至少一部分相 關(guān)聯(lián)的元數(shù)據(jù)寫入所述非易失性存儲(chǔ)。
6. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,寫入所述備份改 變數(shù)據(jù)包括過濾所述寫請求以將所述寫請求從不作為備份改變數(shù)據(jù)來寫入的 其它寫請求中區(qū)分出來。
7. 如權(quán)利要求6所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還具有其他計(jì)算 機(jī)可執(zhí)行指令,包括將另一寫請求寫入所述非易失性存儲(chǔ)上的性能高速緩存。
8. 如權(quán)利要求7所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還具有其他計(jì)算 機(jī)可執(zhí)行指令,包括調(diào)整所述非易失性存儲(chǔ)中的存儲(chǔ)空間以增大用于寫入所述 備份改變數(shù)據(jù)的部分的空間并且減小用于所述性能高速緩存的部分的空間。
9. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還具有其他計(jì)算 機(jī)可執(zhí)行指令,包括接收涉及讀取所述存儲(chǔ)設(shè)備的內(nèi)容的讀請求,以及從所述 非易失性存儲(chǔ)滿足所述讀請求的至少一部分。
10. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還具有其他計(jì)算 機(jī)可執(zhí)行指令,包括通過將所述備份改變數(shù)據(jù)的至少一部分轉(zhuǎn)移到增量備份數(shù) 據(jù)集來釋放所述非易失性存儲(chǔ)中的空間。
11. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,寫入所述備份改 變數(shù)據(jù)包括在所述非易失性存儲(chǔ)不可用時(shí)將跟蹤所述備份改變數(shù)據(jù)的信息寫 入所述存儲(chǔ)設(shè)備,以及在稍后可用時(shí)通過處理所述信息來同步所述非易失性存 儲(chǔ)。
12. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還具有其他計(jì)算 機(jī)可執(zhí)行指令,包括向用戶提供指示所述非易失性存儲(chǔ)的同步狀態(tài)的指示, 所述指示包括在所述非易失性存儲(chǔ)不包含還原所述接收存儲(chǔ)設(shè)備以與處于所 述第二狀態(tài)的存儲(chǔ)設(shè)備相對應(yīng)所需的備份改變數(shù)據(jù)時(shí)的一個(gè)指示、以及在所述 非易失性存儲(chǔ)包含還原所述接收存儲(chǔ)設(shè)備以與處于所述第二狀態(tài)的存儲(chǔ)設(shè)備 相對應(yīng)所需的備份改變數(shù)據(jù)時(shí)的另一指示。
13. —種在包括計(jì)算設(shè)備的計(jì)算環(huán)境中的系統(tǒng),包括耦合到所述計(jì)算設(shè)備的主非易失性存儲(chǔ),其在從初始狀態(tài)做出改變時(shí)保留 數(shù)據(jù)的當(dāng)前狀態(tài);以及耦合到所述計(jì)算設(shè)備的輔助非易失性存儲(chǔ),其保留從與晚于所述初始狀態(tài) 的所保存的數(shù)據(jù)狀態(tài)相對應(yīng)的開始點(diǎn)起的對所述數(shù)據(jù)的改變,以使還原機(jī)制可 被配置成通過將所保存的數(shù)據(jù)狀態(tài)的數(shù)據(jù)與保留在所述輔助非易失性存儲(chǔ)中 的對所述數(shù)據(jù)的改變相組合來重新創(chuàng)建與所述當(dāng)前狀態(tài)相對應(yīng)的還原狀態(tài)。
14. 如權(quán)利要求13所述的系統(tǒng),其特征在于,所述主非易失性存儲(chǔ)包括第一硬盤驅(qū)動(dòng)器,其中所述輔助非易失性存儲(chǔ)包括閃存,并且其中所述還原機(jī) 制通過將所述還原狀態(tài)寫入第二硬盤驅(qū)動(dòng)器來重新創(chuàng)建所述還原狀態(tài)。
15. 如權(quán)利要求13所述的系統(tǒng),其特征在于,所述輔助非易失性存儲(chǔ)包 括一集合的一個(gè)或多個(gè)項(xiàng),所述集合包含閃存、電池備份RAM、另一硬盤驅(qū)動(dòng)器、靜態(tài)RAM、 EEPROM設(shè)備、或者網(wǎng)絡(luò)存儲(chǔ)位置、或者其任何組合;并 且其中,所述輔助非易失性存儲(chǔ)作為卡、作為主板組件、通過有線連接、或者 通過無線連接、或者通過其任何組合,經(jīng)由通用串行總線接口耦合到所述計(jì)算 設(shè)備。
16. —種在具有其數(shù)據(jù)被備份到第一狀態(tài)的計(jì)算設(shè)備的計(jì)算環(huán)境中的方法,包括在第一非易失性存儲(chǔ)中保留數(shù)據(jù)的當(dāng)前狀態(tài),所述數(shù)據(jù)的當(dāng)前狀態(tài)包括如在第一狀態(tài)之后被改變所修改的所述第一狀態(tài)的數(shù)據(jù);以及在第二非易失性存儲(chǔ)中保留發(fā)生在所述第一狀態(tài)之后作為備份改變的對 所述數(shù)據(jù)的修改,以使所述備份改變可與備份到第一狀態(tài)的所述數(shù)據(jù)相組合以 重新創(chuàng)建與所述當(dāng)前狀態(tài)相對應(yīng)的還原狀態(tài)。
17. 如權(quán)利要求16所述的方法,其特征在于,保留所述改變包括過濾所述改變以僅選擇所述改變中的某一些作為備份改變,以使所述還原狀態(tài)包括如 由第一狀態(tài)之后的所述改變的所選子集修改的所述第一狀態(tài)。
18. 如權(quán)利要求16所述的方法,其特征在于,備份到所述第一狀態(tài)的數(shù) 據(jù)包括一備份數(shù)據(jù)集、以及在所述第二非易失性存儲(chǔ)中保留在所述第一狀態(tài)之 后但在所述備份改變之前的備份改變數(shù)據(jù)的至少一個(gè)增量備份數(shù)據(jù)集。
19. 如權(quán)利要求16所述的方法,其特征在于,保留所述備份改變數(shù)據(jù)包 括將數(shù)據(jù)以及使所述數(shù)據(jù)與所述第一非易失性存儲(chǔ)的至少一個(gè)數(shù)據(jù)塊相關(guān)聯(lián) 的元數(shù)據(jù)一起寫入所述第二非易失性存儲(chǔ),或者將數(shù)據(jù)以及使所述數(shù)據(jù)與所述 第一非易失性存儲(chǔ)上的文件的至少一部分相關(guān)聯(lián)的元數(shù)據(jù)一起寫入所述第二 非易失性存儲(chǔ)。
20. 如權(quán)利要求16所述的方法,其特征在于,還包括接收涉及從所述第 一非易失性存儲(chǔ)讀取內(nèi)容的讀請求,以及從所述第二非易失性存儲(chǔ)滿足所述讀 請求的至少一部分。
全文摘要
所描述的是輔助非易失性存儲(chǔ)(例如,閃存設(shè)備)保留在數(shù)據(jù)備份操作之后對硬盤驅(qū)動(dòng)器所做的改變的副本的技術(shù)。備份改變可與所備份的數(shù)據(jù)相組合以重新創(chuàng)建硬盤驅(qū)動(dòng)器狀態(tài),藉此例如如果硬盤驅(qū)動(dòng)器失效,則在最后一次備份之后的改變不丟失。備份改變數(shù)據(jù)可保留與硬盤驅(qū)動(dòng)器塊相對應(yīng)的在塊(例如分配單元)級(jí)的改變、或者與硬盤驅(qū)動(dòng)器上的文件或文件的各部分相對應(yīng)的在文件級(jí)的改變。備份改變可被過濾,以使僅某些數(shù)據(jù)(例如,用戶數(shù)據(jù))作為備份改變數(shù)據(jù)來保留。讀請求可通過從備份改變數(shù)據(jù)、或者從同樣可位于非易失性存儲(chǔ)上的性能(例如,盤)高速緩存讀取數(shù)據(jù)來滿足。
文檔編號(hào)G06F12/16GK101583930SQ200780046443
公開日2009年11月18日 申請日期2007年11月29日 優(yōu)先權(quán)日2006年12月14日
發(fā)明者R·J·D·帕納巴克 申請人:微軟公司