專利名稱:支持即時卷恢復的仿真存儲系統的制作方法
技術領域:
本發明的各個方面涉及數據存儲,更加確切地說,涉及用于仿真磁帶存儲系統以提供使用現有的完整備份和以后的增量備份的等同物,并使終端用戶能夠從所述備份中恢復數據的裝置和方法。
背景技術:
許多計算機系統包括一個或多個主機和儲存主機所使用的數據的一個或多個數據存儲系統。這些主機和存儲系統一般通過例如光纖通道、以太網絡或其他類型的通信網絡的網絡連接在一起。光纖通道是一種結合了以通道為基礎的傳送機制的速度和以網絡為基礎的傳送機制的靈活性的標準,并允許多個啟動通過網絡與多個目標通信,所述啟動和目標可以是與網絡耦合的任何設備。光纖通道通常使用快速的傳送介質執行,舉例來說,光學纖維電纜,而且在傳送大量數據的存儲網絡中,所述光纖通道是普遍的選擇。
典型的網絡化計算環境的實施例,包括如附圖1所示的幾個主機和備份存儲系統。一個或多個應用程序服務器102通過局域網103(LAN)耦合到多臺用戶計算機104上。應用程序服務器102和用戶計算機104都可能被認為是“主機”。應用程序服務器102通過存儲區域網絡108(SAN)與一個或多個主存儲設備106耦合。主存儲設備106可能是,例如磁盤陣列,可以從例如EMC公司、IBM公司以及其他類似的公司獲得。作為替代,數據傳輸總線(未顯示)或其他網絡連接可能提供應用程序服務器和主存儲系統106之間的相互連接。數據傳輸總線和/或光纖通道網絡的連接可以使用協議操作,例如小型計算機系統接口(SCSI)協議,SCSI控制在主機(例如,應用程序服務器102)和存儲系統106之間傳輸的某種格式的信息包。
人們將理解,附圖1舉例說明的網絡化計算環境是大型系統的典型,例如,大的金融機構或大公司所使用的系統。人們將領會到許多網絡化計算環境不是必須包括附圖1中列舉的所有部件。例如,較小的網絡化計算環境可以簡化為包括直接與存儲系統連接的,或通過LAN與存儲系統連接的主機。另外,盡管附圖1舉例說明了單獨的用戶計算機104、應用程序服務器102和介質服務器114,這些功能可以合并為一臺以上的計算機。
除了主存儲設備106之外,許多網絡化計算環境包括至少一個輔助或備份存儲系統110。所述備份存儲系統110通常是磁帶庫,盡管可能使用其他大容量的、可靠的輔助存儲系統。典型地,這些輔助存儲系統的速度比主存儲系統的速度慢,但是包括某些可移動介質的某些類型(例如,磁帶、磁盤或光盤),所述可再移動的介質可以被移動和異地存儲。
在解釋性的實施例中,應用程序服務器102或許能夠通過,例如以太網或其他通信連接112,直接與備份存儲系統110通信。然而,所述的連接可能相對慢并且占用資源,例如占用處理器時間或網絡帶寬。因此,用于舉例說明的系統可能包括一個或多個介質服務器114,所述介質服務器114可以借助例如光纖通道,來提供SAN 108和備份存儲系統110之間通信連接。
介質服務器114可以運行包括備份/恢復應用程序的軟件,所述應用程序控制主機(例如用戶計算機104,介質服務器114,和/或應用程序服務器102)、主存儲設備106和備份存儲系統110之間的數據的傳輸。備份/恢復應用程序可以從例如Veritas,Legato以及其他的公司獲得。對于數據的保護,來自各種不同的主機和/或主存儲設備的數據在網絡化計算系統中可以通過備份/恢復應用程序被周期性地備份到備份存儲系統110中,這在本領域內是公知的。
當然,正如上文中的討論,人們將領會到與附圖1中展示的作為典范的網絡化計算環境相比,許多網絡化計算環境可能是較小的并包括較少的部件。因此,人們仍將領會到介質服務器114實際上與單獨主機中的應用程序服務器112連接,而且備份/恢復應用程序可以在任何與備份存儲系統110耦合(直接地或間接地,例如通過網絡)的主機上執行。
典型的備份存儲系統的一個例子是磁帶庫,該磁帶庫包括若干磁帶盒和至少一個磁帶機,以及控制磁帶盒載入的磁帶機和從磁帶機上卸載的自動機械裝置。備份/恢復應用程序對自動機械裝置提供指令以確定特定磁帶盒的位置,例如磁帶號0001,和將磁帶盒載入的磁帶機以致數據能夠寫入磁帶中。備份/恢復應用程序也可控制寫入磁帶的數據的格式。典型地,備份/恢復應用程序可以使用SCSI命令,或其他標準化命令,以指令自動機械裝置并控制磁帶機將數據寫入磁帶和恢復來自磁帶的已經寫入的數據。
傳統的磁帶庫備份系統存在若干問題,包括速度、可靠性和固定容量。許多大的公司每周需要備份萬兆字節的數據。然而,即使昂貴的、高端磁帶通常只能夠以30-40兆字節/秒(MB/s)的速度讀/寫數據,轉換為大約50千兆字節/小時(GB/hr)。因此,將一個或兩個萬兆字節的數據備份到磁帶備份系統中可能需要至少10-20小時的連續的數據轉換時間。
另外,大多數的磁帶制造商不能保證存儲(或恢復)數據到/從磁帶的可能性,如果磁帶丟失(在移動或載入操作期間磁帶丟失,可能由于人們的操作或自動機械裝置的原因相對頻繁地發生在典型的磁帶庫中)或如果磁帶暴露在非理想的環境,舉例來說,極端的溫度或濕度中。因此,需要大量的努力來使存儲磁帶處于能控制的環境中。而且,磁帶庫的復合機構(包括自動機械裝置)的維護昂貴,而且個別的磁帶盒相對昂貴而且具有有限的使用期限。
發明內容本發明的實施方案提供的備份存儲系統克服或緩解傳統的磁帶庫系統的某些或全部問題,而且可以比傳統的磁帶庫系統提供更多的靈活性。
概括地說,本發明的實施方案的各個方面提供以隨機存儲為基礎的存儲系統,所述存儲系統仿效傳統的磁帶備份存儲系統,以致備份/恢復應用程序所標示到的設備和介質與真實的磁帶庫一樣。本發明的存儲系統使用軟件和硬件以仿真真實的磁帶介質,并用一個或更多的隨機存儲磁盤陣列替代,將磁帶格式、線性的、順序數據轉變適合于存儲在磁盤上的數據。另外,提供在硬件和/或軟件上運行的應用程序用于恢復存儲在備份存儲系統中的數據。
依據本發明的實施方案的某些方面,提供的裝置用于將連續的磁帶格式數據轉換為適當的格式以隨機訪問I/O。在一個實施方案中,提供的裝置包括為將磁帶格式數據的轉換表達式作為NFS(網絡文件系統)或CIFS(普通的因特網文件系統)安裝卷安裝到主機上而做的準備。
依據本發明的其他方面和實施方案,提供用于將寫入轉換為安裝的文件系統以“安全存儲”的裝置,借此原始數據保持不變。在一個實施方案中,提供的裝置用于跟蹤原始數據的實時變換,以使隨機訪問I/O成為可能。在另一個實施方案中,提供的裝置用于將最新寫入的數據備份轉換為對于順序磁帶特征的I/O來說是適當的磁帶格式數據。
在一個實施方案中,方法包括以下步驟將數據卷安裝到主機上,所述數據卷包括至少一份數據文件,該數據文件與存儲在備份存儲系統中的至少一份數據文件的最新備份版本相對應,在備份存儲系統中存儲與所述至少一份數據文件的第二版本相對應的數據,當保存至少一份數據文件的最新備份版本時,所述數據比存儲在備份存儲系統中的至少一份數據文件的最新備份版本更新。該方法可能也包括連接至少一份數據文件的最新備份版本與至少一份數據文件的第二版本。在一個實施例中,該方法可能也包括新建標示至少一份數據文件的最新備份版本與至少一份數據文件的第二版本的數據結構。在另一個實施例中,至少一份數據文件的第二版本可能是至少一份數據文件的最新備份版本的修改版本。
依據另一個實施方案,備份存儲系統包括用于存儲備份數據集的備份存儲介質,和控制器,該控制器包括至少一個處理器,該處理器經過配置用于執行運行上文中所描述的方法的一系列指令。
在另外一個實施方案中,提供的計算機可讀介質中存儲有數據結構,該數據結構包括第一標示工具包,該第一標示工具包唯一地標示與備份數據集對應的包括至少一份數據文件的系統文件,以及至少一個第二標示工具包,該第二標示工具包標示存儲介質中的各自的存儲位置,所述存儲介質儲存備份數據集中的至少每一份數據文件的最新版本。
附圖不是根據比例繪制的。附圖中,解釋說明的各附圖中的每一個相同的或基本相同的部分用同一數字表示。為了表示清楚,并不是每一部分都標注在每一份附圖中。在附圖中附圖1是包括備份存儲系統的大型網絡化計算環境的一個實施例的方框圖;附圖2是依據本發明的各個方面包括存儲系統的網絡化計算環境的一個實施方案的方框圖;附圖3是依據本發明的各個方面的存儲系統的一個實施方案的方框圖;附圖4是舉例說明依據本發明的各個方面的存儲系統的一個實施方案的虛擬設計的方框圖;附圖5是依據本發明的各個方面的系統文件的一個實施例的示意圖;附圖6是依據本發明的各個方面磁帶目錄的一個實施例;附圖7是依據本發明的各個方面,新建合成完整備份的方法的一個實施例的圖表描述;
附圖8是依據本發明的各個方面,包含有合成的完整備份的備份數據集系列的一個實施例的示意圖;附圖9是元數據高速緩沖存儲器的結構的一個實施例的圖表;附圖10是存儲合成的完整備份數據集的虛擬編碼磁帶的一個實施例的圖表;以及附圖11是存儲合成的完整備份數據集的虛擬編碼磁帶的另一個實施例的圖表;附圖12是依據本發明的各個方面,用于恢復備份存儲系統中的數據的方法的一個實施方案的流程圖;附圖13是依據本發明的各個方面,包括備份存儲系統的網絡化計算環境的另一個實施方案的方框圖;附圖14是依據本發明的各個方面文件描述符結構的一個實施例的圖表;附圖15用圖表解釋說明文件數據是如何以磁帶格式存儲的一個實施例;附圖16用圖表解釋說明附圖15的文件描述的文件描述符;附圖17是依據本發明將數據寫入安裝的數據卷的方法的一個實施方案流程圖;附圖18是新寫入文件的示意 附圖19是依據本發明的各個方面,原始數據、新寫入文件和最終修改文件之間的關系的一個實施例的示意圖;以及附圖20是表示附圖19的修改文件的文件描述符的一個實施例的圖表;具體實施方式
下面結合相應的附圖對各種不同的實施方案和方面進行更加詳細的描述。人們將領會到,本發明并不將其應用限制在下文中闡述的部件的結構和布置,或附圖中解釋說明的細節中。本發明適用于其他的實施方案并能夠以各種不同的方式實踐和執行。而且,本文中使用的措辭和術語是出于描述的目的,而不能被認為是限制。“包括”、“包括”、“具有”、“包含”、“涉及”的使用和它們的聯合使用,這些措辭和術語的使用是指包含其后所列出的項目和等同意思以及附件的項目。
正如本文中使用的術語“主機”是指任何至少具有處理器的計算機,舉例來說,個人計算機、工作站、大型機、網絡客戶和服務器等等,所述主機能夠與其他的設備通信,例如,存儲系統或其他主機。主機可能包括介質服務器和應用程序服務器(如前面結合附圖1的描述)以及用戶計算機(可能是用戶工作站、個人計算機、大型機等等)。另外,在公開的文件中,術語“網絡化計算環境”包括任何計算環境,其中多臺主機被連接到一個或多個共享的存儲系統中,在這種方式中,存儲系統可以與每一臺主機通信。光纖通道是通信網絡的一個實施例,所述通信網絡可以用于本發明的實施方案中。然而,人們將領會到,本文描述的網絡并不限于光纖通道,而且各種不同的網絡部件可能通過任何的網絡連接而互相通信,舉例來說,Token Ring或以太代替,或者除光纖通道以外,或通過不同的網絡連接的結合。而且,本發明的各個方面可能也被用在數據傳輸總線拓撲,例如,SCSI或并行的SCSI。
依據本發明的各種不同的實施方案和各個方面,提供的虛擬可移動介質庫備份存儲系統可以使用一個或多個磁盤陣列,以存儲系統為基礎模擬可移動的介質。使用本發明的實施方案,數據可以備份到磁盤陣列是通過使用類似的備份/恢復應用程序完成的,正如被用于備份數據到可移動的介質(舉例來說,磁帶、磁盤、光盤等等),免除了用戶必須對現有的備份程序作出任何修改或調整或購買新的備份/恢復應用程序。在一個實施方案中,本文詳細描述的,可再移動介質被仿真為磁帶,而且本發明的備份存儲系統仿效的磁帶庫系統包括磁帶和在傳統的磁帶庫系統中用于處理磁帶的自動裝置。
依據本發明的各個方面的存儲系統包括通過界面與主機(運行備份/恢復應用)和備份存儲介質連接的硬件和軟件。所述存儲系統可以被設計為仿真磁帶,或其他類型的可再移動存儲介質,以致備份/恢復應用程序將所述裝置和介質視為真實的磁帶庫,并將線性、順序數據、磁帶格式數據轉換為適合于存儲到隨機存儲磁盤中的數據。以所述方式,本發明的存儲系統可以提供增加的功能(舉例來說,允許用戶查詢個別備份的用戶文件,如下文所討論的)而不要求新的備份/恢復應用軟件或策略。
參考附圖2,以方框圖的形式解釋說明依據本發明的方面包括備份存儲系統170的網絡計算機環境的一個實施例。正如舉例的那樣,主機120通過網絡連接121與存儲系統170耦合。網絡連接121可能是,例如,光纖通道連接以允許主機120和存儲系統170之間的數據的高速傳遞。人們將領會到,主機120可能是,或可能包括一個或多個應用程序服務器102(參見附圖1)和/或介質服務器114(參見附圖1),并且可能從網絡計算機環境中現有的任何一臺計算機或者從主要的存儲設備110(參見附件1)中備份數據。另外,一個或多個用戶計算機136可能通過另外的網絡連接138例如以太連接,與存儲系統170耦合。正如以下詳細的討論,存儲系統可以使用戶計算機136的用戶閱讀和選擇性的從存儲系統中恢復備份的用戶文件。
存儲系統包括備份存儲介質126,所述備份存儲介質126可能是,舉例來說,一個或多個磁盤陣列,正如以下更為詳細的解釋。備份存儲介質126為來自主機120的備份數據提供實際的存儲空間。然而,存儲系統170可能也包括軟件和附加的硬件,所述硬件仿效可移動的介質存儲系統,例如,磁帶庫,以致在主機120上運行備份/恢復應用程序,數據看起來被備份到傳統的可移動式存儲介質。因此,正如附圖2中的解釋那樣,存儲系統170可能包括“仿真介質”134,該“仿真介質”134表示例如,虛擬的或仿真的可移動存儲介質(例如,磁帶)。所述“仿真介質”134通過存儲系統軟件和/或硬件存在于主機中,并且作為物理存儲介質出現在主機120中。介于仿真介質134和實際的備份存儲介質126之間的進一步的界面可能是存儲系統控制器(未顯示)和開關網絡132,所述開關網絡132接收來自主機120的數據并將數據儲存到備份存儲介質126上,正如以下更加詳細的討論。借助這種方式,存儲系統“仿真”傳統的磁帶式存儲系統到主機120中。
依據一個實施方案,存儲系統可以包括“邏輯元數據高速緩沖存儲器”242,所述邏輯元數據高速緩沖存儲器242存儲涉及從主機120備份到存儲系統170的用戶數據的元數據。正如本文所使用的術語“元數據”是指表示用戶數據的信息,和描述真實的用戶數據屬性的數據。邏輯元數據高速緩沖存儲器242表示可查詢的數據集,使用戶和/或軟件應用能夠隨機確定備份用戶文件的位置,對比用戶文件與另外一個文件,或訪問和處理備份用戶文件。兩個軟件應用程序的實施例可能使用存儲在邏輯元數據高速緩沖存儲器242中的數據,包括下文中將要更加全面討論的合成的完整備份應用程序240和終端用戶恢復應用程序300。
概括地說,合成的完整備份應用程序240具有從一個現有的完整備份數據集和一個或多個增量備份數據集中新建合成的完整備份數據集的能力。合成的完整備份可以免除完成周期性(舉例來說,每周)完整備份的需要,因此,節省可觀的時間和網絡資源。合成的完整備份應用程序240的細節將在下文中做更進一步的討論。終端用戶恢復應用程序300,也將在下文中做更進一步的討論,使終端用戶(舉例來說,用戶計算機136的操作人員)能夠瀏覽、查詢、閱讀和/或恢復以前從存儲系統170中備份的用戶文件。
正如上文所討論的,存儲系統170包括與主機120和備份存儲介質126界面連接的硬件和軟件。結合本發明的實施方案的硬件和軟件可以仿真傳統的磁帶庫備份系統,以致從主機的120的角度看,數據顯然備份到磁帶上,但是實際上備份到另外一個存儲介質中,舉例來說,例如,眾多磁盤陣列。
參考附圖3,用方框圖的形式解釋依據本發明的各方面的存儲系統170的一個實施方案。在一個實施例中,存儲系統170的硬件包括存儲系統控制器122和連接存儲系統控制器122和備份存儲介質126的開關網絡132。存儲系統控制器122包括處理器127(可能是單個的處理器或多個處理器)和記憶器129(舉例來說,RAM,ROM,PROM,EEPROM,閃存等等,或它們的結合),可以運行所有或部分存儲系統軟件。記憶器129也可以用于存儲與儲存在備份存儲介質126中的數據相關的元數據。軟件(包括程序編碼執行本發明的實施方案)通常存儲在可讀/可寫的非易失性記錄介質中,舉例來說,RAM,ROM,光盤、磁盤或磁帶等等,然后拷貝到記憶器129中,其中軟件被處理器127執行。所述程序編碼可能以多種編程語言中的任何一種語言來書寫,舉例來說,Java,Visual Basic,C,C#,或 C++,Fortran,Pascal,Eiffel,Basic,COBAL,及其結合的語言,由于本發明不限于特殊的編程語言。典型地,在操作中,處理器127致使數據(舉例來說,執行本發明的實施方案的編碼)被從非易失性記錄介質中讀取到另外一種記憶形式,例如,RAM,允許以比非易失性記錄介質更快的速度訪問處理器的信息。
正如附圖3所示,控制器122也包括一系列將控制器122和主機120連接到開關網絡132的接口適配器124a,124b和124c。正如舉例說明的那樣,主機120通過接口適配器124a與存儲系統耦合,所述接口適配器124a可能是,舉例來說,光纖通道的接口適配器。通過存儲系統的控制器122,主機120將數據備份到備份存儲介質126中,并能夠恢復從備份存儲介質126中備份的數據。
在示例性實施例中,開關網絡132可能包括一個或多個光纖通道開關128a,128b。存儲系統控制器122包括眾多光纖通道接口適配器124b和124c,以將存儲系統控制器耦合到光纖通道開關128a,128b。通過光纖通道開關128a,128b,存儲系統的控制器122允許數據備份到備份存儲介質126中。如附圖3所舉例的那樣,開關網絡132可以進一步包括一個或更多以太開關130a,130b,所述以太開關130a,130b通過以太接口適配器125a,125b與存儲系統的控制器122耦合。在一個實施例中,存儲系統控制器122進一步包括另外一種以太接口適配器125c,可以與,例如LAN103耦合,以促使存儲系統170與主機(例如,用戶計算機)通信,如下文中的討論。
在附圖3舉例說明的實施例中,存儲系統控制器122通過開關網絡與備份存儲介質126耦合,所述開關網絡包括兩種光纖通道開關和兩種以太開關。提供至少兩種存儲系統170中的開關的每一種類型仿真系統中的任何單一失效點。換句話說,即使一個開關(例如,光纖通道開關128a)失效,存儲系統控制器122仍將能夠通過另外一個開關與備份數據介質126通信。在穩定性和速度方面,所述安排有優勢。舉例來說,如上文中的討論,穩定性通過提供的備用元件和消除單一失效點得到改善。而且,在某些實施方案中,存儲系統控制器能夠通過使用某些或全部的并聯的光纖通道開關將數據備份到備份存儲介質126中,從而提高整體的備份速度。然而,人們將領會到,并不要求系統包括兩種或更多的開關的每一種類型,也不要求開關網絡既包括光纖通道也包括以太開關。更進一步,在包括單一磁盤陣列的備份存儲介質126的實施例中,根本不需要開關。
正如上文中的討論,在一個實施方案中,備份存儲介質126可能包括一個或更多的磁盤陣列。在一個優選的實施方案中,備份存儲介質126包括眾多ATA或SATA磁盤。所述磁盤是“待售”商品,與傳統的由例如EMC,IBM等制造商的存儲陣列商品相比更便宜。而且,當可再移動介質(舉例來說,磁帶)的成本是一種因素和介質的使用壽命有限時,所述磁盤在成本上可與傳統的磁帶為基礎的備份存儲系統相比。另外,所述磁盤讀/寫數據實質上比磁帶快。舉例來說,通過單一的光纖網絡連接,數據可以至少大約150MB/s的速度被備份到磁盤上,150MB/s轉換為大約540GB/hr,明顯快于磁帶的備份速度(例如,通過磁盤順序)。另外,幾個光纖通道連接可以并聯執行,從而進一步提高速度。依據本發明的實施方案,備份存儲系統介質可以被集合執行任何一個RAID(廉價磁盤冗余陣列)序列。舉例來說,在一個實施方案中,備份存儲介質可以執行RAID-5任務。
正如上文所討論的,本發明的實施方案仿真傳統的磁帶庫備份系統時通過使用磁盤陣列代替磁帶盒作為真實的備份存儲介質來實現的,因此提供“虛擬磁帶庫”。真實的磁帶盒出現在傳統的磁帶庫中被本文中使用的術語“虛擬編碼磁帶”替代。人們將領會到,出于公開的目的,術語“虛擬磁帶庫”是指可以在軟件和/或物理硬件中執行的仿真磁帶庫,舉例來說,作為一個或多個磁盤陣列。人們將進一步領會到,盡管討論主要涉及仿真磁帶,存儲系統也可以仿真其他的存儲介質,舉例來說,CD-ROM或DVD-ROM,而且術語“虛擬編碼磁帶”一般是指仿真的存儲介質,例如,仿真磁帶或仿真CD。在一個實施方案中,虛擬編碼磁帶實際上對應于一個或更多的硬盤。
因此,在一個實施方案中,提供軟件界面以仿真磁帶庫到備份/恢復應用,看起來數據被備份到磁帶。然而,真實的磁帶庫被一個或多個磁盤陣列替代,以致數據實際上被備份到這些磁盤陣列中。人們將領會到,可移動介質保存系統的其他類型可以被仿真,而且本發明不限于磁帶庫存儲系統的仿真。以下的討論將解釋包括在存儲系統170中的各個方面特征和軟件的操作。
人們將認識到,盡管可能描繪的軟件被“包括”在存儲系統170中,并且可能被存儲系統控制器122(參見附圖3)的處理器127運行,并不要求所有的軟件在存儲系統控制器122中運行。軟件程序,舉例來說,合成完整備份的應用程序和終端用戶恢復應用程序可以在主機和/或用戶計算機上運行,在此部分可能通過全部或某些存儲系統控制器、主機和用戶計算機分配。因此,人們將認識到并不要求存儲系統控制器包含物理實體,例如計算機。存儲系統170與儲存在主機中的軟件通信,例如,舉例來說,介質服務器114和應用程序服務器102。另外,存儲系統可能包含幾個能夠在相同和不同的主機上運行和保留的應用軟件。而且,人們將領會到,存儲系統170并不限于裝置的離散片斷,盡管在某些實施方案中,存儲系統170可以作為裝置的離散片斷體現。在一個實施例中,存儲系統170可以提供作為自包含單元,起到“中止和開始”的作用取代傳統磁帶庫備份系統(舉例來說,對現有的備份處理器和策略不需要作出的修改)。所述存儲系統單元可以在網絡化計算環境中使用,包括傳統的備份系統以提供冗余或額外的存儲能力。
正如上文中的討論,依據一個實施方案,主機120(可能是,例如附圖1中的應用程序服務器102或介質服務器114)可以通過網絡連接121(舉例來說,光纖連接)將數據備份到備份存儲介質126中,所述網絡連接121將主機120耦合到存儲系統170中。人們將認識到,盡管以下的討論將優先涉及數據在仿真介質中的備份,原理也適用于從仿真介質中恢復備份數據。主機120和仿真介質134之間的數據流可以被備份/恢復應用程序控制,正如上文中的討論。從備份/恢復應用程序的觀點來看,明顯的是,數據實際上被備份到仿真介質的真實的版本中。
參考附圖4,存儲系統軟件150可能包括一個或更多的表示仿真介質的邏輯抽象層,并提供固定在主機120中的備份/恢復應用程序140和備份存儲介質126之間的界面。軟件150接受來自備份/恢復應用140的磁帶格式數據,并將所述數據翻譯為適合于存儲在隨機訪問磁盤(舉例來說硬盤、光盤等類似的介質)中的數據。在一個實施例中,軟件150在存儲系統控制器122的處理器127中運行,而且可以被存儲在記憶器129中(參見附圖3)。
依據一個實施方案,軟件150可以包括層、至于本文中涉及的虛擬磁帶庫(VTL)層142可以提供SCSI磁帶的仿真、磁帶機和用于將磁帶轉換為磁帶機的格式和從磁帶機轉換為磁帶的格式的自動裝置。備份/恢復應用140可以使用例如,SCSI命令(用箭頭144表示)與VTL142通信(舉例來說,備份或將數據讀入仿真介質中)。因此,VTL可以形成其他的存儲系統軟件和硬件和備份/恢復應用程序之間的軟件界面,仿真存儲系統介質134(附圖2中)出現在備份/恢復應用程序中,并允許仿真介質作為傳統的可再移動備份存儲介質出現在備份/恢復應用程序中。
本文中提到的第二軟件層,如文件系統層146可以提供仿真存儲介質(在VTL中表示的)和真實的備份存儲介質126之間的界面。在一個實施例中,文件系統146起到微調系統以與備份的存儲介質126通信的作用,舉例來說,使用SCSI命令(用箭頭148表示),以從備份存儲介質126中讀和寫數據。
在一個實施方案中,所述VTL提供一般的磁帶庫支持,而且可以支持任何SCSI介質的轉換器。仿真的磁帶設備可以包括,但不限于IBM LTO-1和LTO-2磁帶設備、Quantum SuperDLT320磁帶設備、Quantum P3000磁帶庫系統,或Storage TekL180磁帶庫系統。在VTL中,每一個虛擬編碼磁帶是文件,當數據存儲時,所述文件動態增長。這與有固定尺寸的傳統的磁帶盒相反。一個或更多的虛擬編碼磁帶可以存儲在系統文件中,正如下文中參考附圖5的進一步描述。
在附圖5中,舉例說明在文件系統軟件146中數據結構的一個實施例,依據本發明的一個實施方案解釋說明了系統文件200。在所述的實施方案中,系統文件200包括頭202和數據204。所述頭202可能包括標示每一個虛擬編碼磁帶的信息,虛擬編碼磁帶存儲在系統文件中。不管虛擬編碼磁帶是否寫保護,所述頭可以包括的信息有,虛擬編碼磁帶的新建/修改數據等等。在一個實施例中,頭202包括的信息唯一地標示每一個編碼磁帶,并從其他的儲存在存儲系統中的虛擬編碼磁帶中將每一個編碼磁帶區分開。舉例來說,信息可能包括名稱和虛擬編碼磁帶的標示碼(例如,對應于通常在真實的磁帶上表示的條形碼,以致磁帶可以被自動裝置標示)。頭202也可以包括附加的信息,舉例來說,每一個虛擬編碼磁帶的容量,最近修改的數據等等。
依據本發明的一個實施方案,可以充分利用頭202的大小以反映出存儲數據的類型(舉例來說,虛擬編碼磁帶表示數據從一個和更多的主機系統中備份數據),和一系列明顯的系統可以跟蹤的所述數據集(例如,虛擬編碼磁帶)。舉例來說,通常備份到磁帶存儲系統的數據一般是用較大的數據集標識特征,代表數字系統和用戶文件。由于數據集非常大,一系列被跟蹤的離散數據文件可能相對小些。相應地,在一個實施方案中,頭202的大小的選擇是建立在由于存儲數據的太多而不能有效保持跟蹤(例如,頭太大)和沒有空間用于存儲足夠數量的編碼磁帶的標示(例如,頭太小)之間妥協的基礎上。在一個可仿效的實施方案中,頭202利用系統文件200的第一32MB。然而,人們將認識到,在系統需要和特征的基礎上,頭202可以有不同的大小,取決于系統的需求和容量,人們可以為頭202選擇不同的大小。
人們將領會到,從備份/恢復應用程序的觀點來看,具有全部相同的屬性和特征的虛擬編碼磁帶作為真實的磁帶盒出現。換句話說,對于備份/恢復應用程序,虛擬編碼磁帶實質上作為寫入磁帶出現。然而,在一個優選的實施方案中,存儲在虛擬編碼磁帶中的數據不是按照順序格式儲存到備份存儲介質126中,而是,表面上被寫入虛擬編碼磁帶的數據實際上是作為可以隨機訪問的、磁盤格式數據被儲存在存儲系統的文件中。元數據被用于連接存儲的數據到虛擬編碼磁帶,以致備份/恢復應用程序可以編碼磁帶格式來讀和寫。
因此,從一個優選的實施方案整體說來,用戶和/或系統數據(本文中是指“文件數據”)被存儲系統170從主機120上接收,并被存儲在補充備份存儲介質126的磁盤陣列中。軟件150(參考附圖4)和/或存儲系統的硬件將這個文件數據以系統文件的格式寫入到備份的存儲介質126中,如下文中更加詳細的描述。被存儲系統控制器從備份文件數據中摘錄的元數據用于跟蹤用戶和/或系統文件的屬性被備份。舉例來說,每一份文件的所述元數據可能包括文件名稱、建立日期或文件的最近修改,任何關于文件的編有密碼的信息,和其他信息。此外,通過存儲系統為每一份文件建立元數據,所述元數據將文件連接到虛擬編碼磁帶。使用所述的元數據,軟件向主機提供磁帶盒的仿真;然而,實際上文件數據不是儲存在磁帶格式只,而是存儲在系統文件中,如下文中的描述。在系統文件中存儲數據,而不是以順序的編碼磁帶格式,可以有利于允許快速、有效和隨機訪問個別文件,而不要求掃描順序數據以發現特別的文件。
正如上文中的討論,依據一個實施方案,文件數據(例如,用戶和/或系統數據)作為系統文件存儲在備份存儲介質中,每一個系統文件包括頭和數據,數據是真實的用戶和/或系統文件。每一份系統文件200的頭202包括磁帶目錄206,所述磁帶目錄206包括將用戶和/或系統文件連接到虛擬編碼磁帶的元數據。本文中術語“元數據”既不是指代用戶也不是系統文件數據,而是描述真實的用戶和/或系統數據的屬性的數據。依據一個實施例,磁帶目錄可以定義,向下到字節階段,虛擬編碼磁帶中的數據布局。在一個實施方案中,磁帶目錄206具有表格結構,如附圖6中所示。表格包括用于存儲的信息的類型(例如數據,文件標記FM等等)的欄220,表示字節中使用的磁盤字節的大小的欄222,以及計算存儲文件數據的磁盤字節的數量的欄224。因此,磁帶目錄允許控制器隨機訪問(以相反的順序)任何存儲在備份的存儲介質126中的任何數據文件。舉例來說,參考附圖6,數據文件226可能在虛擬編碼磁帶中快速定位,是由于磁帶目錄指出了文件226的數據開始于系統文件200的初始階段的框圖。由于響應于文件標記(FM),所述的一個框圖沒有大小。文件標記不是存儲在系統中的,例如,文件標記對應于零數據。由于文件標記被傳統的磁帶使用,所以磁帶目錄包括文件標記,因此,備份/恢復應用程序沿著數據文件寫入文件標記,并當瀏覽虛擬編碼磁帶時,希望看到文件標記。所以,在磁帶目錄中文件標記被跟蹤。然而,文件標記并不代表任何數據,并因此不被存儲在系統文件的數據部分。所以,文件226的數據開始于系統文件的數據部分的起始部分(用箭頭205表示),而且它的長度是1024字節(例如,一個磁盤字節是1024字節)。人們將領會到,其他的文件數據可能存儲在不只是1024字節的字節中,這取決于數據的總量,例如,數據文件的大小。舉例來說,對于效率而言,較大的數據文件可能使用較大的磁盤字節來存儲。
在一個實施例中,磁帶目錄可能被包含在“文件描述符”中,所述文件描述符與備份到存儲系統的每一份數據文件相聯系。文件描述符包含與儲存在存儲系統中的數據文件204相關聯的元數據。在一個實施方案中,文件描述符可能根據標準格式執行,舉例來說,被大多數UNIX基礎系統(多用戶計算機操作系統)使用的磁帶存檔文件格式(一種壓縮文件的擴展名)。每一個文件描述符可能包括例如,相應的用戶文件的名稱的信息、新建/修改的用戶文件的數據、用戶文件的大小,用戶文件的任何訪問限制等等。存儲在文件描述符中的附加信息可以進一步包括描述目錄結構的信息,從目錄結構中可以拷貝數據。因此,文件描述符可以包括關于相應于數據文件的可查詢的元數據,正如下文中更詳細的討論。
從備份/恢復應用程序的觀點來看,任何虛擬的編碼磁帶可能包括多個文件數據和相對應的文件描述符。從存儲系統軟件的觀點來看,數據文件存儲在系統文件中,系統文件可以被鏈接,舉例來說,特殊的備份工作。例如,備份被一臺主機在特定的時間執行可以產生對應于一個或多個虛擬編碼磁帶的一個系統文件。因此,虛擬編碼磁帶可能是任何大小的,當更多的用戶文件被存儲在虛擬編碼磁帶中時,虛擬編碼磁帶可以動態增長。
再次參考附圖3,正如上文所述,存儲系統170可能包括合成的完整備份軟件應用程序240。在一個實施方案中,主機120將數據備份到仿真介質134中,形成一個或多個虛擬編碼磁帶。在某些計算機環境中,“完整備份”,舉例來說,存儲在網絡(參見附圖1)主要的存儲系統中的所有數據的備份拷貝,可能被周期性地執行(例如,每周)。由于大量的數據被拷貝,這一處理過程通常非常長。因此,在許多計算環境中,額外的備份,所說的增量備份,可能在連續的完整備份(例如,每天)之間執行。增量備份是一種過程,由于執行(不管是增量的或全部)最新的備份被保存,其中只有數據被改變。典型地,改變的數據是文件庫中的備份,即使文件中的大部分數據不被頻繁地改變。因此,增量備份通常較小,從而可以比完整備份時較快完成。人們將領會到,盡管在通常每周一次執行完整備份和在一周中每天執行增量備份的許多環境,不要求使用時間表。舉例來說,某種環境可能要求一天中增量備份幾次。本發明的原理應用到任何使用完整備份(和隨機的增量備份)的環境,而不考慮執行頻率。
在完整備份處理期問,主機可以新建一個或更多的包括含有眾多數據文件的備份數據的虛擬編碼磁帶。為了清楚說明,下面的討論將假定完整備份只產生一個虛擬編碼磁帶。然而,人們將領會到,完整備份可以產生一個以上的虛擬編碼磁帶,本發明的原理可以應用到任何數量的虛擬編碼磁帶中。
依據一個實施方案,提供用于從一個現有的完整備份數據集和一個或多個的增量備份數據集新建合成完整備份數據集的方法。所述方法可以避免周期性(例如,每周)執行完整備份的要求,從而節約用戶大量的時間和網絡資源。更進一步說,正如本領域內的普通技術人員所知道的,在完整備份和一個或多個增量備份的基礎上,恢復數據是耗時的過程,舉例來說,如果文件的最新的版本存在于增量備份中,備份/恢復應用程序通常將在最新的完整備份的基礎上儲存文件,然后應用增量備份中的任何改變。因此,提供合成的完整備份可以具有允許備份存儲應用在合成完整備份的基礎上更快地保存數據文件的額外優勢,不需要從完整備份和一個或更多的增量備份中完成多次保存。人們將領會到,本文中使用的詞匯“最新版本”一般是指數據文件的最新拷貝(舉例來說,數據文件在最近的保存時間),無論文件是否有新的版本編號。本文中使用的術語“版本”一般是指同一文件的拷貝,同一文件可以某種方式修改或可能被多次保存。
參考附圖7,舉例說明的合成完整備份程序的圖表描述。主機120可以在第一時間執行完整備份230,舉例來說,在周末。主機120可以執行連續增量備份232a,232b,232c,232d和232e,舉例來說,一周中的每一天。存儲系統170可以新建合成完整備份數據集234,正如下文中的描述。
依據一個實施方案,存儲系統170可以包括軟件應用,在本文中是指合成完整備份應用程序240(參考附圖3)。合成完整備份應用程序240可以在存儲系統控制器122(參考附圖2)中運行或在主機120中運行。合成完整備份應用程序包括軟件命令和新建合成完整備份數據集234所必要的界面。在一個實施例中,合成完整備份應用可以完成表示每一個完整備份數據集230和增量備份數據集232的元數據的邏輯合并,以產生新的包含合成完整備份數據集234的虛擬編碼磁帶。
舉例來說,參考附圖8,現有的完整備份數據集可以包括用戶文件F1,F2,F3和F4。第一增量備份數據集232a可以包括F2的修改版本的用戶文件F2′,,和F3的修改版本F3′。第二增量備份數據集232b可以包括F1的修改版本的用戶文件F1′,和F2的進一步修改版本F2″,和新的用戶文件F5。因此,從完整備份數據集230和兩個增量數據集232a和232b的邏輯合并中形成的合成完整備份數據集234包括每一份用戶文件F1,F2,F3,F4和F5的最新版本。正如附圖8所示,此處的合成完整備份數據集包括用戶文件F1′,F2″,F3′,F4和F5。
再次參考附圖3和4,文件系統軟件146可以新建邏輯元數據高速緩沖存儲器242,該高速緩沖存儲器242存儲與儲存在仿真介質134中每一份用戶文件相關聯的元數據。人們將領會到,邏輯元數據高速緩沖存儲器不要求是真實的數據高速緩沖存儲器,但是可能代替儲存在存儲介質126中的可查詢收集數據。在另一個實例中,邏輯元數據高速緩沖存儲器242可以作為數據庫執行。元數據存儲在數據庫中,傳統的數據庫命令(例如,SQL命令)可以用于完成完整備份數據集和一個或多個增量備份數據集的邏輯合并以新建合成的完整備份數據集。
正如上文所討論的,存儲在仿真介質134上的每一份數據文件可能包括文件描述符,所述文件描述符包含與數據文件關聯的元數據,包括備份存儲介質126中的文件的位置。在一個實施方案中,在主機120中運行的備份/恢復應用程序保存在仿真介質134中的磁帶流格式的數據。在數據結構250的實施例表示在附圖9中舉例說明的磁帶格式。正如上文討論的,系統文件數據結構包括頭,所述頭可能包含關于數據文件的信息,例如,數據文件的文件描述符,新建和/或修改的文件數據,安全信息,文件來源的主系統的目錄結構,以及其他將文件鏈接到虛擬編碼磁帶的信息。所述頭與數據254關聯,是真實的用戶和系統文件,所述用戶和系統文件已經從主機、主要的存儲系統等等中備份。系統文件數據結構可能也隨機地包括墊256,墊256可以適當地將下一個頭對準到區域分界線。
如附圖9所示,在一個實施方案中,頭數據被放置在邏輯元數據高速緩沖存儲器242中,以允許快速的查詢和隨機訪問連續的磁帶數據格式。邏輯元數據高速緩沖存儲器的使用,借助存儲在系統控制器122中的文件系統軟件148來完成,允許線性、連續磁帶數據格式的翻譯存儲在仿真介質134中,進入存儲在補充備份存儲介質126的物理磁盤中的隨機訪問數據格式中。邏輯元數據高速緩沖存儲器242存儲頭252,所述頭252包括數據文件的文件描述符、安全信息,所述安全信息被用于控制對數據文件的訪問,正如下文中更加詳細的討論,指示符256對應于數據文件在虛擬編碼磁帶和備份存儲介質126中的真實位置。在一個實施方案中,邏輯元數據高速緩沖存儲器儲存的數據涉及在完整備份數據集230中和增量數據集232中的每一份數據的所有的數據文件。
依據一個實施方案,合成完整備份應用軟件240使用儲存在邏輯元數據高速緩沖存儲器中的信息來新建合成的完整備份數據集。所述合成完整備份數據集被鏈接到虛擬編碼磁帶,所述合成虛擬編碼磁帶由合成的完整備份應用240新建。對于備份/恢復應用程序,合成的完整備份數據集表面上看儲存在合成的虛擬編碼磁帶中。正如上文中的討論,合成的完整備份數據集可以通過執行現有的完整備份數據集和增量備份數據集的邏輯合并新建。邏輯合并可以包括對比每一份數據文件,每一份數據文件包含在每一個現有的完整備份數據集和增量備份數據集中,并新建每一份用戶文件的最新修改的版本的合成,正如參考附圖8的討論。
依據一個實施方案,合成的虛擬編碼磁帶260包括指示符,所述指示符指出數據文件在其他的虛擬編碼磁帶中的定位,明顯的是,如附圖10所示,所述虛擬編碼磁帶包括現有的完整備份數據集和增量備份數據集。考慮到前面附圖8給出的實施例,合成虛擬編碼磁帶260包括指示符266,該指示符266指出(用箭頭268標出)用戶文件F4(由于現有的完整備份數據集包括F4的最新版本)在虛擬編碼磁帶262中的現有完整備份數據集中的位置,舉例來說,用戶文件F3′在虛擬編碼磁帶264中的增量數據集232a中的位置。
合成的虛擬編碼磁帶也可以包括包含所有的虛擬編碼磁帶的標示碼(任選的名稱)的列表270,所有的虛擬編碼磁帶包括被指示符266所指出數據。附屬編碼磁帶列表270對于跟蹤真實的數據是很重要的,而且防止附屬的虛擬編碼磁帶被消磁。在所述實施方案中,合成的完整備份數據集并不包括任何真實的用戶文件,但是另外的指示符組指出用戶文件在備份的存儲介質126中的位置。因此,為防止真實的用戶文件(存儲在其他的虛擬編碼磁帶中)被刪除需要描述(用戶文件在備份的存儲介質126中的位置)。這可以通過保留包括數據的虛擬編碼磁帶的記錄(附屬編碼磁帶目錄270),和保護所述虛擬編碼磁帶的每一個虛擬編碼磁帶免受過寫或刪除來部分實現。合成虛擬編碼磁帶也可以包括編碼磁帶數據272,例如,合成的虛擬編碼磁帶的大小,在備份存儲介質126中的位置等等。另外,合成的虛擬編碼磁帶具有標示碼和/或名稱274。
依據另外一個實施方案,合成的虛擬編碼磁帶也可以包括指示符和真實存儲的用戶文件的結合。參考附圖11,在一個實施例中,合成的虛擬編碼磁帶包括指示符266,指示符266指出數據文件(最新的版本,正如參考附圖9時的討論)在虛擬編碼磁帶262的現有完整備份數據集230中的位置。合成的虛擬編碼磁帶也可以包括數據278,數據278包含從增量數據集232中拷貝真實的數據文件,如箭頭280所示。以所述方式,在合成的完整備份數據集276新建之后,增量備份數據集可以被刪除,從而節約存儲空間。由于包括全部或部分指示符而不是所有用戶文件的拷貝,合成的虛擬編碼磁帶相對小。
人們將領會到,合成的完整備份可以包括任何指示符和存儲文件數據的結合,并不限于上文中給出的實施例。舉例來說,合成的完整備份可以包括為一些存儲在某種增量和/或完整的備份中的某些文件指出數據文件的指示符,和包括從其他現有的完整和/或增量備份中拷貝的存儲的數據文件。而且作為替換,合成的完整備份可以在現有的完整備份和任何相關的增量備份的基礎上新建,所述增量備份不包括任何指示符,但是包括從優選的完整和/或增量備份中拷貝的真實數據文件的最新版本。
在一個實施方案中,合成完整的備份應用軟件可以包括差分運算,所述差分運算能夠為每一份現有的完整備份數據集和增量數據集比較用戶和系統文件元數據,以確定每一份數據文件的最新版本的位置。舉例來說,差分運算可以用于比較新建和/或修改的數據,版本號碼(如果可用)等等,不同的備份集中的同一數據文件的不同版本選擇最近的數據文件的版本。然而,用戶可以打開用戶文件和保存文件(從而改變修改的數據)而不需要真實的改變文件中的任何數據。因此,系統可以完成更加復雜的差分運算,可以分析系統或用戶文件中的數據以確定數據是否確實被修改。所述差分運算的變換和其他可比較的運算法則的類型在本領域內是公知的。另外,正如上文中的討論,當元數據被存儲在數據庫格式中,數據庫命令,例如,SQL命令可以被用于執行邏輯合并。本發明可以運用任何一種所述的差分運算以確保每一份用戶文件最近或最新版本被從全部的對比現有備份的數據集中挑選出來,以致適合地產生合成的完整備份數據集。
本領域內的普通技術人員將領會到,合成的完整備份應用能夠新建完整的備份數據集,和可以獲得而不需要主機執行真實的完整備份。不僅僅是避免增加將數據轉換到備份的存儲系統的主機與處理器的費用,而且在實施方案中合成的完整備份應用可以在存儲系統中執行,可以顯著減少網絡寬帶的利用。如附圖7所示,進一步的合成完整備份數據集可以通過使用第一合成完整備份數據集234和隨后的增量備份數據集236新建。在提供的顯著的時間優勢中,文件或目標沒有被經常修改、頻繁拷貝。實際上,合成的完整備份數據集可以在被剛剛拷貝的文件中保留指示符。
正如參考附圖3的討論,存儲系統可以包括涉及終端用戶恢復應用程序300的軟件應用。因此,依據另一個實施方案,對終端用戶提供了用于確定和恢復備份數據的方法,而不需要IT工作組的發明,以及不要求對現有的備份/恢復處理器和/或策略做任何改變。在典型的備份存儲系統中,在主機120中運行的備份/恢復應用程序被IT工作組控制,而且對于終端用戶在沒有IT工作組的發明的情況下訪問備份的數據來所說,是沒有可能的或非常困難。依據本發明的實施方案的各個方面,提供的存儲系統軟件通過,舉例來說,網絡為基礎的或其他的備份存儲介質126的界面來允許終端用戶確定位置和恢復文件。
人們將領會到,由于使用合成的完整備份應用程序240,終端用戶恢復可以在存儲系統的控制器122上運行(參考附圖2)或在主機120上運行的應用程序300。終端恢復應用程序包括軟件命令和允許被授權的用戶查詢邏輯元數據高速緩沖存儲器、隨機恢復、從備份存儲介質126中備份的文件所必需的界面。
依據一個實施方案,提供的軟件包括安裝在用戶計算機136上和/或在用戶計算機136上執行的用戶界面。用戶界面可以是任何類型的允許用戶確定文件在備份的存儲介質中的位置的界面。舉例來說,用戶界面可以是繪制的用戶界面,可以是以網絡為基礎的,或可以是正文界面。用戶計算機通過網絡連接138耦合到存儲系統170,所述網絡連接138可以是,例如,以太連接。通過網絡連接138,用戶計算機136的操作人員可以訪問存儲在存儲系統170中的數據。
在一個實施例中,終端用戶恢復包括用戶授權證和/或授權特征的應用程序300。舉例來說,用戶可以通過用戶計算機上的用戶界面,使用用戶名和密碼來注冊。用戶計算機可以與用戶名和密碼通信到存儲系統(舉例來說,到終端用戶恢復應用程序)可以使用優選的用戶授權裝置,以決定用戶是否訪問過存儲系統。一些用戶授權裝置的實施例可以包括,但是不限于,MicrosoftActive Directory服務器、Unix“黃頁”服務器或標準目錄訪問協議。注冊/用戶授權裝置可以與終端用戶恢復應用程序通信以交換用戶的特權。舉例來說,某些用戶可以被允許只能查詢自身新建的文件,或擁有某些特權的或被當作所有人標示的文件。其他的用戶,舉例來說,系統操作人員或被授權的人可以訪問所有的備份文件等等。
依據一個實施方案,終端用戶恢復應用程序使用邏輯元數據高速緩沖存儲器獲得關于所有備份到備份存儲介質的數據文件的信息。終端恢復應用程序通過用戶界面出現在用戶面前,用戶文件存儲的分等級的目錄結構,舉例來說,備份時間/數據、用戶名、初始用戶計算機目錄結構(當文件備份時獲得),或其他的文件特征。在一個實施例中,出現在用戶面前的目錄結構可根據用戶特權來改變。終端用戶恢復應用程序可以接收瀏覽的要求(舉例來說,通過用戶界面,用戶可以瀏覽目錄結構到需要的文件的位置)或用戶可以通過名稱、日期等查詢文件。
依據一個實施方案,用戶可以從存儲系統中恢復備份文件。舉例來說,一旦用戶確定需要的文件的位置,正如上文中的討論,用戶可以通過網絡連接138從存儲系統中下載文件。在一個實施例中,如本領域內的普通技術人員所知的,下載程序可以對比與任何網絡為基礎的下載的方式進行下載。
通過允許終端用戶訪問允許瀏覽/下載的其他文件,和通過促使經過用戶界面(例如,網絡為基礎的結束)的訪問,終端用戶恢復應用程序可以使用戶查詢和恢復自己的文件而無需改變任何備份策略或程序。
依據另一個實施方案提供的裝置和方法,借此用戶可以安裝存儲在備份存儲介質126中的備份數據集的網絡附件視圖。這樣可以允許用戶在安裝的數據集中瀏覽和訪問數據,由于用戶將會在與他們的計算機耦合的任何本地或網絡驅動器上錄入數據。因此,例如,用戶可以恢復應用程序服務器(例如,當系統主存儲106失效時,參考附圖1)數據的有效性,而無需通過介質服務器114(參考附圖1)執行恢復程序。使用本文描述的安裝程序恢復應用程序服務器的數據可能是比典型的介質服務器要快出多個數量級以便于卷的恢復。人們將領會到,本文中使用的術語“安裝”是指建立數據卷或網絡構成,例如網絡驅動器,可利用的主機操作系統。數據卷可能包括,例如單一的數據文件或系統文件、眾多的文件、或包括眾多文件的目錄結構。普通安裝協議包括NFS(網絡文件系統)和CIFS(普通因特網文件系統)的共有部分。這些協議允許主機借助界面通過網絡連接訪問另外的主機上的資源,所述界面使得遠程資源似乎就在本地的主機中。
參考附圖12,解釋說明了依據本發明的各個方面用于執行卷安裝的方法的一個實施方案的流程圖。在第一步驟290中,用戶選擇將要安裝的數據卷,并將卷安裝請求發送到備份存儲系統的控制器122中(參考附圖3)。通常,用戶可以從完整備份數據集中(而不僅僅是增量備份數據集)恢復數據,以獲得完整和正確的備份信息的表達式。如果當前的完整備份數據集不存在,(例如,網絡管理者可能每周執行完整備份,因此如果用戶希望在這周中恢復數據,當前的完整備份可能是不能使用的),可以新建合成的完整備份(如上文所述)并用于恢復選定的數據。
依據一個實施方案,備份存儲系統170可能包括軟件應用程序,關于本文的卷恢復應用程序310(參考附圖13),可以控制和實現用于執行數據卷安裝和恢復程序的方法。卷恢復應用程序310與合成的完整備份和終端用戶恢復應用程序類似,可以在主機和/或用戶計算機上執行,在此,一部分程序通過所有或部分存儲系統控制器、主機和用戶計算機進行分配。
再次參考附圖12,在請求卷安裝之后,無論當前的完整備份是否是可利用的(步驟292),所述卷恢復應用程序可能會受到質疑。如果不是,所述卷恢復應用程序可以與合成的完整備份應用程序240(參考附圖2)通信以執行合成完整備份處理程序,并新建當前的備份數據集(步驟294)。所述卷恢復應用程序可以輸出到常規的完整備份數據集中或合成的完整備份數據集中,以執行卷安裝的請求,所述請求可能是NFS也可能是CIFS所共有的部分。特別的是,所述卷恢復應用程序查詢邏輯元數據高速緩沖存儲器242以確定優選的元數據,該元數據表示在步驟290中被標示的被選定的完整備份卷。
依據一個實施方案,安裝請求(步驟290中)可能導致卷恢復應用程序建立一個或更多的文件描述符結構,以使用于安裝的卷的輸出更加便利,如NFS或CIFS所共有的部分(步驟296)。關于附圖14,解釋說明了文件描述符結構320的一個實施方案,所述文件描述符可以通過卷恢復應用程序建立,文件描述符320對應于磁帶格式(例如系統文件332,參考附圖15)的系統文件。正如上文中的描述,文件描述符包括可查詢的元數據,所述元數據與儲存在存儲系統中的數據文件和系統文件相對應。所述文件描述符320可能包括含有信息的眾多部分,例如,文件名322和用于包含在將要安裝的卷中的數據文件的許可文件(訪問控制列表)324。另外,文件描述符包含一個或更多的指示符326以確定數據文件的源數據的位置(例如,在存儲介質126中標示數據文件是否被存儲)、數據文件的長度328,和在連接列表文件描述符結構中的指向下一條目(例如,下一份數據文件)的指示符330。如果“下一份”文件是空的,例如被參考數字331標示,那么,則表示該數據文件是被文件描述符320(例如,最后的連接列表條目)所代表的系統文件中的最后一份數據文件。如附圖14中解釋說明的那樣,包括在將被安裝的數據卷中的每一系統文件將用文件描述符結構表示。一旦在請求卷中的每一系統文件建立了文件描述符320,則所述文件描述符可以響應于NFS或CIFS的請求以定位和輸出相關的數據文件。
正如上文中的討論,在一個實施方案中,文件描述符可能根據標準格式執行,舉例來說,被大多數UNIX基礎系統(多用戶計算機操作系統)使用的磁帶存檔文件格式(tar一種壓縮文件的擴展名)。如附圖15解釋說明的那樣,典型的系統文件332的例子將作為磁帶(例如,tar)數據源的一部分以磁帶格式書寫(例如,tar格式)。附圖16解釋說明了與系統文件332相對應的文件描述符340。正如附圖15解釋說明的那樣,以磁帶格式書寫的文件包括頭336和存儲在系統文件332中的真實數據338。所述數據338可能與一份或多份數據文件相一致。在用于解釋說明的實施例中,系統文件332的長度是1032字節,然而,人們將會理解文件可以有任何長度,這取決于文件的大小和書寫格式。
文件332的文件描述符340包括在頭336中。根據附圖16的解釋說明和參考附圖14給出的一般實施例可知,文件描述符340包括對于系統文件來說是已知的每一份數據文件的存儲數據的文件名341、安全信息334、指示符342,相應的數據文件的長度346,以及標示系統文件已知的下一份數據文件的“下一”條目,在用于解釋說明的實施例中,“下一”條目是空348。
再次參考附圖12,一旦將要安裝的數據卷中的文件的所有的文件描述符已經被建立,卷恢復應用程序在建立的文件描述符的基礎上,將文件系統作為NFS或CIFS共享部分(步驟298)輸出到特定用戶安裝點。在所述安裝點,完成安裝(步驟299),而且安裝的數據卷對于用戶讀和/或寫數據是可利用的,下文將做詳細的描述。
依據一個實施方案,NFS或CIFS讀操作(例如,用戶希望在安裝的數據卷中瀏覽數據)通過查詢用于匹配文件說明的文件描述符320提供。人們將領會到,依據一個實施方案,用戶無需自己查詢文件描述符。而是,卷恢復應用程序包括將數據呈現在用戶面前的用戶界面,例如,典型的字典結構格式。卷恢復應用程序可以包括軟件,該軟件將用戶請求的特殊文件轉換為訪問邏輯元數據高速緩沖存儲器中的查詢命令,并為匹配系統文件查找文件描述符320。一旦確定文件的位置,轉換到用戶計算機中的數據可以通過追蹤連接列表(例如,追蹤存儲在文件描述符中的指示符以確定真實數據的位置)來完成并為文件數據建立緩沖器,所述文件數據將被發送到提出請求的用戶處。
依據另一個實施方案,為用戶提供的裝置也可以將新數據寫入安裝卷中。正如上文中的討論,安裝的卷數據可能作為普通的網絡驅動器或其他網絡存儲數據出現在用戶面前。然而,事實上,原始安裝的卷數據是被真實備份的數據,該數據通常需要保存;至少直到新建另一份備份數據集。因此,允許用戶真實地修改原始備份數據可能并非理想。為避免修改原始備份數據,并仍允許用戶修改對應于安裝卷的數據,提供的裝置(對于用戶來說是顯而易見的)將寫入轉移到存儲系統中,正如下文中的討論。
參考附圖17,解釋說明了依據本發明的各個方面的處理寫請求的方法的一個實施方案的流程圖。在第一步驟350中,用戶請求NFS或CIFS寫操作(通常是通過在編輯或瀏覽數據文件的過程選擇“保存”選項)。然后,卷恢復應用程序通過確定可利用的存儲空間執行寫請求,將數據寫入該空間,并更新適當的文件描述符以參考最新的寫入數據。
依據一個實施方案,卷恢復應用程序查詢是否已經為寫入的數據(步驟352)分配空間,如果沒有,卷恢復應用程序分配存儲空間(步驟354)。存儲空間可能分配在備份存儲介質126(參考附圖13)中。分配的存儲空間可以被特別設計用于只是保存寫入數據(隨機的相關元數據)。
參考附圖18,解釋說明了存儲在備份存儲介質126中的NFS或CIFS寫入數據的一個實施例。寫入數據360包括,例如,兩個寫入部分,對應于存儲數據的W1 362和W2 364,所述存儲數據起因于作為卷恢復應用程序提供的寫命令的結果。舉例來說,W1和W2對應于包括在安裝的數據卷中修改的數據文件。人們將領會到,盡管解釋例對應兩個寫請求,本發明的原理可以適用于任何數量的寫請求,而且文件可能是適合更改的,以反應任何適當數量的寫請求。寫入數據360也可以包括頭366,該頭366包括元數據,所述元數據形成原始數據(例如,文件332)和最新寫入的數據360之間的自描述關系。尤其是,頭可以包括標示相對于原始數據邏輯存在的寫入數據部分W1和W2的補償信息,結合附圖19進一步的描述。
參考附圖19,解釋說明了當提出兩個寫請求時,系統文件布圖的一個實施例。原始數據文件332存儲在備份存儲系統介質126中(參考附圖13),并通過安裝上文中描述的程序出現在用戶面前。如附圖19所示,系統文件332是以磁帶格式書寫的,而且數據部分338可能包括眾多數據文件(例如,用戶文件)。該數據開始于補償零字節(點370)并終止于點372的末端1032字節之后。寫入文件360對應于用戶請求以將數據寫入文件332中。舉例來說,用戶可以修改包括在系統文件332中的兩份數據文件,得到包括W1和W2的寫入文件360。正如上文中的描述,寫入文件360可能在存儲介質中與文件332分開存儲,以致不用更改原始備份數據。邏輯修改系統文件380被用于解釋說明,并代表包括用戶通過寫請求所作的變化(例如寫入文件360)的文件332。換句話說,在修改的系統文件380中,W1和W2(用戶修改的數據文件)可能被用于替代包括在原始數據文件332的數據部分中的原始數據文件,而無需刪除備份數據。
如附圖19所示,修改的系統文件與原始系統文件332和寫入文件360的邏輯結合相對應。如圖所示,原始系統文件數據338開始于原始文件的補償零位。在補償64(用參考數字384表示),修改數據的第一部分W1開始,并結束于沿著用參考數字386表示的補償73有9字節的位置。因此,W1,用戶修改的數據文件來自用戶寫請求可能用于替換原始數據文件,該原始數據文件確定補償64在原始系統文件332中的位置。如圖所示,W1的長度為9字節,因為W1開始于寫入文件360的補償零位(390),并終止于寫入文件360的補償9(392)。通過存儲在頭366中的信息來確定W1在修改文件(在解釋例中補償64)的開始位置,即,寫入文件360和原始文件332之間的相對關系。W2部分也包括在修改的文件380中,起始于補償1032(文件的原始末端,用參考數字372表示),并邏輯延伸到100字節文件。而且,W2的長度通過頭366中的定位信息確定。文件的新末端點用參考數字388表示。
人們將領會到,盡管修改文件380是邏輯新建的并代表原始文件的用戶修改版本,用文件360表示的最新寫入數據并不是作為原始文件332的一部分真實存儲的。而是,正如上文中的討論,最新寫入的數據儲存在存儲介質的標示寫入數據的特別位置。在這種方式下,原始備份數據文件的完整性得以維持,同時允許用戶明顯地寫入安裝卷,由于它們可能是初始位置或網絡驅動器。
修改的文件380包括頭382,該頭382包括代表修改文件的文件描述符。參考附圖20,解釋說明了文件描述符400的實施例。文件描述符400包括標示修改文件380的文件名的名稱部分402和標示修改文件380的準許屬性的安全部分404。文件描述符400也包括包含了原始文件332的指示符和寫入文件360的指示符的眾多數據部分,以獲取存儲在每一份原始文件和寫入文件中的數據。通過連續跟蹤文件描述符400中給定的指示符的連接列表,得出修改文件380的表達式。
參考附圖19和附圖20,解釋說明了修改文件的文件描述符的一個特殊的實施例。在第一數據部分406,確定第一數據文件的位置的指示符定位,在修改的文件380中,所述文件位于補償零位字節,如附圖19中參考數字408的標示。隨后部分410標示數據文件的長度,所述隨后部分410的位置由指示符406標出。在解釋性實施例中,長度為64字節,可以從附圖19中得出(數據在零位補償點,參考數字408,以及64字節的補償之間提供,用參考數字384表示)。下一部分412標示下一數據文件在修改文件380中是W1,如附圖19所示。因此,標示與W1對應的數據的位置的指示符414存儲在最新寫入文件360的零位補償點中(附圖19中的參考數字390)。長度部分416標示W1的長度為9字節,也可以在附圖19中看到--W1由修改文件380中的補償64(參考數字384)和補償73(參考數字386)之間提供。下一部分418標示修改文件380中的下一數據文件是來自原始系統文件332的數據文件。在部分420中的指示符標示下一數據文件在修改文件380中的補償73定位,如附圖19中的參考數字386所示。部分422標示數據文件的長度是959字節,也可以參考附圖19。下一部分424標示隨后的數據文件是W2。再次,部分426中的指示符標示W2的定位,即,最新寫入文件360在補償9的定位,可以參考附圖19。部分428標示W2的長度是100字節,而且下一部分430包括標示W2在修改文件380中是最新數據文件的空位,如附圖19所示。因此,文件描述符400包括標示修改文件380的結構和數據位置的“路線圖”,該“路線圖”包括在修改文件380中。
卷恢復應用程序和方法描述了上述代表連續磁帶格式數據以適合的格式隨機訪問I/O系統,例如NFS或CIFS。連接列表文件描述符,例如文件描述符400,可以用于將連續的磁帶格式數據轉換為隨機訪問數據,這是通過記錄每一份特殊tar源的數據文件在存儲介質的位置,例如,以及每一份數據文件在tar源中的其他數據文件相關的tar源的位置來完成的。另外,依據一個實施方案,卷恢復應用程序可能包括為將數據變為(例如,寫)磁帶格式(例如tar)的表達所作的準備,以致備份/恢復應用程序可以上文中描述的一般方式訪問數據。根據一個實施方案,即時恢復應用程序包括產生虛擬編碼磁帶的工具,該工具以上文中描述的與文件系統軟件相關的方式,用磁帶頭、墊、數據和文件標記來適當格式化。在另一個實施方案中,卷恢復應用程序與文件系統軟件連接以新建如上文中討論的虛擬編碼磁帶,所述虛擬編碼磁帶包括最新寫入和修改的文件。
人們將領會到,盡管本發明的各個方面,例如合成的完整備份應用、終端用戶恢復應用程序和卷恢復應用程序在本文中的描述主要是依據軟件進行的,所述方面和其他方面可以選擇在軟件、硬件或固件,或任何它們的結合中執行。因此,舉例來說,本發明的實施方案可以包括任何編有指令編碼(舉例來說,眾多的指令)的計算機可讀介質(例如,計算機存儲器、軟盤、壓縮盤和磁帶等等),當在存儲系統的處理器上執行時,至少部分實現完成合成的完整備份應用程序和/或終端用戶恢復應用程序的功能,如同上文中詳細的描述。
一般來說,本發明的實施方案和各個方面包括存儲系統和仿真傳統的磁帶備份系統的方法,但是可以提供增強的功能,舉例來說,能夠新建合成的備份和允許終端用戶瀏覽和恢復備份文件。然而,人們將領會到,本發明的各個方面可以用于,而不只是計算機數據的備份。因為本發明的存儲系統可以用于經濟地儲存龐大的數據,以及可以相反的順序在硬盤訪問時間內隨機訪問儲存數據,本發明的實施方案可以在傳統的備份存儲系統之外找到應用。舉例來說,本發明的實施方案可以用于存儲代表電影和音樂的更多的選擇的視頻或音頻數據,并按照需要實現視頻和/或音頻。
如此描述本發明的至少一個實施方案的幾個方面,人們將領會到,對于本領域內的普通技術人員來說各種改變、修改和改進將是容易發生的。所述改變、修改和改進是用來公開的一部分,在本發明的范圍內。相應地,前面的描述和附圖只是作為實施例。
權利要求
1.一種方法,其包括如下步驟將數據卷安裝到主機上,該數據卷包括至少一份數據文件,所述數據文件與存儲在備份存儲系統中的至少一份數據文件的最新備份版本相對應;在備份存儲系統中存儲與所述至少一份數據文件的第二版本相對應的數據,當保存至少一份數據文件的最新備份版本時,所述數據比存儲在備份存儲系統中的至少一份數據文件的最新備份版本更新。
2.根據權利要求
1的方法,進一步包括以下步驟連接所述至少一份數據文件的最新備份版本和所述至少一份數據文件的第二版本。
3.根據權利要求
1的方法,進一步包括以下步驟新建數據結構,該數據結構既標示所述至少一份數據文件的最新備份版本,也標示所述至少一份數據文件的第二版本。
4.根據權利要求
3的方法,其中所述至少一份數據文件的第二版本是所述至少一份數據文件的最新備份版本的修改版本。
5.根據權利要求
1的方法,其中安裝數據卷的步驟包括執行NFS安裝或CIFS安裝之一。
6.根據權利要求
1的方法,其中安裝數據卷的步驟包括建立包含與所述至少一份數據文件的最新備份版本相關的元數據的文件描述符,所述元數據包括標示所述至少一份數據文件的最新備份版本在備份存儲介質中的存儲位置的指示符。
7.一種備份存儲系統,該系統包括用于存儲備份數據集的備份存儲介質;以及控制器,該控制器包括至少一個經過配置的處理器以執行實現權利要求
1中的方法的一系列指令。
8.如權利要求
7所要求保護的備份存儲系統,其中所述備份數據集是合成的完整備份數據集。
9.編有眾多指令編碼的計算機可讀介質,當在至少一個處理器上執行時,所述眾多指令編碼實現權利要求
1的方法。
10.如權利要求
9所要求保護的計算機可讀介質,其中所述處理器包括在備份存儲系統中。
11.一種編有眾多指令編碼的計算機可讀介質儲存有數據結構,該數據結構包括第一標示工具包,該第一標示工具包唯一地標示與包括至少一份數據文件的備份數據集對應的系統文件;以及至少一個第二標示工具包,該第二標示工具包標示存儲介質中的各自的存儲位置,所述存儲介質儲存備份數據集中的至少每一份數據文件的最新版本。
專利摘要
一種在備份存儲系統中用于將對應于備份數據集的數據卷安裝到主機上的裝置和方法。在一個實施例中,該方法包括將數據卷安裝到主機上,所述數據卷包括至少一份數據文件,該文件與存儲在備份存儲系統中的至少一份數據文件的最新備份版本相對應,以及在備份存儲系統中存儲與所述至少一份數據文件的第二版本相對應的數據,當保存至少一份數據文件的最新備份版本時,所述數據比存儲在備份存儲系統中的至少一份數據文件的最新備份版本更新。
文檔編號G06F12/00GK1997972SQ20048003074
公開日2007年7月11日 申請日期2004年9月30日
發明者米克洛斯·桑多菲 申請人:賽帕頓有限公司導出引文BiBTeX, EndNote, RefMan