专利摘要:
本文所述標的之態樣係關於儲存器結構。在態樣中,由資料源提供的位址被轉換為虛擬儲存器之邏輯儲存器位址。此邏輯儲存器位址被轉換為可用於在儲存器系統上儲存資料或從儲存器系統取得資料之識別符。虛擬儲存器之位址空間被劃分為塊,該等塊可串流傳輸至儲存器系統。
公开号:TW201303589A
申请号:TW101112655
申请日:2012-04-10
公开日:2013-01-16
发明作者:Abid Ali;Amit Singla;Vanita Prabhu;Sachin Durge;Pankaj Khanzode;Vijay Sen
申请人:Microsoft Corp;
IPC主号:G06F13-00
专利说明:
用於備份應用程式的儲存器結構
本發明係關於用於備份應用程式的儲存器結構。
存在許多儲存器系統可用於備份資料。舉例而言,磁帶儲存器系統已經用於並且現在仍然用於儲存大型資料集。近年來,部分地由於儲存器單元單價的減少,局部附接的磁碟儲存器系統已經用於儲存備份資料。最近,雲端儲存器系統已經變得可用於在經由網際網路連接的遠端儲存器裝置上儲存備份資料。支援新型儲存器涉及大量工程、試驗以及整合工作,並且延遲了產品上市時間。此外,資料從一個類型的儲存器向另一類型的儲存器之遷移有困難。
本文所主張之標的不限於解決任何缺陷之實施例或者僅在如上所述環境中操作之實施例。更確切而言,提供此背景技術僅用於說明一個示例性技術區域,一些本文所述之實施例可在該技術區域中實踐。
簡言之,本文所述標的之各態樣係關於儲存器結構。在態樣中,由資料源提供的位址被轉換為虛擬儲存器之邏輯儲存器位址。將此邏輯儲存器位址映射至可用於在儲存器系統上儲存資料或從儲存器系統取得資料之識別符。虛擬儲存器之位址空間被劃分為塊,該等塊可串流傳輸至儲存器系統。將儲存器空間劃分為塊之步驟促進備份資料集管理操作、轉換及下文更詳細描述的其他動作。 定義
如本文所使用的,術語「包含」及其變體將被視為意謂「包含,但不限於」之無限制的術語。除非上下文以其他方式清楚地規定,否則術語「或者」將被視為「及/或」。術語「基於」將被視為「至少部分地基於」。術語「一個實施例」及「一實施例」將被視為「至少一個實施例」。術語「另一實施例」將被視為「至少一個其他實施例」。
如本文所使用的,諸如「一」及「該」之術語包括一或多個所指示的項目或動作。特定言之,在申請專利範圍中所提及的一個項目大體而言意謂存在至少一個此類項目,並且所提及的一個動作意謂執行動作之至少一個實例。
有時在本文中可能使用「第一」、「第二」、「第三」等等之類的術語。在沒有額外上下文的情況下,在申請專利範圍中利用該等術語並非意欲暗示定序,而是出於識別目的。舉例而言,用語「第一版本」及「第二版本」未必意謂第一版本為絕對的第一版本或者該第一版本在第二版本之前產生,乃至要求第一版本在第二版本之前或者在第二版本之前操作第一版本。更確切而言,該等用語用於識別不同的版本。
標題僅為出於方便之目的;可能發現給定主題之資訊在其標題指示彼主題的部分以外。
其他明確及隱含的定義可包含於下文。 示例性操作環境
第1圖圖示適當的計算系統環境100之實例,本文所述標的之各態樣可在該適當的計算系統環境100上實施。計算系統環境100僅為適當的計算環境之一個實例,並且並不意欲表示對本文所述標的之各態樣的用途或者功能之範疇的任何限制。計算環境100不應解釋為具有關於示例性操作環境100中圖示的任何一個部件或各部件之組合的任何依賴或者要求。
本文所述標的之各態樣可以使用許多其他的通用的或者專用計算系統環境或者配置來操作。可能適用於本文所述標的之各態樣的熟知計算系統、環境或者配置的實例包括個人電腦、伺服器電腦、掌上型或者膝上型裝置、多處理器系統、基於微控制器的系統、機頂盒、可程式化消費者電子產品、網路PC、迷你電腦、主機電腦、個人數位助理(PDA)、遊戲裝置、印表機、包含機頂盒、媒體中心或其他器具之器具、車載嵌入式或附接式計算裝置、其他的行動裝置、包含任何上述系統或裝置的分散式計算環境,及其類似裝置。
本文所述標的之各態樣可在由電腦執行之電腦可執行指令(諸如程式模組)之一般上下文中描述。大體而言,程式模組包含常式、程式、物件、部件、資料結構等等,該等程式模組執行特定任務或者實施特定抽象資料類型。本文所述標的之各態樣亦可在分散式計算環境中實踐,在該分散式計算環境中各任務籍由遠端處理裝置執行,該等遠端處理裝置經由通訊網路連結。在分散式計算環境中,程式模組可位於包含記憶體儲存器裝置的本端電腦儲存器媒體及遠端電腦儲存器媒體兩者中。
參考第1圖,用於實施本文所述標的之各態樣的示例性系統包含以電腦110形式存在的通用計算裝置。電腦可包含能夠執行指令的任何電子裝置。電腦110之部件可包含處理部件120、系統記憶體130及系統匯流排121,該系統匯流排121將包含系統記憶體之各種系統部件耦合至處理部件120。系統匯流排121可為若干類型之匯流排結構中的任何匯流排結構,該等若干類型之匯流排結構包含記憶體匯流排或者記憶體控制器、周邊匯流排及使用多種匯流排結構中之任何匯流排結構的本端匯流排。舉例而言(但並非限制),此類結構包含工業標準結構(ISA)匯流排、微通道結構(MCA)匯流排、增強型ISA(EISA)匯流排、視電標準協會(VESA)本端匯流排、周邊部件互連(PCI)匯流排(亦稱作背板匯流排)、周邊部件互連延伸式(PCI-X)匯流排、高級圖形埠(AGP)及PCI express(PCIe)。
電腦110通常包含各種電腦可讀取媒體。電腦可讀取媒體可為任何可用媒體,該任何可用媒體可由電腦110存取且包含揮發性媒體和非揮發性媒體及可移除媒體和不可移除媒體。舉例而言(但並非限制),電腦可讀取媒體可包括電腦儲存器媒體及通訊媒體。
電腦儲存器媒體包括揮發性媒體和非揮發性媒體、可移除媒體和不可移除媒體,該等媒體以任何方法或技術實施,以用於儲存資訊,諸如電腦可讀取指令、資料結構、程式模組或者其他資料。電腦儲存器媒體包括RAM、ROM、EEPROM、快閃記憶體或其他記憶體技術、CD-ROM、數位多功能光碟(DVD)或其他光碟儲存器、磁帶盒、磁帶、磁碟儲存器或其他磁性儲存裝置,或可用於儲存所欲資訊且可由電腦110存取之任何其他媒體。
通訊媒體通常體現電腦可讀取指令、資料結構、程式模組,或經調變資料信號(諸如,載波)中的其他資料,或其他傳送機構,並且該通訊媒體包含任何資訊傳遞媒體。術語「經調變資料信號」意謂具有一或多個特徵之信號,該等特徵經設置或改變以便在該信號中編碼資訊。舉例而言(但並非限制),通訊媒體包含諸如有線網路或直接有線連接之有線媒體,及諸如聲學、RF、紅外及其他無線媒體之無線媒體。上述通訊媒體中任何通訊媒體之組合亦應該被包含在電腦可讀取媒體的範疇內。
系統記憶體130包含揮發性記憶體及/或非揮發性記憶體形式之電腦儲存器媒體,諸如唯讀記憶體(ROM)131及隨機存取記憶體(RAM)132。基本輸入/輸出系統(BIOS)133包括有助於(諸如)在啟動期間在電腦110中的各元件之間傳遞資訊的基本常式,該BIOS 133通常儲存於ROM 131中。RAM 132通常包括可由處理單元120立即存取或立刻操作之資料及/或程式模組。舉例而言(但並非限制),第1圖圖示作業系統134、應用程式135、其他程式模組136及程式資料137。
電腦110亦可包含其他的可移除/不可移除電腦儲存器媒體、揮發性/非揮發性電腦儲存器媒體。僅舉例而言,第1圖圖示硬碟機141,該硬碟機141從不可移除的、非揮發性的磁性媒體讀取資訊或向該不可移除、非揮發性的磁性媒體寫入資訊;磁碟機151,該磁碟機151從可移除的、非揮發性的磁碟152讀取資訊或向該可移除的、非揮發性的磁碟152寫入資訊;以及光碟機155,該光碟機155從諸如CD ROM或者其他光學媒體之可移除的、非揮發性的光碟156讀取資訊或向該可移除的、非揮發性的光碟156寫入資訊。可用於示例性操作環境之其他可移除/不可移除的、揮發性/非揮發性的電腦儲存器媒體包含卡式磁帶、快閃記憶卡、數位多功能光碟、其他光碟、數位視訊磁帶、固態RAM、固態ROM等等。硬碟機141可經由介面140連接到系統匯流排121,並且磁碟機151與光碟機155可籍由用於可移除的、非揮發性的記憶體之介面(諸如,介面150)連接至系統匯流排121。
以上論述並在第1圖中圖示之硬碟機、磁碟機、光碟機及其關聯之電腦儲存器媒體为電腦110提供對電腦可讀取指令、資料結構、程式模組以及其他資料的儲存。在第1圖中,例如硬碟機141被圖示為儲存作業系統144、應用程式145、其他程式模組146以及程式資料147。應注意該等部件可與作業系統134、應用程式135、其他程式模組136以及程式資料137相同,亦可與作業系統134、應用程式135、其他程式模組136以及程式資料137不同。本文中作業系統144、應用程式145、其他程式模組146以及程式資料147給定不同編號,以說明至少該等部件為不同的副本。
使用者可經由諸如鍵盤162以及指標裝置161之輸入裝置向電腦110內輸入命令及資訊,指標裝置161一般是指滑鼠、軌跡球或者觸控板。其他輸入裝置(未圖示)可包含麥克風、操縱桿、遊戲板、圓盤式衛星電視天線、掃描器、觸敏螢幕、手寫板等等。該等及其他輸入裝置往往經由耦合至系統匯流排之使用者輸入介面160連接到處理單元120,但是該等及其他輸入裝置亦可籍由其他介面及匯流排結構(諸如,平行埠、遊戲埠或通用串列匯流排(USB))連接。
監控器191或其他類型之顯示裝置亦經由諸如視訊介面190之介面連接到系統匯流排121。除監控器之外,電腦亦可包含其他周邊輸出裝置,諸如揚聲器197及印表機196,該等周邊輸出裝置可經由周邊輸出介面195連接。
電腦110可在使用邏輯連接至一或多個遠端電腦(諸如,遠端電腦180)之網路環境中操作。遠端電腦180可能是個人電腦、伺服器、路由器、網路PC、對等設備或其他共用網路節點,並且雖然在第1圖中僅圖示記憶體儲存器裝置181,但該遠端電腦180通常包含與電腦110相關之上述元件中的許多元件或者所有元件。第1圖中描述之邏輯連接包含局域網路(LAN)171及廣域網路(WAN)173,但亦可包含其他網路。此類網路連接環境係辦公室、企業電腦網路、企業範圍網路及網際網路中之常見地點。
當在LAN網路連接環境中使用時,電腦110經由網路介面或配接器170連接到LAN 171。當在WAN網路連接環境中使用時,電腦110可包含數據機172或者跨WAN 173建立通訊的其他構件,諸如網際網路。數據機172可為內部數據機或外部數據機,該數據機可經由使用者輸入介面160或其他適當的機構連接到系統匯流排121。在網路連接環境中,所述與電腦110有關之程式模組或該等程式模組中之部分可儲存在遠端記憶體儲存器裝置中。舉例而言(但並非限制),第1圖將遠端應用程式185圖示為常駐於儲存器裝置181上。應瞭解所圖示之網路連接為示例性的,並且亦可使用在各電腦之間建立通訊鏈路的其他構件。 儲存器結構
如先前所提及的,支援新型儲存器並將資料遷移至新型儲存器是極具挑戰性的。第2圖為大體呈現根據本文所述標的之各態樣的環境之方塊圖。第2圖中所圖示之部件為示例性的,並且並非意謂包括一切可能需要或者包含的部件。在其他實施例中,在不脫離本文所述標的之各態樣的精神或範疇的情況下,參照第2圖描述的各部件可包含在其他部件(已圖示或未圖示)中或放置在各種子部件中。在一些實施例中,參照第2圖描述之部件及/或功能可跨多個裝置分佈。
轉向第2圖,環境200包含資料源205、源讀取器210、儲存器系統215,並且環境200亦可包含其他部件(未圖示)。資料源205、源讀取器210及儲存器系統215的每一者可籍由一或多個部件實施。如本文所使用的,術語「部件」將被視為包含硬體(諸如,裝置之整體或部分)、一或多個軟體模組之集合或者該一或多個軟體模組集合之部分、一或多個軟體模組之一些組合或者該一或多個軟體模組一些組合之部分,以及一或多個裝置或該一或多個裝置之部分等等。
部件可包含代碼或者部件可藉由代碼呈現。代碼包含指示電腦將執行之動作的指令。除了電腦將執行之動作外,代碼亦可包含資訊,諸如資料、資源、變數、定義、關係、關聯等等。
部件可籍由一或多個計算裝置存放。此等裝置可包含(例如)個人電腦、伺服器電腦、掌上型或者膝上型裝置、多處理器系統、基於微控制器的系統、機頂盒、可程式化消費者電子產品、網路PC、迷你電腦、主機電腦、蜂巢式電話、個人數位助理(PDA)、遊戲裝置、印表機、包含機頂盒、媒體中心或其他器具之器具、車載嵌入式或附接式計算裝置、其他的行動裝置、包含任何上述系統或裝置的分散式計算環境及類似裝置。可經配置用於存放系統200之一或多個部件的示例性裝置包含第1圖之電腦110。
資料源205、源讀取器210以及儲存器系統215(在下文有時被稱為部件)可定位為相對靠近彼此,或者可相互間隔大段距離,並且可經由各種通訊鏈路彼此連接。可在各部件之間使用的一些示例性通訊鏈路包含無線連接、有線連接以及先前提及之其他通訊媒體。通訊鏈路可形成一或多個網路,該一或多個網路包含本端網路、辦公室間網路、網際網路等等。
在一個實施例中,資料源205可包含備份應用程式,該備份應用程式負責備份存放在一或多個儲存器裝置上的資料集。資料源205可係可操作以從資料集讀取資料並向源讀取器210提供該資料。術語資料將被視為廣泛地包含可籍由一或多個電腦儲存器元件呈現之任何事物。邏輯性地,在揮發性記憶體或者非揮發性記憶體中,資料可呈現為一系列的1和0。在具有非二進位儲存器媒體之電腦中,資料可根據儲存器媒體之容量來呈現。可將資料組織為不同類型之資料結構,該等不同類型之資料結構包含諸如編號、字母等簡單的資料類型、分層資料類型、鏈結資料類型或其他相關資料類型、包含多個其他資料結構或簡單資料類型之資料結構等等。資料之一些實例包含資訊、程式代碼、程式狀態、程式資料、其他資料等等。
當資料源205想要從先前備份之資料集獲取資料時,資料源205可向源讀取器210請求資料,該源讀取器210可隨後從儲存器系統215獲取資料。
儲存器系統215為可用於儲存資料之資料儲存器。儲存器系統215可籍由一或多個儲存器裝置實施,該一或多個儲存器裝置包含例如硬碟、磁帶裝置、光儲存器裝置、快閃記憶體、諸如RAM之揮發性儲存器裝置、雲端儲存器、其他儲存器裝置等等。儲存器系統215可支援具有語意的儲存操作,該等操作包含CreateEntity、WriteData(實體ID、資料、偏移量)、ReadData(實體ID、偏移量、資料長度)、DeleteEntity(實體ID)等等。
源讀取器210可從資料源205接收資料並且可以用較容易執行各種資料轉換的方式封裝資料。在一個實施例中,源讀取器210可在電腦的軟體儲存資料組中實施,該電腦存放資料源205。因為資料源205將資料下發至儲存資料組,所以源讀取器210可獲取資料、將資料放入資料結構中並向儲存器系統215提供資料。
在一個實施例中,源讀取器210可使用如第3圖中所圖示之格式。第3圖為圖示根據本文所述標的之各態樣的示例性虛擬儲存器格式之方塊圖。如所圖示的,格式300包含區塊位址變換表305、檔案系統元資料部分310及資料部分315。
區塊位址變換表305(有時在本文中稱為BAT 305)可從檔案系統卷之塊映射到儲存器裝置之實體位址。使用該映射,BAT 305可指示卷之資料儲存在儲存器裝置上之何處或者該卷之資料將儲存在儲存器裝置上之何處。
上文使用用語「將」是因為若資料儲存在儲存器裝置上,則儲存器裝置即為資料將要儲存之位置。然而,常駐在儲存資料組中之源讀取器可將資料直接沿儲存資料組向下發送至外部儲存器系統,而非將用於卷之資料儲存在本端儲存器裝置之實體位址空間中。雖然源讀取器可使用卷及BAT 305之目的偏移量來決定實體位址,但是源讀取器可將資料發送至外部系統儲存器,而非本端儲存器裝置。
發送資料之應用程式(例如,備份應用程式)可能不知道資料正儲存在何處。從應用程式之視角,資料被發送給具有與資料相關之位址(諸如卷偏移量)的儲存資料組部件。諸如常駐於儲存資料組之源讀取器之部件可將資料串流傳輸至遠端儲存器系統,而非將資料儲存在本端儲存器上。如下文將更詳細描述的,在將經轉換之資料發送至遠端儲存器系統之前,源讀取器可將虛擬儲存器位址空間劃分為塊,並執行或引起執行各種轉換,諸如重複刪除、壓縮、加密等。與劃分、轉換及映射相關之資料可被儲存,以使得當應用程式請求資料(例如使用卷偏移量)時,資料可按需要自外部儲存器系統取得、進行反向轉換及組合。
當源讀取器接收寫資料之請求時,源讀取器可決定虛擬位址空間對應於資料源所提供位址的一或多個塊。源讀取器可基於邏輯位址(例如,經由BAT索引決定之邏輯位址)及資料長度做出該決定。舉例而言,對於32千位元組之資料及64千位元組之位址,源讀取器可決定使用BAT,資料會籍由將位址(64K)按照塊大小(64K)劃分並將位址加1(假設起始塊為1,而非0)而影響虛擬位址空間之塊2。當塊2被填滿或者將被傳輸時,源讀取器可將塊中之資料串流傳輸至儲存器系統,並維持將塊映射至儲存器系統之儲存器識別符的資料結構(下文將更詳細描述)。
檔案系統元資料部分310可包含關於資料315之元資料。舉例而言,檔案系統元資料310可包含檔案及目錄屬性、延伸資料、安全資料、存取資料、位置資訊關係資料等等。
資料部分315可包含檔案系統之檔案系統物件的內容。檔案系統物件可包含目錄、檔案或其他檔案系統物件。在本文中檔案系統物件有時被簡稱為物件。
第4圖為圖示根據本文所述標的之各態樣的各種特徵結構之方塊圖。第3圖之區塊位址變換表305、檔案系統元資料部分310及資料部分315已經在第4圖中複現。
在儲存虛擬硬碟之資料的同時,源讀取器可執行各種動作。舉例而言,源讀取器可將虛擬硬碟之虛擬位址儲存器空間劃分為如部分405處所圖示的固定大小之塊。雖然第4圖中圖示的塊大小為64千位元組,但是在不脫離本文所述標的之各態樣之精神或範疇的情況下,塊大小可大於或小於64千位元組。
實際上,塊大小可經選擇為足夠大以用於進一步轉換,諸如重複刪除轉換、壓縮轉換、加密轉換等等。一些轉換可例如將塊劃分為較小塊。
塊可具有為虛擬儲存器(VS)格式之區塊大小的數倍之大小。舉例而言,VS格式可具有4千位元組大小之區塊,而塊之大小可為64千位元組。
可使用表進行塊與儲存器系統之間的映射。在一個實施例中,表可將一或多個VS位址之範圍映射至一或多個儲存器識別符之範圍。以下為VS區塊與儲存器識別符之間映射的示例性表:
儲存器識別符為可用於識別儲存器系統上的資料之識別符(例如,編號、字串等等)。舉例而言,在儲存器系統模型化卷處,識別符可呈現偏移量至卷中。作為另一實例,儲存器系統可使用識別符作為密鑰進入表或其他資料結構。在本實例中,識別符可用於在表中查找儲存器裝置識別符、卷識別符,以及對應於與識別符相關之資料之位址的範圍。該資訊可隨後用於從儲存器系統之儲存器裝置獲取資料。
雖然表已在上文提及作為一種機制,藉由該機制可映射VS之塊至儲存器系統上之資料,但是基於本文之教示,本領域熟習此項技藝者將理解亦可使用其他資料結構來執行此映射。舉例而言,列表、分層資料結構、另一資料結構等可用於執行此映射。術語「表」用於一般地指示傳統的表或者可用於執行此映射之任何其他的資料結構。
在一個實施例中,表可用於將部分405處之區塊映射至包含在BAT表305中之VS偏移量。在本實施例中,將部分405之區塊劃分為如部分410中所示之較小區塊的轉換部件負責維持與較小塊相關的資料,以使得轉換部件可按需要執行逆變換。
在另一實施例中,表可用於將部分410處之區塊映射至包含在BAT表305中之VS偏移量。在本實施例中,表可用於將此等較小區塊定位在儲存器系統中。
部分405之區塊可被劃分為部分410之較小區塊,以用於重複刪除轉換中。在重複刪除演算法中,複製之資料可僅一次性地儲存在儲存器系統上。舉例而言,若資料在產生自區塊403的兩個或更多區塊間複製,則資料之單個實例可與指示資料之複製的資訊一起儲存在儲存器系統上。當區塊從單個實例重新構建時,資訊可用於將單個實例複製到最初發現單個實例之多個區塊中。
在部分415處,諸如壓縮演算法之轉換可被應用於區塊,以按需要壓縮資料。在部分420處,諸如加密演算法之轉換可被應用至區塊,以按需要加密資料。
在部分410、415及420處的一或多個轉換可在資料被發送給儲存器系統之前或之後應用。舉例而言,源讀取器可僅將部分405處之區塊傳輸至儲存器系統,並允許儲存器系統按需要重複刪除、壓縮及加密區塊。作為另一實例,源讀取器可在將轉換資料發送至儲存器系統之前重複刪除、壓縮及加密區塊。從源讀取器之視角之所有需要物為可儲存資料及使用識別符取得資料之儲存器系統。
基於上述內容,可以有效方式儲存遞增備份。若VS之資料改變,則經分塊之區塊可被發送給儲存器系統,而非重新發送VS之全部資料,該經分塊之區塊包含資料及描述此改變之元資料。
所儲存資料之取得亦可使用粗糙或細小顆粒有效地執行。舉例而言,若需要單個項目,則備份應用程式可使用位址之範圍請求單個項目。源讀取器可將與單個項目相關聯之VS位址轉化為一或多個區塊,並從儲存器系統獲取一或多個區塊。若需要,源讀取器可隨后應用逆變換,並且將資料返還至備份應用程式,該備份應用程式可隨後將項目提供給請求者。
亦可有效地執行備份設置之維持。在一些備份方案中,期望維持資料集之Grandfather-Father-Son方案。Grandfather-Father-Son方案之實例為將上個月之每週備份、上周之每日備份以及上一天之每小時備份儲存在儲存器系統上。基於如上所述機制,可籍由首先發送資料之完整副本且隨後僅發送改變後之區塊至每個實時點備份之儲存器系統來備份資料。
當不再需要一備份集時,自備份集之資料可邏輯性地與後續備份集之資料合併。此舉可藉由刪除不再需要之區塊以及按需要改變元資料來完成。
舉例而言,第一備份集可包含籍由識別符A、B、C以及D識別之區塊。區塊B及區塊D中的資料可改變,並且可分別用B'及D'呈現。藉由B'及D'呈現之區塊可隨後被複製到儲存器系統,以產生第二備份集。隨後,當不再需要第一備份集時,可刪除B與D,並且可改變元資料以指示A及C屬於第二備份集。
在一些實施方式中,在將資料315中之任何資料發送至儲存器系統以前,可產生檔案系統元資料310並發送該檔案系統元資料310至儲存器系統。在該等實施方式中,即使僅執行資料之部分備份,資料仍可恢復。為執行此操作,可自儲存器系統取得元資料,並將該元資料用於發現實際部分地成功備份至儲存器系統之任何資料。元資料可指示資料的位置,該資料的位置可隨後用於從儲存器系統取得區塊(若存在)。以此方式,即使資料僅部分地成功備份至儲存器系統,成功部分備份之資料可恢復。
第5圖至第6圖為大體呈現根據本文所述標的之各態樣可能發生的示例性動作之流程圖。為了解釋之簡便起見,結合第5圖至第6圖描述之方法被圖示和描述為一系列動作。將理解和瞭解本文所述標的之各態樣並非限於所圖示之動作及/或動作之順序。在一個實施例中,動作以如下所述順序發生。然而在其他實施例中,動作可並行發生、以另一順序發生及/或具有本文不存在及未描述之其他動作。此外,實施根據本文所述標的之各態樣的方法並不要求所有圖示之動作。此外本領域熟習此項技藝者將理解及瞭解,方法既可經由狀態圖呈現為一系列相互關連狀態,亦可呈現為事件。
轉向第5圖,在方塊505處,動作開始。在方塊510處,接收虛擬儲存器位址空間之指示。舉例而言,參見第2圖,資料源205可指示該資料源205需要一定量之空間用於備份資料集。作為回應,源讀取器210可產生虛擬儲存器,並為虛擬儲存器分配稀疏檔案。源讀取器210可隨後查詢檔案系統,以獲取與檔案相關聯的虛擬儲存器位址空間之指示。作為回應,源讀取器210可接收對應於虛擬儲存器位址空間之實體位址之範圍。
在方塊515處,位址空間被劃分為塊。舉例而言,參見第2圖及第4圖,源讀取器210可將位址空間劃分為如部分405中所圖示的固定大小之塊。
在方塊520處,從資料源接收資料。舉例而言,參見第2圖,源讀取器210可從資料源205接收資料。在方塊520處,亦可接收與該資料相關聯之位址資訊。該位址資訊可用資料傳達,或可在另一訊息中接收該位址資訊。舉例而言,參見第2圖,源讀取器210可從資料源205接收卷偏移量。作為另一實例,源讀取器210可接收與資料相關聯之虛擬儲存器位址之範圍。作為又一實例,源讀取器210可接收虛擬儲存器偏移量及資料之長度。
在方塊525處,決定與資料相關聯之塊。決定塊之步驟可涉及使用BAT305以獲取虛擬儲存器之邏輯位址,並隨後如先前所描述地按照塊之大小劃分邏輯位址。
在方塊530處按需要轉換塊。該操作可包含在執行諸如重複刪除、壓縮、加密或者其他轉換之轉換以前,將上述塊進一步劃分為較小塊。
在方塊535處,將對應於塊之資料提供給儲存器系統。舉例而言,參見第2圖及第4圖,源讀取器210可將對應於區塊403之資料提供給儲存器系統215。資料可提供為較小塊之集合或單個塊。
在方塊540處,更新映射資料結構以將位址資訊映射至識別符,該識別符識別至儲存器系統之塊。舉例而言,參見第2圖,源讀取器210可更新表之列,該表之該列具有儲存位址之範圍(例如,虛擬儲存器中之偏移量)之第一欄位及儲存識別符之第二欄位,該識別符可用於從儲存器系統取得資料。此識別符可(例如)亦為先前提及的位址之範圍、字串、編號等等。
在方塊545處,可執行其他動作(若有)。其他動作可包含(例如)備份維持動作。舉例而言,藉由向儲存器系統發送用於刪除第一備份集之一或多個區塊的訊息,以及藉由向儲存器系統發送指示第一備份集之其他區塊包含在第二備份集中的元資料,第一備份集可與儲存在儲存器上的第二備份集合併。
轉向第6圖,在方塊605處,動作開始。在方塊610處,自請求者接收對儲存器系統上儲存之資料的請求。舉例而言,參見第2圖,源讀取器210可從資料源205接收對儲存器系統215上的資料之請求。
在方塊615處,可接收資料之位址。舉例而言,參見第2圖,源讀取器210可從資料源205接收資料之位址。資料之位址可與對資料之請求一起接受,或者資料之位址可分別地從對資料之請求接收。舉例而言,可在不同訊息或同一訊息中接收資料之位址,以傳達對資料之請求。
資料之位址指示請求者與資料相關聯之儲存位置。舉例而言,資料源205可將卷偏移量與資料相關聯。雖然資料可能實際上並非儲存在卷偏移量處,但是在此儲存位置處請求者與資料相關聯。
在方塊620處,基於第一位址以及映射資料結構決定邏輯儲存器偏移量。舉例而言,參見第2圖及第4圖,源讀取器210可使用BAT305以及該源讀取器210接收之位址來決定在第4圖中呈現之虛擬儲存器的邏輯儲存器偏移量。如第4圖中所圖示的,虛擬儲存器之此虛擬儲存器位址空間被劃分為塊。該等塊經由諸如表之資料結構被映射至儲存器系統之儲存位置。資料結構提供藉由請求者識別的位址空間與虛擬儲存器位址空間之間的映射資訊。
在方塊625處,決定實體儲存器位置。舉例而言,參見第2圖及第4圖,源讀取器210可將區塊403映射至識別符,該識別符可用於從儲存器系統215取得區塊403之資料。
在方塊630處,使用如上所述識別符從儲存器系統取得對應於所請求資料的資料(例如,至少一個塊)。
在方塊635處,轉換資料。舉例而言,參見第2圖及第4圖,源讀取器210及/或儲存器系統215可執行對應於部分420、415及410之逆變換。舉例而言,源讀取器210及/或儲存器系統215可解密資料、解壓資料、逆轉先前對資料應用之重複刪除或者執行一或多個其他轉換。
在一個實施例中,資料可在藉由儲存器系統傳輸之前轉換。在另一個實施例中,資料可在藉由儲存器系統傳輸之後轉換。在又一實施例中,資料可在藉由儲存器系統傳輸以前經歷一或多個轉換並在藉由儲存器系統傳輸之後經歷一或多個轉換。
在方塊640處,將資料提供給請求者。舉例而言,參見第2圖,源讀取器210可向資料源205提供資料。
在方塊645處,可執行其他動作(若有)。
如可從先前詳細描述知悉的,已描述了關於儲存器結構之各態樣。本文所述標的之各態樣容許各種修改和替代性構造的同時,該等態樣之某些經說明的實施例圖示於圖式中並且已在上文詳細描述。然而應理解,此並非意欲將所主張標的之態樣限制為所揭示之特定形式,相反地,此意欲覆蓋落入本文所述標的之各態樣的精神及範疇內的全部修改、替代性構造及等效物。
100‧‧‧計算系統環境
110‧‧‧電腦
120‧‧‧處理部件
121‧‧‧系統匯流排
130‧‧‧系統記憶體
131‧‧‧唯讀記憶體
132‧‧‧隨機存取記憶體
133‧‧‧基本輸入/輸出系統
134‧‧‧作業系統
135‧‧‧應用程式
136‧‧‧其他程式模組
137‧‧‧程式資料
140‧‧‧介面
141‧‧‧硬碟機
144‧‧‧作業系統
145‧‧‧應用程式
146‧‧‧其他程式模組
147‧‧‧程式資料
150‧‧‧介面
151‧‧‧磁碟機
152‧‧‧可移除的、非揮發性的磁碟
155‧‧‧光碟機
156‧‧‧可移除的、非揮發性的光碟
160‧‧‧使用者輸入介面
161‧‧‧指標裝置
162‧‧‧鍵盤
170‧‧‧網路介面或配接器
171‧‧‧局域網路(LAN)
172‧‧‧數據機
173‧‧‧廣域網路(WAN)
180‧‧‧遠端電腦
181‧‧‧儲存器裝置
185‧‧‧遠端應用程式
190‧‧‧視訊介面
191‧‧‧監控器
195‧‧‧周邊輸出介面
196‧‧‧印表機
197‧‧‧揚聲器
200‧‧‧環境
205‧‧‧資料源
210‧‧‧源讀取器
215‧‧‧儲存器系統
300‧‧‧格式
305‧‧‧區塊位址變換表
310‧‧‧檔案系統元資料部分
315‧‧‧資料部分
403‧‧‧區塊
405‧‧‧部分
410‧‧‧部分
415‧‧‧部分
420‧‧‧部分
505‧‧‧方塊
510‧‧‧方塊
515‧‧‧方塊
520‧‧‧方塊
525‧‧‧方塊
530‧‧‧方塊
535‧‧‧方塊
540‧‧‧方塊
545‧‧‧方塊
605‧‧‧方塊
610‧‧‧方塊
615‧‧‧方塊
620‧‧‧方塊
625‧‧‧方塊
630‧‧‧方塊
635‧‧‧方塊
640‧‧‧方塊
645‧‧‧方塊
第1圖為呈現示例性通用計算環境之方塊圖,本文所述標的之各態樣可併入該示例性通用計算環境;第2圖為大體呈現根據本文所述標的之各態樣的環境之方塊圖;第3圖為圖示根據本文所述標的之各態樣之示例性虛擬儲存器格式之方塊圖;第4圖為圖示根據本文所述標的之各態樣的各種特徵結構之方塊圖;及第5圖至第6圖為大體呈現根據本文所述標的之各態樣可能發生的示例性動作之流程圖。
305‧‧‧區塊位址變換表
310‧‧‧檔案系統元資料部分
315‧‧‧資料部分
403‧‧‧區塊
405‧‧‧部分
410‧‧‧部分
415‧‧‧部分
420‧‧‧部分
权利要求:
Claims (20)
[1] 一種至少部分地由一電腦實施之方法,該方法包含以下步驟:接收一虛擬儲存器位址空間之一指示;將該虛擬儲存器位址空間劃分為固定大小之塊;從一資料源接收資料;接收與該資料相關聯之位址資訊;基於該位址資訊決定該等塊之至少一個塊;向一儲存器系統提供對應於該等塊的該至少一個塊之資料;更新一資料結構以將該位址資訊映射至一識別符,該識別符識別至該儲存器系統之該等塊的該至少一個塊。
[2] 如請求項1所述之方法,其中接收一虛擬儲存器位址空間之一指示的步驟包含以下步驟:接收對應於該虛擬儲存器位址空間之位址之一範圍。
[3] 如請求項2所述之方法,其中更新一資料結構以將該位址映射至一識別符之步驟包含更新一表之一列的一第一欄位及一第二欄位之步驟,該更新該第一欄位之步驟包含在該第一欄位中儲存位址之該範圍的步驟,該更新該第二欄位之步驟包含將對應於該儲存器系統之儲存器之位址的一第二範圍放置在該第二欄位中之步驟,在該儲存器系統中儲存有或將儲存有資料,位址之該第二範圍對應於該識別符。
[4] 如請求項1所述之方法,該方法進一步包含以下步驟:產生關於一備份資料集之元資料,該備份資料集包含該等塊的該至少一個塊;及在發送該等塊的該至少一個塊之前將該元資料提供給該儲存器系統,該元資料指示該等塊的該至少一個塊的一位置,即使該備份資料集之其他資料並未儲存在該儲存器系統上,該元資料仍然可用於從該備份資料集獲取該至少一個塊。
[5] 如請求項1所述之方法,其中接收與該資料相關聯之位址資訊之步驟包含以下步驟:接收一虛擬儲存器偏移量及該資料的一長度。
[6] 如請求項1所述之方法,該方法進一步包含以下步驟:將該等塊的該至少一個塊劃分為較小塊,及在將該資料提供給該儲存器系統之前使用該等較小塊執行一重複刪除。
[7] 如請求項1所述之方法,該方法進一步包含以下步驟:在將該資料提供給該儲存器系統之前壓縮該等塊的該至少一個塊。
[8] 如請求項1所述之方法,該方法進一步包含以下步驟:在將該資料提供給該儲存器系統之前加密該等塊的該至少一個塊。
[9] 如請求項1所述之方法,該方法進一步包含以下步驟:藉由向該儲存器系統發送用於刪除一第一備份集之一或多個區塊的一訊息,以及藉由向該儲存器系統發送指示該第一備份集之其他區塊包含在一第二備份集中的元資料,將該第一備份集與儲存在該儲存器系統上的該第二備份集合併。
[10] 一種具有電腦可執行指令之電腦儲存器媒體,當該電腦儲存器媒體執行動作時,該等動作包含:從一請求者接收對儲存在一儲存器系統上之資料的一請求;接收該資料的一第一位址,該第一位址在一第一位址空間中,該第一位址指示該請求者與該資料相關聯的一儲存位置;基於該第一位址及一資料結構決定一第二位址,該第二位址指示一虛擬儲存器位址空間的一邏輯儲存器偏移量,該虛擬儲存器位址空間被劃分為映射至該儲存器系統之儲存位置的塊,該資料結構在該第一位址空間及該虛擬儲存器位址空間之間提供映射資訊;將該第二位址映射至一第三位址,該第三位址識別該等塊之至少一個塊的一儲存位置,該等塊對應於該儲存器系統上的該資料;使用該第三位址從該儲存器系統取得該等塊中的該至少一個塊;及向該請求者提供該資料。
[11] 如請求項10所述之電腦儲存器媒體,該電腦儲存器媒體進一步包含在將該資料提供給該請求者之前,在該等塊的該至少一個塊上執行一轉換。
[12] 如請求項11所述之電腦儲存器媒體,其中在將該資料提供給該請求者之前,在該等塊資料之該至少一個塊上執行一轉換之步驟包含:解密該等塊的該至少一個塊。
[13] 如請求項11所述之電腦儲存器媒體,其中在將該資料提供給該請求者之前在該等塊之該至少一個塊上執行一轉換之步驟包含:解壓該等塊的該至少一個塊。
[14] 如請求項11所述之電腦儲存器媒體,其中在將該資料提供給該請求者之前在該等塊之該至少一個塊上執行一轉換之步驟包含:逆轉先前應用到該等塊的該至少一個塊的重複刪除。
[15] 如請求項11所述之電腦儲存器媒體,其中在將該等塊之一者之該至少一個塊上提供給該請求者之前在該等資料上執行一轉換之步驟包含:在存放該請求的一裝置上執行該轉換。
[16] 如請求項11所述之電腦儲存器媒體,其中在將該資料提供給該請求者之前在該等塊之該至少一個塊上執行一轉換之步驟包含:在作為該儲存器系統之部分的一裝置上執行該轉換。
[17] 一種在一計算環境中之系統,該系統包含:一資料源,該資料源可操作以向一源讀取器提供資料,該資料源進一步可操作以向該源讀取器提供該資料源與該資料相關聯的一第一位址;及該源讀取器可操作以產生一虛擬儲存器位址空間以及將該虛擬儲存器位址空間劃分為固定大小之塊,該源讀取器進一步可操作以基於該第一位址以及該資料的一長度來決定該等塊的至少一個塊,該源讀取器進一步可操作以將對應於該資料的該等塊的該至少一個塊串流傳輸至一儲存器系統,該源讀取器進一步可操作以維持一資料結構,該資料結構將該等塊的該至少一個塊映射至該儲存器系統的一儲存器識別符。
[18] 如請求項17所述之系統,其中該源讀取器進一步可操作以將一固定大小之塊劃分為較小塊,從而為使用該等較小塊執行一重複刪除轉換做準備。
[19] 如請求項17所述之系統,其中該源讀取器進一步可操作以在將該等塊的該至少一個塊串流傳輸至該儲存器系統之前壓縮該等塊的該至少一個塊。
[20] 如請求項17所述之系統,其中該源讀取器進一步可操作以在將該等塊的該至少一個塊串流傳輸至該儲存器系統之前加密該等塊的該至少一個塊。
类似技术:
公开号 | 公开日 | 专利标题
TWI544333B|2016-08-01|用於備份應用程式的儲存器結構之方法、電腦儲存媒體及系統
US9792306B1|2017-10-17|Data transfer between dissimilar deduplication systems
US20190026192A1|2019-01-24|Backing up data to cloud data storage while maintaining storage efficiency
CN105474200B|2019-01-22|具有占位符的水合和脱水
US20170277597A1|2017-09-28|Efficient creation of multiple retention period based representations of a dataset backup
US10620834B2|2020-04-14|Managing storage space based on multiple dataset backup versions
KR20130120516A|2013-11-04|컨텐츠 기반 파일 청크
JP2010072746A|2010-04-02|ストレージシステム、及びストレージシステムの運用方法
US10983867B1|2021-04-20|Fingerprint change during data operations
US10489345B2|2019-11-26|Multiple retention period based representations of a dataset backup
US10146694B1|2018-12-04|Persistent cache layer in a distributed file system
TW201516658A|2015-05-01|用於執行透明大量儲存備份及快照的方法及裝置
US10891074B2|2021-01-12|Key-value storage device supporting snapshot function and operating method thereof
CN104965835A|2015-10-07|一种分布式文件系统的文件读写方法及装置
US10452482B2|2019-10-22|Systems and methods for continuously available network file system | state data
US20070192376A1|2007-08-16|Method and system for storing large data files
JP2016514393A|2016-05-19|差分符号化のためのシリアライゼーション
US7685186B2|2010-03-23|Optimized and robust in-place data transformation
TW201935243A|2019-09-01|固態驅動器、分散式資料儲存系統和利用鍵值儲存的方法
US20180107404A1|2018-04-19|Garbage collection system and process
CN109144406A|2019-01-04|分布式存储系统中元数据存储方法、系统及存储介质
US7162479B2|2007-01-09|Method and system for storing large data files
TW202203016A|2022-01-16|用於排序鍵的鍵值儲存裝置及方法
US7428548B2|2008-09-23|Computer readable medium for storing large data files
KR20220006458A|2022-01-17|키-밸류 저장 장치 및 키 분류 방법
同族专利:
公开号 | 公开日
CN103608783A|2014-02-26|
EP2718825A2|2014-04-16|
CN103608783B|2017-08-08|
US20120317379A1|2012-12-13|
US8868882B2|2014-10-21|
EP2718825A4|2014-11-26|
WO2012170235A3|2013-02-28|
TWI544333B|2016-08-01|
WO2012170235A2|2012-12-13|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
US6880053B2|2002-12-19|2005-04-12|Veritas Operating Corporation|Instant refresh of a data volume copy|
CN100504854C|2003-01-14|2009-06-24|联想有限公司|文件管理方法|
US7584266B2|2003-12-16|2009-09-01|International Business Machines Corporation|Autonomous storage for backup, restore, and file access|
US7478101B1|2003-12-23|2009-01-13|Networks Appliance, Inc.|System-independent data format in a mirrored storage system environment and method for using the same|
US7415577B2|2004-03-10|2008-08-19|Intel Corporation|Method and apparatus to write back data|
US7506010B2|2005-02-08|2009-03-17|Pro Softnet Corporation|Storing and retrieving computer data files using an encrypted network drive file system|
US8370819B2|2005-03-25|2013-02-05|Microsoft Corporation|Mechanism to store information describing a virtual machine in a virtual disk image|
US8321377B2|2006-04-17|2012-11-27|Microsoft Corporation|Creating host-level application-consistent backups of virtual machines|
US7676502B2|2006-05-22|2010-03-09|Inmage Systems, Inc.|Recovery point data view shift through a direction-agnostic roll algorithm|
US7613750B2|2006-05-29|2009-11-03|Microsoft Corporation|Creating frequent application-consistent backups efficiently|
US8195912B2|2007-12-06|2012-06-05|Fusion-io, Inc|Apparatus, system, and method for efficient mapping of virtual and physical addresses|
US8069341B2|2007-06-29|2011-11-29|Microsoft Corporation|Unified provisioning of physical and virtual images|
US7962452B2|2007-12-28|2011-06-14|International Business Machines Corporation|Data deduplication by separating data from meta data|
US7792934B2|2008-01-02|2010-09-07|Citrix Systems International Gmbh|Loading of server-stored user profile data|
US8312217B2|2008-12-30|2012-11-13|Rasilient Systems, Inc.|Methods and systems for storing data blocks of multi-streams and multi-user applications|
IL204704A|2009-03-25|2016-04-21|Ibm|A method and system for modifying logical information objects for storage|
US20100262797A1|2009-04-10|2010-10-14|PHD Virtual Technologies|Virtual machine data backup|
KR101674015B1|2009-06-23|2016-11-08|시게이트 테크놀로지 엘엘씨|데이터 저장 매체 액세스 방법과 그와 같은 기능을 갖는 데이터 저장 장치 및 기록 매체|
US20100332549A1|2009-06-26|2010-12-30|Microsoft Corporation|Recipes for rebuilding files|
US9058298B2|2009-07-16|2015-06-16|International Business Machines Corporation|Integrated approach for deduplicating data in a distributed environment that involves a source and a target|
US9122579B2|2010-01-06|2015-09-01|Intelligent Intellectual Property Holdings 2 Llc|Apparatus, system, and method for a storage layer|
US8856080B2|2009-10-30|2014-10-07|Microsoft Corporation|Backup using metadata virtual hard drive and differential virtual hard drive|
US8171253B2|2009-10-30|2012-05-01|Brocade Communications Systems, Inc.|Virtual disk mapping|
CN101876949B|2009-11-30|2012-04-25|威盛电子股份有限公司|数据储存系统与方法|KR101973510B1|2011-06-30|2019-05-09|삼성전자주식회사|컨텐츠를 보호하기 위한 저장 장치 및 호스트 장치와 그 방법|
CN103577281A|2012-07-30|2014-02-12|北京网秦天下科技有限公司|一种数据恢复的方法和系统|
CN103577280A|2012-07-30|2014-02-12|北京网秦天下科技有限公司|一种数据备份的方法和系统|
US10031961B1|2013-06-20|2018-07-24|Ca, Inc.|Systems and methods for data replication|
CN104426971B|2013-08-30|2017-11-17|华为技术有限公司|一种远程内存交换分区方法、装置及系统|
CN104205730B|2013-12-31|2017-09-29|华为技术有限公司|网元数据访问方法、虚拟网元、网络管理服务器及网络管理系统|
US9626367B1|2014-06-18|2017-04-18|Veritas Technologies Llc|Managing a backup procedure|
JP6344675B2|2014-08-12|2018-06-20|華為技術有限公司Huawei Technologies Co.,Ltd.|ファイル管理方法、分散記憶システムおよび管理ノード|
CN107667351B|2015-05-27|2021-12-21|谷歌有限责任公司|用于移动设备上的自动基于云的全数据备份和恢复的系统和方法|
DE102015114544A1|2015-08-31|2017-03-02|Uniscon Universal Identity Control Gmbh|Verfahren zum sicheren und effizienten Zugriff auf Verbindungsdaten|
US10742720B2|2016-02-29|2020-08-11|Seagate Technology Llc|Cloud storage accelerator|
WO2018081960A1|2016-11-02|2018-05-11|华为技术有限公司|管理文件的方法、文件系统和服务器系统|
US10268593B1|2016-12-20|2019-04-23|Amazon Technologies, Inc.|Block store managamement using a virtual computing system service|
US10809920B1|2016-12-20|2020-10-20|Amazon Technologies, Inc.|Block store management for remote storage systems|
US10185507B1|2016-12-20|2019-01-22|Amazon Technologies, Inc.|Stateless block store manager volume reconstruction|
US10921991B1|2016-12-20|2021-02-16|Amazon Technologies, Inc.|Rule invalidation for a block store management system|
US10701153B1|2017-04-30|2020-06-30|EMC IP Holding Company LLC|Cloud data archiving using latest snapshot metadata|
JP2019159791A|2018-03-13|2019-09-19|東芝メモリ株式会社|メモリシステム|
CN109947469B|2019-03-08|2021-09-17|广州安加互联科技有限公司|地址划分方法、装置及计算机可读存储介质|
法律状态:
2019-05-01| MM4A| Annulment or lapse of patent due to non-payment of fees|
优先权:
申请号 | 申请日 | 专利标题
US13/155,401|US8868882B2|2011-06-08|2011-06-08|Storage architecture for backup application|
[返回顶部]