鬼佬大哥大
  • / 51
  • 下載費用:30 金幣  

虛擬磁帶庫系統.pdf

關 鍵 詞:
虛擬 磁帶庫 系統
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
摘要
申請專利號:

CN201380069599.8

申請日:

2013.12.13

公開號:

CN104903871A

公開日:

2015.09.09

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||實質審查的生效IPC(主分類):G06F 12/06申請日:20131213|||公開
IPC分類號: G06F12/06 主分類號: G06F12/06
申請人: 亞馬遜技術股份有限公司
發明人: P·文森; C·卡爾; A·森達拉姆
地址: 美國內華達州
優先權: 13/722,743 2012.12.20 US; 13/722,814 2012.12.20 US
專利代理機構: 上海專利商標事務所有限公司31100 代理人: 張欣
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201380069599.8

授權公告號:

||||||

法律狀態公告日:

2018.04.03|||2015.10.07|||2015.09.09

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

一種虛擬磁帶庫系統,其用以通過仿真物理磁帶操作而將來自客戶端存檔系統的預期所述物理磁帶操作的數據備份到存儲服務的邏輯數據容器和/或元數據存儲器上。舉例來說,虛擬磁帶庫裝置安裝在顧客所在地位置以與客戶端存檔系統對接。所述虛擬磁帶庫裝置提供虛擬接口以呈現為物理磁帶庫子系統,例如磁帶驅動器和介質轉換器接口。然而,這些虛擬接口在存儲服務和元數據存儲器中通過邏輯數據容器來支持。所述虛擬磁帶庫系統允許所述客戶端存檔系統產生請求,從而導入新的虛擬磁帶,導出虛擬磁帶用于存檔,在虛擬位置處存儲虛擬磁帶,將虛擬磁帶載入和驅逐到虛擬磁帶驅動器中,以及對虛擬磁帶驅動器中虛擬磁帶進行操作。

權利要求書

權利要求書
1.  一種用于仿真存儲的計算機實施的方法,其包括:
在用可執行指令配置的一個或多個計算機系統的控制下,
接收產生虛擬磁帶的請求;
請求在存儲服務中產生邏輯數據容器;
使所述邏輯數據容器與虛擬磁帶相關聯;
接收將來自虛擬存儲位置的所述虛擬磁帶載入到虛擬磁帶驅動器的請求;
將與所述虛擬磁帶相關聯的所述邏輯數據容器映射到與所述虛擬磁帶驅動器相關聯的輸入/輸出接口;
在所述輸入/輸出接口上將請求轉換到與映射到所述虛擬磁帶驅動器的所述虛擬磁帶相關聯的所述邏輯數據容器;
響應于接收存儲所述虛擬磁帶的請求:
去除所述邏輯數據容器到所述輸入/輸出接口的所述映射;
響應于接收將所述虛擬磁帶存儲在檔案存儲服務中的請求:
將所述虛擬磁帶映射到導入/導出位置;
從虛擬磁帶庫去除所述虛擬磁帶;以及
從主動存儲器傳輸與所述虛擬磁帶相關聯的所述存儲邏輯數據容器到所述檔案存儲服務中的檔案邏輯數據容器。

2.  如權利要求1所述的計算機實施的方法,其還包括:
使所述邏輯數據容器與虛擬磁帶在元數據存儲器中相關聯;以及
將所述虛擬磁帶到虛擬存儲位置的映射存儲在所述元數據存儲器中。

3.  如權利要求1或2所述的計算機實施的方法,其中接收將所述虛擬磁帶存儲到所述檔案存儲服務中的請求還包括:
確定用于制備所述邏輯數據容器用于在所述輸入/輸出接口上使用的可接受的響應時間;
至少基于所述確定來從存儲層級集合選擇存儲層級,至少部分基于用于訪問在所述存儲層級中的邏輯數據容器的響應時間而限定的存儲層級;
從與所述輸入/輸出接口一起使用的主動層級傳送所述邏輯數據容器到所述選定的存儲層級;以及
使所述虛擬磁帶與虛擬庫位置相關聯。

4.  一種用于存儲數據的計算機實施的方法,其包括:
在用可執行指令配置的一個或多個計算機系統的控制下,
在虛擬磁帶與虛擬磁帶驅動器相關聯的時間期間,將磁帶操作從輸入/輸出接口轉換到與所述虛擬磁帶驅動器相關聯的邏輯數據容器;
響應于從所述虛擬磁帶驅動器去除所述虛擬磁帶的請求而使所述虛擬磁帶驅動器從所述虛擬磁帶和所述邏輯數據容器解除關聯;
從存儲層級集合選擇存儲層級,每一存儲層級包括訪問屬性的速度和成本屬性;以及
從包括所述輸入/輸出接口的當前層級傳送所述邏輯數據容器到所述選定存儲層級上的邏輯數據容器。

5.  如權利要求4所述的計算機實施的方法,其中從所述輸入/輸出接口轉換磁帶操作到所述邏輯數據容器還包括:
從客戶端接口接收所述磁帶操作;
將所述磁帶操作轉換為一個或多個存儲服務請求;
從客戶端網絡經由公用網絡到存儲服務接口來將所述一個或多個存儲服務請求傳輸到所述存儲服務。

6.  如權利要求5所述的計算機實施的方法,其中從所述客戶端接口接收磁帶操作還包括將虛擬磁帶庫裝置定位在所述客戶端網絡上;以及
配置所述虛擬磁帶庫裝置以接收磁帶操作和發送存儲服務請求。

7.  如權利要求4到6中任一項所述的計算機實施的方法,其還包括在元數據存儲器中使來自存儲服務的所述邏輯數據容器,所述虛擬磁帶和所述虛擬磁帶驅動器相關聯。

8.  如權利要求7所述的計算機實施的方法,其中在所述元數據存儲器中使來自所述存儲服務的所述邏輯數據容器,所述虛擬磁帶和所述虛擬磁帶驅動器相關聯還包括:
請求在所述存儲服務中產生邏輯數據容器;
使所述邏輯數據容器與所述虛擬磁帶在所述元數據存儲器中相關聯;以及
將所述虛擬磁帶到虛擬導入/導出槽的映射存儲在所述元數據存儲器中。

9.  如權利要求4到8中任一項所述的計算機實施的方法,其還包括:
當請求所述虛擬磁帶驅動器提供數據到第二虛擬磁帶驅動器時,執行與所述虛擬磁帶和所述虛擬磁帶驅動器相關聯的所述邏輯數據容器和與第二虛擬磁帶和所述第二虛擬磁帶驅動器相關聯的第二邏輯數據容器之間的邏輯數據容器復制操作。

10.  一種用于管理虛擬磁帶庫的計算機系統,其包括:
一個或多個計算資源,其具有包括可執行指令的一個或多個處理器和存儲器,所述可執行指令在被所述一個或多個處理器執行時促使所述一個或多個處理器至少實施:
虛擬磁帶庫系統,其提供到客戶端存檔系統的接口,所述虛擬磁帶庫系統通過提供以下內容來提供磁帶庫系統的仿真:
虛擬磁帶集合,所述虛擬磁帶集合中的每一虛擬磁帶包括來自存儲服務的存儲邏輯數據容器,所述存儲服務根據請求提供存儲邏輯數據容器;
虛擬磁帶驅動器集合,來自所述虛擬磁帶驅動器集合的每一虛擬磁帶驅動器提供到所述客戶端存檔系統的接口以與所述虛擬磁帶驅動器相關聯的虛擬磁帶交互;
介質轉換器接口,其被配置來使虛擬磁帶與虛擬磁帶驅動器相關聯;以及
元數據存儲器,其將虛擬磁帶鏈接到存儲邏輯數據容器。

11.  如權利要求10所述的計算機系統,其中所述虛擬磁帶庫還包括一個或多個虛擬導入/導出槽,所述虛擬導入/導出槽被配置來將來自所述存儲服務的所述存儲邏輯數據容器傳送到檔案存儲服務中 的檔案邏輯數據容器。

12.  如權利要求10或11所述的計算機系統,其中所述虛擬磁帶庫還包括一個或多個虛擬存儲槽,所述虛擬存儲槽被配置來將來自所述存儲服務的所述存儲邏輯數據容器傳送到檔案存儲服務中的檔案邏輯數據容器。

13.  如權利要求10到12中的任一項所述的計算機系統,其中所述虛擬磁帶庫系統還包括高速緩存來自所述虛擬磁帶驅動器集合的交互的本地存儲邏輯數據容器

14.  如權利要求10到13中任一項所述的計算機系統,其還包括第二虛擬磁帶庫系統,所述第二虛擬磁帶庫系統被配置來通過請求與第一虛擬磁帶相關聯的邏輯數據容器復制到與第二虛擬磁帶相關聯的邏輯數據容器來執行所述第二虛擬磁帶庫系統所管理的所述第一虛擬磁帶到所述虛擬磁帶庫系統所管理的所述第二虛擬磁帶的復制。

15.  如權利要求10到14中的任一項所述的計算機系統,其還包括存儲服務接口,所述存儲服務接口被配置來產生新的虛擬磁帶以及將所述新的虛擬磁帶注入到所述虛擬磁帶庫系統中。

說明書

說明書虛擬磁帶庫系統
相關申請的交叉引用
本申請要求來自2012年12月20日提交的標題為“VIRTUAL TAPE LIBRARY SYSTEM”的美國專利申請第13/722,743號(代理人案號0097749-152US0(P6273))以及2012年12月22日提交的標題為“VIRTUAL TAPE USING A LOGICAL DATA CONTAINER”的美國專利申請第13/722,814號的權益的優先權。
背景
若干組織機制備份數據以防數據丟失或破壞。舉例來說,客戶端數據可能受到許多不同的威脅,包括環境威脅、安全威脅、事故和/或故障。環境危險包括可能擾亂或損害客戶端系統的風暴或其它自然災害。安全威脅包括可能惡意地進入生產系統并破壞或毀壞數據和/或軟件的黑客。事故威脅包括如破壞或產生不一致數據的軟件錯誤的問題。故障威脅包括硬件系統的故障,例如含有關鍵數據的多個存儲設備的相關故障。如果存在備份,那么可以及時將至少數據和/或軟件重置回已知的良好點。
備份數據的一個方法是通過磁帶備份系統。磁帶備份系統使用磁帶盒來存儲數據。在一些公司中,磁帶備份系統可以部分或完全自動,使得磁帶可以通過機器人手臂而從存儲位置移動到磁帶驅動器且接著返回到存儲位置。舉例來說,客戶端存檔系統發送命令到機器人系統以將磁帶從一個位置移動到另一位置,且跟蹤磁帶的移動。客戶端存檔系統還可以跟蹤寫入到磁帶的信息,以便在恢復操作需要時召回文件或其它信息。這些機器人系統可能需要所述機械系統的較大空間 和維護以有效地進行操作。
附圖簡述
將參照附圖描述根據本公開的各個實施方案,在附圖中:
圖1示出根據至少一個實施方案的虛擬磁帶庫的說明性實例;
圖2示出根據至少一個實施方案的虛擬磁帶庫系統的說明性實例;
圖3示出根據至少一個實施方案的虛擬磁帶庫系統的說明性實例;
圖4示出根據至少一個實施方案的虛擬磁帶庫系統的說明性實例;
圖5示出根據至少一個實施方案的可用以操作虛擬磁帶庫系統的流程的說明性實例;
圖6示出根據至少一個實施方案的可用以備份到虛擬磁帶庫系統的流程的說明性實例;
圖7示出根據至少一個實施方案的可用以從虛擬磁帶庫系統進行恢復的流程的說明性實例;
圖8示出根據至少一個實施方案的可用以操作虛擬磁帶庫系統的流程的說明性實例;
圖9示出根據至少一個實施方案的虛擬磁帶的說明性實例;
圖10示出根據至少一個實施方案的虛擬磁帶標頭的說明性實例;
圖11示出根據至少一個實施方案的虛擬磁帶數據塊組的說明性 實例;
圖12示出根據至少一個實施方案的可用以產生虛擬磁帶的流程的說明性實例;
圖13示出可用以將經修改數據持續到邏輯數據容器的流程的說明性實例;
圖14示出根據至少一個實施方案的可用以寫入到虛擬磁帶的流程的說明性實例;
圖15示出根據至少一個實施方案的可用以使用虛擬磁帶來尋找記錄的流程的說明性實例;
圖16示出根據至少一個實施方案的可用以使用虛擬磁帶來尋找文件標志的流程的說明性實例;
圖17示出根據至少一個實施方案的可用以使用虛擬磁帶來進行讀取的流程的說明性實例;
圖18示出根據至少一個實施方案的可用以從虛擬磁帶中的事件來進行恢復的流程的說明性實例;以及
圖19圖示其中可能實施各種實施方案的環境。
詳述
在以下描述中,將描述各種實施方案。出于解釋的目的,將闡述具體的配置和細節,以便提供實施方案的透徹理解。然而,對本領域的技術人員將是顯而易見的是,在沒有具體細節的情況下也可以實行實施方案。此外,為了不使所描述的實施方案變得模糊,可能會省略或簡化眾所周知的特征。
本文所描述和建議的技術包括實施虛擬磁帶庫系統,以通過仿真 物理磁帶操作將來自客戶端存檔系統的預期所述物理磁帶操作的數據備份到存儲服務的邏輯數據容器和/或元數據存儲器上。舉例來說,虛擬磁帶庫裝置安裝在顧客所在地位置以與客戶端存檔系統對接。虛擬磁帶庫仿真物理磁帶庫,使得客戶端存檔系統可以對虛擬磁帶進行操作從而對客戶端數據進行存檔。虛擬磁帶庫裝置提供虛擬接口以呈現為物理磁帶庫子系統,例如磁帶驅動器和介質轉換器接口。然而,這些虛擬接口在存儲服務和元數據存儲器中通過邏輯數據容器來支持。虛擬磁帶庫系統允許客戶端存檔系統產生請求,從而導入新的虛擬磁帶,導出虛擬磁帶用于存檔,在虛擬位置處存儲虛擬磁帶,將虛擬磁帶載入和驅逐到虛擬磁帶驅動器中,以及對虛擬磁帶驅動器中虛擬磁帶進行操作。
對虛擬磁帶驅動器中的虛擬磁帶進行的操作可包括尋找、讀取、寫入、初始化、標記和通過虛擬磁帶庫系統仿真的其它物理磁帶操作。用于通過客戶端存檔系統進行的磁帶盒的操縱的這些請求由虛擬磁帶庫系統轉換,從而對存儲服務的元數據存儲器和/或邏輯數據容器進行操作。移動操作,例如移動虛擬磁帶從一個虛擬位置到另一虛擬位置,可以通過改變元數據存儲器中虛擬磁帶與虛擬位置之間的關聯來實現。數據操作,例如讀取或寫入到虛擬磁帶,可以通過結合存儲服務對邏輯數據容器進行操作的接口來實現。存儲服務可以是按需存儲服務,其中在按需基礎上提供邏輯數據容器。在一些實施方案中,存儲服務和虛擬磁帶庫裝置可以通過公用網絡(例如因特網)而分開。通過提供虛擬磁帶庫系統,客戶端可能夠主動地管理資源用于按需備份,同時降低磁帶硬件維護所需的成本。舉例來說,虛擬磁帶可以按需構建或刪除以匹配存儲需要和成本。
在一個實施方案中,客戶端將數據備份到虛擬磁帶且將虛擬磁帶存儲到檔案存儲器中。客戶端通過主動存儲供應接口來請求新的虛擬磁帶。虛擬磁帶通過在存儲服務中供應新的邏輯數據容器以及使邏輯數據容器與虛擬磁帶識別符(ID)相關聯(例如元數據存儲器中的關聯)而產生。接著將新的虛擬磁帶實際上放置在虛擬磁帶庫中的虛擬導入 /導出槽中。虛擬磁帶的移動通過在元數據存儲器中使虛擬磁帶ID與虛擬導入/導出槽相關聯來實現。一旦虛擬磁帶處于虛擬導入/導出槽中,客戶端存檔系統即可承擔虛擬磁帶的控制。客戶端存檔系統接著可請求虛擬磁帶通過虛擬磁帶庫系統的虛擬介質轉換器而移動到虛擬磁帶驅動器。此移動可以通過去除虛擬磁帶ID與虛擬導入/導出槽的關聯以及使虛擬磁帶ID與虛擬磁帶驅動器相關聯而實現。可以將與選定的具體虛擬磁帶驅動器相關聯的虛擬磁帶驅動器接口(例如因特網小型計算機系統接口(iSCSI))指派到與虛擬磁帶ID相關聯的邏輯數據容器。接著可以初始化新的虛擬磁帶,其可包括將基礎虛擬磁帶結構(例如全局標頭)寫入到邏輯數據容器。在初始化之后,客戶端系統可通過客戶端存檔系統將數據備份到虛擬磁帶。數據的備份可以通過虛擬磁帶庫裝置接收磁帶命令且將所述磁帶命令轉換為操作而實現,所述操作對指派到存儲服務中的虛擬磁帶驅動器的邏輯數據容器上的虛擬磁帶結構進行操作。這些操作可包括寫入數據、進行記錄和產生文件標志。在完成備份之后,客戶端存檔系統可請求虛擬磁帶從虛擬磁帶驅動器移動到虛擬導入/導出槽以用于檔案存儲。作為響應,虛擬磁帶庫裝置可促使虛擬磁帶驅動器與虛擬磁帶ID的關聯,以及虛擬磁帶驅動器接口到邏輯數據容器的指派被去除。接著可使邏輯數據容器分級,用于從主動存儲的存儲服務傳送到檔案服務。
在另一實施方案中,客戶端從檔案存儲中的虛擬磁帶恢復數據。客戶端可請求虛擬磁帶通過供應商存儲系統而從檔案存儲傳送到虛擬導入/導出槽。作為響應,供應商可將與虛擬磁帶相關聯的邏輯數據容器從檔案存儲傳送到主動存儲。在完成所述傳送后,虛擬磁帶庫系統可以使虛擬磁帶ID與虛擬導入/導出槽相關聯。一旦虛擬磁帶處于虛擬導入/導出槽中,客戶端存檔系統即可承擔虛擬磁帶的控制。客戶端存檔系統接著可請求虛擬磁帶通過虛擬磁帶庫系統的虛擬介質轉換器而移動到虛擬磁帶驅動器。此移動可以通過去除虛擬磁帶ID與虛擬導入/導出槽的關聯以及使虛擬磁帶ID與虛擬磁帶驅動器相關聯而實現。可以將與選定的具體虛擬磁帶驅動器相關聯的虛擬磁 帶驅動器接口指派到與虛擬磁帶ID相關聯的邏輯數據容器。客戶端存檔系統接著可以對虛擬磁帶執行操作,例如定位、間隔、讀取或其它磁帶操作。這些操作接著可以用于確定從邏輯數據容器檢索哪些數據。在完成恢復之后,客戶端存檔系統可請求虛擬磁帶從虛擬磁帶驅動器移動到虛擬導入/導出槽以用于檔案存儲或移動到虛擬磁帶槽位置來等待進一步動作。作為響應,虛擬磁帶庫裝置可促使虛擬磁帶驅動器與虛擬磁帶ID的關聯,以及虛擬磁帶驅動器接口到邏輯數據容器的指派被去除。在重新存檔的情況下,接著可使邏輯數據容器分級,用于從主動存儲的存儲服務傳送到檔案服務。在虛擬磁帶槽位置的情況下,可以存儲虛擬磁帶ID與虛擬磁帶槽位置之間的關聯。
在其它實施方案中,虛擬磁帶可被重新初始化或銷毀。在重新初始化中,虛擬磁帶被擦除其當前數據。客戶端存檔系統可請求虛擬磁帶通過虛擬介質轉換器而載入虛擬磁帶驅動器中。如上文論述,作為請求載入虛擬磁帶的結果,與虛擬磁帶相關聯的邏輯數據容器可變得與虛擬磁帶驅動器的接口相關聯。客戶端存檔系統接著可請求虛擬磁帶驅動器重新初始化所述虛擬磁帶。在一些實施方案中,此重新初始化可以通過改變邏輯數據容器的全局標頭中的產生識別符以使邏輯數據容器內的所有數據無效而實現。在重新初始化之后,客戶端存檔系統可使用虛擬磁帶或請求所述磁帶移動回到虛擬磁帶槽位置以等待使用。客戶端存檔系統還可以請求磁帶被銷毀。客戶端存檔系統可請求虛擬磁帶從虛擬磁帶驅動器移動到虛擬導入/導出槽以用于銷毀。作為響應,虛擬磁帶庫裝置可促使虛擬磁帶驅動器與虛擬磁帶ID的關聯,以及虛擬磁帶驅動器接口到邏輯數據容器的指派被去除。接著可取消供應邏輯數據容器。
當前系統的優點在于使用成本可按比例調整到所述系統的實際使用。舉例來說,客戶端可使用每小時、每天、每周、每月、每年和備份到虛擬磁帶之間的其它時間跨度。在一周之后,客戶端可希望銷毀除了午夜備份之外的所有的每小時備份以表示每天備份。剩余的每小時備份的銷毀并未產生用于所銷毀虛擬磁帶的進一步成本。
存儲服務可提供可以用以存儲虛擬磁帶的多個存儲層級。存儲服務可使用包括對象存儲或塊存儲的不同的存儲系統。在一個實施方案中,可使用主動存儲和檔案存儲。主動存儲可提供足夠用于讀取和寫入數據的響應。檔案服務可提供具有太高延時而使得不足以讀取或寫入的服務,但足以用于長期存儲。舉例來說,主動存儲邏輯數據容器可提供同步的讀取和寫入響應,例如來自讀取或寫入的確認或數據。檔案存儲邏輯數據容器可提供異步的響應,例如用于每一請求的作業識別符。接著可查詢作業識別符以確定作業是否已完成。邏輯數據容器兩者還可以包括不同大小的數據對象,其包括一個或多個邏輯數據容器。在使用中,當虛擬磁帶放置在虛擬導入/導出槽中時,在虛擬磁帶后方的邏輯數據容器可以分級以用于在主動存儲和檔案存儲之間傳送。
在另一實施方案中,可使用三層級存儲。可按與虛擬磁帶相關聯的邏輯數據容器準備數據傳送需要多長的時間來查看三層級存儲。舉例來說,可以將三邏輯數據容器存儲在虛擬庫的位置中。第一邏輯數據容器可以存儲在準備好訪問的第一層級中。當客戶存端檔系統請求與第一邏輯數據容器相關聯的虛擬磁帶被載入到虛擬磁帶驅動器中時,一旦虛擬磁帶驅動器接口變得與邏輯數據容器相關聯,邏輯數據容器即可準備好。第二邏輯數據容器可以存儲在準備好在幾分鐘后訪問的第二層級中。當客戶端存檔系統請求與第二邏輯數據容器相關聯的虛擬磁帶被載入到虛擬磁帶驅動器中時,第二邏輯數據容器可以在虛擬磁帶準備好接收數據之前傳送到較高存儲層級。歸因于存儲層級的中等性能,可使得第二邏輯數據容器在幾分鐘后可用。第三邏輯數據容器可以存儲在可以準備好在幾小時或更長時間后訪問的第三層級中。當客戶端存檔系統請求與第三邏輯數據容器相關聯的虛擬磁帶被載入到虛擬磁帶驅動器中時,第三邏輯數據容器可以在虛擬磁帶準備好接收數據之前傳送到較高存儲層級。歸因于存儲層級的較低性能,可使得第三邏輯數據容器在幾小時或更長時間后可用。在一些實施方案中,可以通過虛擬導入/導出槽而非虛擬庫存儲位置來路由第 二或第三邏輯數據容器。多個層級結構的優點在于客戶端可決定其針對備份數據的可用性的需要。長期存儲可以是具有較長響應時間的較廉價存儲,而主動數據可以較昂貴的成本而容易可用。
術語供應(provisioning)意圖被廣泛地理解以包括指派計算資源來使用。在一些實施方案中,此包括準備計算資源用于使用。在一個實施方案中,資源的供應將包括服務器的指派、操作系統的安裝、待放置到資源上的軟件的安裝和配置以及實現構建資源用于使用。舉例來說,供應系統可選擇服務器以用作用于元數據存儲器的數據庫。供應系統接著可產生準備服務器用于用作數據庫的工作流程。作為工作流程的部分,可將機器圖像載入到服務器上。機器圖像可包括操作系統、數據庫軟件和/或設置。在載入機器圖像后,可使服務器啟動到操作系統中且接收任何進一步的軟件和/或設置。此類設置可包括域名和/或初始元數據和安全配置。在完成供應后,可使服務器移交到管理系統用于用作元數據存儲器且包括在虛擬磁帶庫系統中。
在以下描述中,將描述各種實施方案。出于解釋的目的,將闡述具體的配置和細節,以便提供實施方案的透徹理解。然而,對本領域的技術人員將是顯而易見的是,在沒有具體細節的情況下也可以實行實施方案。此外,為了不使所描述的實施方案變得模糊,可能會省略或簡化眾所周知的特征。
本文所描述和建議的技術包括在邏輯數據容器上構建虛擬磁帶,以幫助提供磁帶功能性、快速尋找性能和在故障情況下的改進的恢復時間。舉例來說,邏輯數據容器可包括全局標頭,其后接著一個或多個數據塊組。邏輯數據容器可為可尋址數據容器,例如塊存儲容量、文件存儲邏輯數據容器或對象存儲邏輯數據容器。全局標頭可提供元數據以跟蹤記錄位置、文件標志位置、存儲器中的虛擬磁帶數據、數據確認信息和虛擬磁帶標頭位置。全局磁帶標頭中的此元數據可使得能夠較快的尋找邏輯數據容器中的記錄和文件標志,使得能夠使用存儲器中的最新已知數據位置來較快的恢復,使得能夠通過使數據無效 來快速地擦除虛擬磁帶以及能夠提供磁帶標頭位置信息。為了仿真物理磁帶,還可以仿真線性訪問。物理磁帶通過在磁帶頭上移動磁性介質來訪問。磁帶頭位置表示存儲在磁性介質上的數據內的磁帶標頭的位置。在虛擬磁帶中,虛擬磁帶標頭位置可表示為數據塊組中的數據塊的參考。數據塊組可包括信息,所述信息使數據有效、提供誤差校正、提供關于記錄和文件標志的信息以及提供數據塊中的客戶端數據的存儲。數據塊組可進一步一起組合在宏塊中,所述宏塊可作為組而載入到存儲器中。
在一些實施方案中,全局標頭可還包括全局產生識別符(全局產生ID)、日志、全局記錄旗標和全局文件標志旗標。全局標頭提供允許數據在虛擬磁帶中的迅速定位的信息。物理磁帶使用線性訪問,其可使用磁帶的線性掃描以確定與數據內聯標記的記錄或文件標志。通過使用全局元數據,例如全局記錄旗標,可以更快速地確定位置,這是因為可以掃描元數據而非掃描整個邏輯數據容器。舉例來說,尋找操作可請求來自磁帶開始(BOT)的第十記錄。雖然物理磁帶可倒帶到磁帶的開始且接著向前掃描直到找到第十記錄標志為止,但虛擬磁帶可掃描全局記錄旗標中的較小的元數據量。從全局記錄旗標的開始計數,可以指出設置為真的第十旗標。可以確定位置且可以更新日志中的虛擬磁帶標頭位置以匹配確定的位置。由于元數據的量與整個虛擬磁帶大小相比較小且可以隨機訪問,所以邏輯數據容器的尋找時間可以小于等效物理磁帶的尋找時間。類似流程可以用于使用全局文件標志旗標的文件標志。
虛擬磁帶恢復可以通過使用全局標頭中的日志來改進。日志可用以識別來自虛擬磁帶的哪些元數據載入到存儲器中用于操作。在一個實施方案中,所述日志識別載入到存儲器中的宏塊元數據。宏塊對應于數據塊組的連續組。寫入到宏塊的數據可持續與邏輯數據容器同步,但宏塊元數據的改變可持續與全局標頭異步,例如在從存儲器釋放宏塊后。全局標頭的此異步更新可促使全局標頭變得與同步持續宏塊數據不同步。不時地,托管與虛擬磁帶相關聯的邏輯數據容器的服 務器可遭遇故障。可以檢查日志,且可以目標日志中參考的宏塊以用于恢復。關于存儲器中的宏塊的元數據可以與來自全局標頭的元數據進行比較。可以通過更新全局元數據以匹配數據組元數據來解決差異。在一些實施方案中,可以通過經由對每一數據塊組中的元數據進行誤差校正而重建破壞數據來解決數據破壞問題。
在一些實施方案中,數據塊組可以形成為標準大小。標準大小可允許計算偏移,使得可以在數學上計算數據塊組的位置且將其請求為邏輯數據容器中的某一位置處的數據的讀取。元數據和數據塊組中的數據塊還可以形成為用于相同偏移計算的標準大小。在實施方案中,數據可被硬件對準,使得數據的每一區段可以在硬件的數據邊界上開始。作為說明性實例,磁盤驅動器可以使用4千字節的扇區。數據塊組可以包括4千字節的元數據,其后接著16個各自4千字節的數據塊。因此,每一數據塊組的大小可以是68千字節。通過使用此大小,可以計算出第四數據塊組處于距離第一數據塊組的開始204千字節的位置處。因為元數據占據磁盤驅動器的扇區且與所述扇區對準,所以可以使用單個讀取命令來訪問元數據。出于類似原因,單個讀取命令可以訪問數據塊中的每一者。
在一個實施方案中,記錄可以具有可變的大小,而數據塊可以具有標準大小。具有標準大小塊的此可變的尺寸通過允許可變的大小數據同時還較佳使用利用標準大小存儲容器的硬件來提供虛擬磁帶較佳利用空間的能力,。記錄還可以具有最大大小。小于塊大小的記錄可以使用一個塊。大于塊大小的記錄可以使用多個塊。大于最大記錄大小的記錄可以使用多個記錄。舉例來說,例如硬盤驅動器的存儲裝置可以使用標準大小扇區,例如四千字節。可以將數據塊大小設置為四千字節以利用四千字節的硬件存儲最小訪問。一千字節的記錄可以使用塊的前1千字節,且所述塊的剩余部分可以保持不使用,使得下一記錄可以與4千字節塊對準。然而,可以在描述數據塊組中的記錄的元數據中指出1千字節大小。五千字節的記錄可以使用兩個塊,其中第一塊被充分利用且第二塊保持剩余的一千字節。可以在數據塊組 元數據中將五千字節塊的第一塊標記為記錄開始位置。如果最大記錄大小是四兆字節且存儲具有四兆字節和一千字節的大小的數據,那么可以使用兩個記錄。第一記錄可以包括1024數據塊,且第二記錄可以包括存儲剩余的一千字節的一個塊。
虛擬磁帶結構因此可含有優于物理磁帶的若干優點。在一個實施方案中,虛擬磁帶結構可以存儲在邏輯數據容器上以幫助仿真虛擬磁帶的功能性,例如記錄、磁帶標頭定位、文件標志、尋找、寫入和其它磁帶數據結構或操作。邏輯數據容器可以提供對數據的隨機訪問而非物理磁帶的依序訪問。在另一實施方案中,虛擬磁帶結構經組織以幫助加速誤差恢復。舉例來說,虛擬磁帶結構可以含有識別恢復中的潛在不一致數據的日志。在一些實施方案中,虛擬磁帶結構含有加速尋找操作的元數據結構。舉例來說,標頭中的元數據可以識別數據中的記錄和/或文件標志位置,以避免掃描用于標志的整個數據集。在實施方案中,虛擬磁帶結構中的一些可存在于元數據存儲器中而非虛擬磁帶結構中。舉例來說,虛擬磁帶標頭位置可以存儲在元數據存儲器中而非全局標頭元數據中。在另一實施方案中,虛擬磁帶結構還提供可變的大小記錄。舉例來說,小的記錄可占據磁帶的一個數據塊,而較大記錄可占據跨越數據塊組的多個數據塊。
現轉向圖1,示出根據至少一個實施方案的虛擬磁帶庫100的說明性實例。在所示出實施方案中,客戶端存檔系統102可與虛擬磁帶庫裝置104通信,使得客戶端存檔系統102可使用存儲服務105而非物理磁帶介質。客戶端存檔系統102可以被配置來與物理磁帶介質一起操作。虛擬磁帶庫裝置104可以連接到客戶端存檔系統102以使用存儲服務105來仿真物理磁帶庫。虛擬磁帶庫裝置104可接收經轉換為存儲服務105中的操作的命令,例如產生元數據存儲器108中的虛擬結構之間的關聯或經由與存儲系統110的通信而將數據存儲在供應商存儲系統112中的虛擬磁帶結構中,例如應用程序編程接口(API)調用。虛擬磁帶庫裝置104還可以請求來自管理系統106的管理任務,例如產生或破壞邏輯數據容器。
舉例來說,客戶端存檔系統102可從邏輯數據容器尋找信息。客戶端存檔系統102可發送請求到虛擬磁帶庫裝置104以將虛擬磁帶載入虛擬磁帶驅動器中。虛擬磁帶庫裝置104可請求元數據存儲器108返回與虛擬磁帶ID相關聯的邏輯數據容器識別符。虛擬磁帶庫裝置104接著可產生邏輯數據容器與虛擬磁帶驅動器之間的關聯。指派到虛擬磁帶驅動器的接口還可以被引導到邏輯數據容器。通過使用邏輯數據容器的虛擬磁帶結構,虛擬磁帶庫裝置104可將請求轉換為邏輯數據容器上的操作。所述請求可包括從所識別的記錄進行讀取。在完成虛擬磁帶的使用之后,客戶端存檔系統102可請求虛擬磁帶從虛擬磁帶驅動器移動到虛擬庫位置以等待進一步動作。作為響應,虛擬磁帶庫裝置104可促使去除虛擬磁帶驅動器與虛擬磁帶ID之間的以及虛擬磁帶驅動器接口到邏輯數據容器的指派之間的關聯。
現轉向圖2到4,示出虛擬磁帶庫系統200的基礎結構的虛擬實施方案,且示出虛擬磁帶庫300的基礎結構的物理實施方案。可以在圖4中看見圖3中的邏輯數據容器到圖2中的虛擬位置的實例映射400,其表示為來自圖3的數據存儲器。在一個實施方案中,客戶端存檔系統預期與物理磁帶存儲系統對接。然而,代替物理系統,虛擬磁帶庫系統提供預期物理系統的虛擬版本,例如虛擬介質轉換器228、虛擬磁帶驅動器222、224和226、虛擬導入/導出槽204和206、具有虛擬磁帶槽位置232、234和236的虛擬磁帶槽231、以及如圖2中可見的其它虛擬磁帶系統。虛擬磁帶庫裝置304提供到客戶端存檔系統302的接口,從而經由使用供應商存儲系統312和314中的存儲器以及如圖3中可見的元數據存儲器310來提供這些虛擬系統。供應商存儲系統312和314經由幫助響應磁帶命令的虛擬磁帶結構來提供用于虛擬磁帶的存儲空間。元數據存儲器提供虛擬磁帶庫中的虛擬磁帶、邏輯數據容器與位置之間的關聯。客戶端存檔系統可經由虛擬介質轉換器228來請求位置的改變。這些關聯可包括元數據存儲器中用于“位置”、“邏輯數據容器ID”和“虛擬磁帶ID”的條目。舉例來說,客戶端可經由虛擬介質轉換器228請求虛擬磁帶214從虛擬導入/導 出槽204移動到虛擬磁帶驅動器226。作為響應,代表虛擬磁帶214的供應商主動存儲系統312中的邏輯數據容器可以物理方式保持在同一空間中,而虛擬磁帶214可以通過改變元數據存儲器310中的虛擬磁帶214的“位置”值而實際上從虛擬導入/導出槽204移動到虛擬磁帶驅動器226。虛擬磁帶庫裝置提供接口(例如虛擬磁帶驅動器和虛擬介質轉換器),以將來自客戶端存檔系統的請求轉換到元數據存儲器或供應商存儲系統312和314。舉例來說,虛擬磁帶驅動器222接口可保持相同,但數據可從所述接口重新引導到當前與元數據存儲器310中的虛擬磁帶驅動器相關聯的邏輯數據容器。經由使用這些虛擬系統,客戶端可產生虛擬磁帶,備份數據到虛擬磁帶,從虛擬磁帶恢復數據,存儲虛擬磁帶和銷毀虛擬磁帶。
在一個實施方案中,客戶端可產生虛擬磁帶。在物理磁帶系統中,物理磁帶并未按需產生,而是插入到物理磁帶系統中。然而,在圖2的虛擬磁帶庫系統200中,可以通過由管理系統202產生新的虛擬磁帶來按需產生虛擬磁帶。圖2中的此主動管理系統202可以是圖3的虛擬磁帶庫裝置304或管理服務器306的部分。在實施方案中,客戶端存檔系統302可能不具有用于請求新的虛擬磁帶的方法,且新的虛擬磁帶可能需要例如經由管理控制臺在圖3中的客戶端存檔系統302外部被請求。所述請求可導致數據服務器308在供應商主動存儲系統312中供應新的主動邏輯數據容器,用于用作虛擬磁帶。客戶端存檔系統302可提供與新的邏輯數據容器相關聯的虛擬磁帶ID。虛擬磁帶庫裝置304可促使虛擬磁帶ID與新的主動存儲邏輯數據容器在元數據存儲器310中相關聯。在供應新的主動存儲邏輯數據容器之后,虛擬磁帶庫裝置304可促使元數據存儲器310還使圖3中的新的主動存儲邏輯數據容器與圖2中的虛擬導入/導出槽204相關聯。當虛擬磁帶214與圖2中的虛擬導入/導出槽204相關聯時,客戶端存檔系統230接著可將虛擬磁帶214移動到另一位置(例如槽位置234)或移動到虛擬磁帶驅動器(例如虛擬磁帶驅動器226)。
在另一實施方案中,客戶端可將數據備份到虛擬磁帶。客戶端存 檔系統230可請求虛擬磁帶208從一位置(例如虛擬磁帶庫231中的虛擬磁帶槽位置234)移動到如圖2的虛擬磁帶庫209中可見的虛擬磁帶驅動器222。虛擬磁帶214的移動可以通過圖3中的元數據存儲器310中虛擬磁帶214的“位置”條目從虛擬磁帶槽位置234到虛擬磁帶驅動器226的改變來表示。虛擬磁帶庫裝置304所提供的到客戶端存檔系統302的虛擬磁帶驅動器接口可被定向到圖3中的元數據存儲器310中與圖2中的虛擬磁帶214相關聯的主動存儲邏輯數據容器。來自客戶端存檔系統302的數據的備份可以通過虛擬磁帶庫裝置304接收磁帶命令且將所述磁帶命令轉換為操作而實現,所述操作對指派到圖2中的虛擬磁帶驅動器222的圖3中的供應商主動存儲系統312中的主動存儲邏輯數據容器上的虛擬磁帶結構進行操作。這些操作可包括寫入數據、進行記錄和產生文件標志。在完成備份之后,客戶端存檔系統230可請求虛擬磁帶從虛擬磁帶驅動器移動到另一位置,例如返回到圖2中的虛擬磁帶槽位置234。
在一些實施方案中,客戶端可從虛擬磁帶恢復數據。客戶端存檔系統230可經由虛擬介質轉換器228請求虛擬磁帶208從例如虛擬導入/導出槽206的位置移動到如圖2中可見的虛擬磁帶驅動器222。虛擬磁帶214的移動可以通過圖3中的元數據存儲器310中虛擬磁帶214的“位置”條目從虛擬磁帶槽位置234到虛擬磁帶驅動器226的改變來表示。虛擬磁帶庫裝置304所提供的到客戶端存檔系統302的虛擬磁帶驅動器接口可被定向到圖3中的元數據存儲器310中與圖2中的虛擬磁帶214相關聯的主動存儲邏輯數據容器。客戶端存檔系統230接著可以對虛擬磁帶214執行操作,例如定位、間隔、讀取或其它磁帶操作。這些操作接著可以用于確定從圖3中的主動存儲邏輯數據容器檢索哪些數據。在完成恢復之后,圖2中的客戶端存檔系統230可請求虛擬磁帶214從虛擬磁帶驅動器222移動到虛擬導入/導出槽206用于檔案存儲或移動到虛擬磁帶槽位置234來等待進一步動作。
在一個實施方案中,客戶端可存儲虛擬磁帶。圖2中的客戶端存 檔系統230可請求虛擬磁帶208從例如虛擬磁帶驅動器222的位置移動到如元數據存儲器310中所表示的虛擬導入/導出槽206。客戶端接著可經由供應商存儲系統240請求將虛擬磁帶208存檔到虛擬導入/導出槽206中。虛擬磁帶208接著可從虛擬磁帶庫209去除。在圖3中,所述移動可促使供應商主動存儲系統312對主動存儲邏輯數據容器分級,以用于通過數據服務器308而傳送到供應商檔案存儲系統314作為檔案存儲邏輯數據容器。一旦完成,檔案存儲邏輯數據容器可在元數據存儲器310中與圖2中的虛擬磁帶架238中的位置相關聯。在一些實施方案中,虛擬磁帶架238和所述架238內的虛擬磁帶216和220不可直接訪問到客戶端檔案系統230。所述流程可反轉,使得供應商檔案存儲系統314中的檔案存儲邏輯數據容器可通過對圖2中的供應商存儲系統240的請求而傳送到圖3中的供應商主動存儲系統312中的主動存儲邏輯數據容器。一旦完成傳送,圖3中的主動存儲邏輯數據容器和圖2中的虛擬磁帶214即可與圖2中的虛擬導入/導出槽204相關聯。
在實施方案中,可能存在可用于支持虛擬磁帶的邏輯數據容器的多個存儲層級。在一些實施方案中,如上文所描述的那些,可存在兩個層級,例如圖3中的供應商主動存儲系統312和供應商檔案存儲系統314因為供應商檔案存儲系統314中的存檔存儲邏輯數據容器可能不具有足夠的響應時間和/或可能異步地行動,所以虛擬磁帶216和220可以表示為定位在具有如圖2中可見的長響應時間的虛擬磁帶架238上。具有比檔案存儲邏輯數據容器小的響應時間但比主動存儲邏輯數據容器長的響應時間的第三存儲層級可以表示為虛擬庫221中的位置。由于客戶端存檔系統230可容忍花費幾分鐘時間的將虛擬磁帶212載入到圖2中的虛擬磁帶驅動器226中的請求,所以第三存儲層級中的邏輯數據容器可傳送到較高存儲層級,以便到圖3中的主動存儲邏輯數據容器且與圖2中的虛擬磁帶驅動器226相關聯。此第三層級可允許客戶端具有迅速可用的用于存儲的較小成本,但比容易可用的更便宜。
在另一實施方案中,客戶端可銷毀虛擬磁帶。在圖2中,虛擬磁帶214可實際上移動到虛擬導入/導出槽204。在圖3中,此虛擬移動可經由元數據存儲器310中虛擬磁帶ID與位置和主動存儲邏輯數據容器的關聯來實現。圖2中的虛擬磁帶214接著可通過從圖3中的元數據存儲器310去除位置信息來從虛擬磁帶庫209去除。與虛擬磁帶214相關聯的主動存儲邏輯數據容器接著可被數據服務器308取消供應。取決于實施方案和客戶端存檔系統302,元數據存儲器310可或可不刪除虛擬磁帶214的條目。
應注意,在一些實施方案中,例如圖3中所示的一個實施方案中,可將虛擬磁帶庫裝置304安裝在顧客位置處。客戶位置可與數據中心分隔公用網絡(例如因特網),所述數據中心安放負責元數據存儲器310和主動存儲邏輯數據容器的管理服務器306和數據服務器308。
在圖4中,示出存儲在元數據存儲器中的虛擬位置到數據中心中的物理邏輯數據容器的映射。圖3中的元數據存儲器310所提供的映射經示出為含于圖4中的虛擬位置處。虛擬磁帶208、210、212、214、216、218和220的虛擬映射對應于邏輯數據容器的映射404、406、408、410、412、414和416。虛擬磁帶庫415經由供應商存儲系統440來與主動存儲器402交互。檔案存儲器438中的邏輯數據容器也可以經由供應商存儲系統440來交互。邏輯數據容器可經由供應商存儲系統440而在檔案存儲器438與主動存儲器402之間傳送。主動存儲器402中的邏輯數據容器可被看作是虛擬磁帶庫415和客戶端存檔系統428可用的。在一些實施方案中,檔案存儲器438中的容量直到移動到主動存儲器402才可被視為不可用的。
現轉向圖5,示出根據至少一個實施方案的可用以操作虛擬磁帶庫系統的流程500的說明性實例。此流程500可通過例如圖3中所示的那些適當的計算資源來共同地實現,所述計算資源包括客戶端存檔系統302、虛擬磁帶庫裝置304、管理服務器306、數據服務器308、元數據存儲器310、供應商主動存儲系統312和供應商存檔存儲系統 314。虛擬磁帶可通過將虛擬磁帶與邏輯數據容器之間的關聯存儲502在元數據存儲器中而產生。虛擬磁帶接著可與虛擬磁帶驅動器相關聯504。使虛擬磁帶與虛擬磁帶驅動器相關聯可以任何合適的方式來執行,例如通過元數據存儲器,如上文結合圖3所述。虛擬磁帶驅動器關聯可創建客戶端存檔系統與邏輯數據容器之間的I/O路徑。虛擬磁帶庫裝置可轉換506客戶端存檔系統所請求的磁帶操作,以訪問與載入到虛擬磁帶驅動器中的虛擬磁帶相關聯的邏輯數據容器。舉例來說,向磁帶開始(BOT)請求第四記錄的尋找操作可經轉換為用于邏輯數據容器的全局標頭中的全局記錄旗標元數據的邏輯數據容器請求,從而掃描設為真的第四記錄旗標。設為真的第四記錄旗標的位置接著可用以計算邏輯數據容器中的記錄位置,且將全局標頭中日志中的磁帶標頭位置設為記錄位置。在完成客戶端存檔系統所請求的磁帶操作之后,虛擬磁帶可從虛擬磁帶驅動器移動到虛擬磁帶庫中的另一位置。通過移動虛擬磁帶,可從虛擬磁帶驅動器I/O接口釋放508邏輯數據容器。舉例來說,移動虛擬磁帶到不同位置的請求可促使虛擬磁帶與虛擬磁帶驅動器的關聯可從元數據存儲器被去除。由虛擬磁帶驅動器I/O接口進行的I/O請求的路由也可以被去除,使得沒有其他I/O請求路由到與虛擬磁帶相關聯的邏輯數據容器。
流程500(或本文描述的任何其它流程,或其變體和/或組合)中的一些或所有可在用可執行指令配置的一個或多個計算機系統的控制下執行,且可通過硬件或其組合實施為共同在一個或多個處理器上執行的代碼(例如,可執行指令、一個或多個計算機程序或一個或多個應用程序)。所述代碼可例如以包括可由一個或多個處理器執行的多個指令的計算機程序的形式而存儲在計算機可讀存儲介質上。計算機可讀存儲介質可以是非暫時性的。
圖6示出根據至少一個實施方案的可用以備份到虛擬磁帶庫系統的流程的說明性實例。此流程600可以通過例如圖3中所示的那些計算資源而共同地實現,所述計算資源包括客戶端存檔系統302、虛擬磁帶庫裝置304、管理服務器306、數據服務器308、元數據存儲 器310、供應商主動存儲系統312和供應商存檔存儲系統314。虛擬磁帶可以通過在元數據存儲器中使虛擬磁帶與邏輯數據容器相關聯602而產生。接著可通過在元數據存儲器中使虛擬磁帶與虛擬導入/導出槽相關聯604來將虛擬磁帶實際上載入到虛擬導入/導出槽中。虛擬磁帶庫裝置可經由介質轉換器接口來接收606請求,以將虛擬磁帶移動到虛擬磁帶驅動器。響應于此請求,與虛擬磁帶相關聯的邏輯數據容器也可以與虛擬磁帶驅動器的虛擬磁帶驅動器I/O接口相關聯608。客戶端存檔系統接著可執行610備份操作,所述備份操作可包括在尚未初始化的情況下初始化邏輯數據容器。在備份數據之后,介質轉換器接口可接收612來自客戶端存檔系統的請求,以從虛擬磁帶驅動器移動虛擬磁帶。響應于此請求,可從虛擬磁帶驅動器I/O接口釋放614邏輯數據容器。如果邏輯數據容器將移動616到導入/導出槽,那么虛擬磁帶可以移動到虛擬導入/導出槽,從而促使元數據存儲器中邏輯數據容器、虛擬導入/導出槽和虛擬磁帶的關聯618。接著可通過將虛擬磁帶移動到虛擬磁帶架來從虛擬磁帶庫去除所述虛擬磁帶。邏輯數據容器接著可被分級且傳送620到檔案存儲器。然而,如果虛擬磁帶將被移動616到存儲槽而使得其保持容易可用,那么虛擬磁帶可以與庫位置在元數據存儲器中相關聯622且保持624在主動存儲器中。在保持于主動存儲器中之后,虛擬磁帶庫裝置可接收將邏輯數據容器發送到檔案存儲器的請求。虛擬磁帶接著可與導入/導出槽618相關聯且移動620到檔案存儲器。在一些實施方案中,所述請求通過使虛擬磁帶與導入/導出槽相關聯來表明。
可以執行類似步驟以使虛擬磁帶準備恢復到如圖7中可見的客戶端存檔系統。客戶端可接收從存檔存儲器將虛擬磁帶恢復到主動存儲器702的請求。客戶端可決定703可實際上放置哪些槽到哪些虛擬磁帶。可將虛擬磁帶導入到虛擬磁帶槽705中或導入到虛擬導入/導出槽704中。虛擬磁帶可載入706到虛擬磁帶驅動器中,且使支持虛擬磁帶的邏輯數據容器與虛擬磁帶驅動器I/O接口相關聯708。客戶端存檔系統接著可對虛擬磁帶執行恢復操作710,例如定位、間隔、 讀取或其它磁帶操作。這些操作接著可以用于確定從邏輯數據容器檢索哪些數據。在完成恢復之后,客戶端存檔系統可請求712將虛擬磁帶從虛擬磁帶驅動器移動718到虛擬導入/導出槽,以及從用于檔案存儲器720的虛擬磁帶驅動器I/O接口釋放714,或移動到虛擬庫位置722以保持在主動存儲器724中直到接收到用以存檔邏輯數據容器的請求為止。在請求之后,虛擬磁帶從虛擬磁帶驅動器移動718到虛擬導入/導出槽且發送到檔案存儲器720。在一些實施方案中,所述請求通過使虛擬磁帶與導入/導出槽相關聯來表明。
現轉向圖8,示出根據至少一個實施方案的可用以操作虛擬磁帶庫系統的流程800的說明性實例。此流程800可以通過例如圖3中所示的那些計算資源而實現,所述計算資源包括客戶端存檔系統302、虛擬磁帶庫裝置304、管理服務器306、數據服務器308、元數據存儲器310、供應商主動存儲系統312和供應商存檔存儲系統314。新的虛擬磁帶可通過在存儲服務中供應邏輯數據容器以及使邏輯數據容器與虛擬磁帶在元數據存儲器中相關聯而產生802。虛擬磁帶接著可與虛擬導入/導出槽在元數據存儲器中相關聯804。現在虛擬磁帶可用于客戶端存檔系統,客戶端存檔系統可決定是否806存儲、存檔或使用虛擬磁帶。在產生新的磁帶之后,客戶端存檔系統可請求磁帶用于備份。客戶端存檔系統可請求虛擬磁帶經由介質轉換器接口而移動810到虛擬磁帶驅動器。此虛擬移動促使元數據存儲器使與虛擬磁帶相關聯的邏輯數據容器與虛擬磁帶驅動器I/O接口相關聯812。虛擬磁帶庫裝置接著可將來自客戶端存檔系統的磁帶I/O命令轉換814為邏輯數據容器訪問命令。只要客戶端存檔系統發送816命令,虛擬磁帶庫裝置即可繼續轉換用于邏輯數據容器的命令。在完成816客戶端存檔系統命令之后,虛擬磁帶和對應邏輯數據容器可與虛擬磁帶驅動器I/O接口斷開關聯818。客戶端存檔系統接著可返回決定是否806存檔、使用或存儲所述虛擬磁帶。如果虛擬磁帶將被存儲806,那么虛擬磁帶可與虛擬庫位置808相關聯以等待進一步動作被使用、存儲或存檔806。
如果選擇806虛擬磁帶被存檔,那么虛擬磁帶可移動到虛擬導入/導出槽820。虛擬磁帶接著可從虛擬庫去除到虛擬庫架,且與虛擬磁帶相關聯的邏輯數據容器移動822到檔案存儲器。邏輯數據容器可停留在檔案存儲器中直到請求虛擬磁帶和/或邏輯數據容器恢復824回到虛擬磁帶庫和相關聯主動存儲器中為止。一旦邏輯數據容器從檔案存儲器移動826,那么虛擬磁帶可與虛擬磁帶庫中的虛擬導入/導出槽相關聯828。接著可存儲、使用或存檔806虛擬磁帶。
現轉向圖9到11,示出虛擬磁帶結構的實例。虛擬磁帶結構可含有優于物理磁帶的若干優點。在一個實施方案中,虛擬磁帶結構可以存儲在邏輯數據容器上以幫助仿真虛擬磁帶的功能性,例如記錄、磁帶標頭定位、文件標志、尋找、寫入和其它磁帶數據結構或操作。邏輯數據容器可以提供對數據的隨機訪問而非物理磁帶的依序訪問。在另一實施方案中,虛擬磁帶結構經組織以幫助加速誤差恢復。舉例來說,虛擬磁帶結構可以含有識別恢復中的潛在不一致數據的日志。在一些實施方案中,虛擬磁帶結構含有加速尋找操作的元數據結構。舉例來說,標頭中的元數據可以識別數據中的記錄和/或文件標志位置,以避免掃描用于標志的整個數據集。在實施方案中,虛擬磁帶結構中的一些可存在于元數據存儲器中而非虛擬磁帶結構中。舉例來說,虛擬磁帶標頭位置可以存儲在元數據存儲器中而非全局標頭元數據中。在另一實施方案中,虛擬磁帶結構還提供可變的大小記錄。舉例來說,小的記錄可占據磁帶的一個數據塊,而較大記錄可占據跨越數據塊組的多個數據塊。
現轉向圖9,示出根據至少一個實施方案的虛擬磁帶902的說明性實例。如圖3中的客戶端存檔系統302可見的虛擬磁帶902可包括包含虛擬磁帶結構906的邏輯數據容器904。虛擬磁帶結構906可用以仿真磁帶功能性,且利用邏輯數據容器904的能力用于對數據進行隨機訪問。虛擬磁帶結構906可包括全局標頭908和一個或多個數據塊組。在一些實施方案中,若干數據塊組910組合為宏塊912。在一些實施方案中,數據塊組910和宏塊912具有一致的大小。此大小分 配允許從全局標頭的末端來計算數據塊組910和/或宏塊912的位置,從而幫助對數據塊組910和/或宏塊912進行隨機訪問。還可在所論述的子結構中觀測到數據對準,使得子結構還可通過與宏塊開始、數據塊開始或其它計算位置的偏移而一致找到。在一些實施方案中,數據對準取決于硬件規范。舉例來說,其上存儲邏輯數據容器的硬盤驅動器可使用4,096字節扇區(4k)。由于4k數據是可寫入驅動器或從驅動器讀取的最小量(且未截斷),所以存儲到邏輯數據容器的元數據和數據可在4k邊界上對準。然而,應認識到可使用其它硬件啟發邊界,包括512字節、2048字節、4k、8k、16k、32k、64k、128k、256k。
在一個實施方案中,相對于服務器存儲器來選擇宏塊大小。舉例來說,可選擇宏塊大小為512MB,使得可將兩個宏塊912載入到存儲器中用于總共1GB的信息。在實施方案中,可將兩個宏塊912載入到存儲器中,以保持第一宏塊912正在操作且第二宏塊912緊跟著第一宏塊912。通過載入這兩個宏塊912,如果寫入或讀取操作越過第一宏塊邊界,那么第二宏塊912準備好使用。第一宏塊912接著可持續到磁盤,且可載入跟著第二宏塊912的第三宏塊912。
在圖10中所示的一個實施方案中,全局標頭906可包括全局產生識別符(全局產生ID)914、日志916、全局記錄元數據918和全局文件標志元數據920。產生ID可用以識別虛擬磁帶結構906內有效的信息。舉例來說,每一數據塊組910可還包括數據塊產生識別符(數據塊產生ID)924。如果數據塊組產生ID 924不匹配全局產生ID914,那么可推測含有數據塊產生ID 924的數據塊組910中的數據無效。在一個實施方案中,可通過用與數據塊910內的數據塊組產生ID 924不匹配的值替換全局產生ID 914來使虛擬磁帶內的數據無效。
日志916可用以識別虛擬磁帶902的狀態信息。在圖10中進一步分解日志916。此狀態信息可包括例如磁帶標頭位置1001和載入的存儲器中的數據的信息,例如宏塊識別符(宏塊ID)1002。磁帶標頭位置可幫助仿真磁帶,因為磁帶是線性訪問裝置。舉例來說,磁帶標 頭可確定下一尋找操作開始之處。客戶端存檔系統可請求所述磁帶移動到下一記錄。可調整磁帶標頭位置以指向來自磁帶數據中的磁帶標頭的下一記錄。將在圖10中的記錄旗標1006的引入之后論述尋找操作的更透徹解釋。
載入到存儲器中的數據的記錄可在恢復期間有所幫助。在圖10中所示的實施方案中,日志916包括宏塊ID 1002。宏塊ID 1002表示載入到存儲器中用于操作的宏塊912。當載入到存儲器中時,將宏塊ID 1002寫入到日志中。當從存儲器卸載時,關于宏塊912的信息可持續存儲,且可去除用于宏塊912的日志條目。如果在一個或多個宏塊912處于存儲器中時邏輯數據容器出故障,那么日志可用以識別哪些宏塊912需要檢查和/或修復。宏塊912的此識別允許恢復流程聚焦于可能需要注意的數據上而非全部掃描整個磁帶數據,從而允許比在日志916不存在或未使用的情況下更快地恢復虛擬磁帶。宏塊的恢復相對于結合圖11而描述的數據塊組922得到更具體地處理。
全局記錄元數據918可識別邏輯數據容器中的記錄開始位置。記錄可以是具有相關聯大小的個別備份條目。在一個實施方案中,全局記錄元數據918可以進一步分為多段,其中每一段與宏塊相關。全局記錄元數據918可包括宏塊標頭1004,每一宏塊標頭之后接著用于與所述標頭相關聯的宏塊912的一組記錄旗標1006。宏塊標頭1004可以還包括記錄產生ID 1012和誤差校正信息1014。如果記錄產生ID1012不匹配全局產生ID 914,那么可確定相關聯宏塊912中的記錄無效。誤差校正信息1014可用以確定在記錄旗標1006中在誤差校正信息1014之后是否已出現誤差。在一些實施方案中,誤差校正信息還可用于校正記錄旗標1006和/或自身,例如檢查和和/或誤差校正代碼。記錄旗標1006可表示相關聯宏塊912中的數據塊。每一數據塊可具有個別旗標以確定數據塊是否含有記錄的開始。在一個實施方案中,記錄旗標是個別的位,其中一個位用于每一數據塊。當數據塊是記錄的開始時可將所述位設為真,且當數據塊不是記錄的開始時可將所述位設為假。
記錄旗標可用以確定記錄的位置。舉例來說,客戶端存檔系統可從虛擬磁帶902的開始請求記錄數目200。虛擬磁帶庫裝置可掃描記錄旗標1006,對記錄進行計數直到識別設為真的第200記錄旗標為止。所識別記錄旗標接著可用以確定宏塊912內的數據塊位置。在一些實施方案中,數據塊以及因此宏塊可以是標準大小。虛擬磁帶庫裝置可使用其優點,且至少部分基于全局標頭長度、宏塊數目和/或數據塊數目來將偏移計算到邏輯數據容器中。在另一實例中,可從客戶端存檔系統接收空間請求。空間請求可請求距離虛擬磁帶標頭位置1001的當前位置的距離的若干記錄。
可類似于全局記錄元數據918來存儲和利用全局文件標志元數據920。文件標志可識別一組相關聯的記錄。全局文件標志元數據920可包括宏塊標頭1008和文件標志旗標1010。全局文件標志數據的宏塊標頭1008還可包括產生ID和誤差校正信息。全局文件標志元數據920可識別邏輯數據容器中的文件標志位置。如記錄旗標等文件標志旗標可識別標記為文件的開始的數據塊。在一些實施方案中,文件標志旗標1010可使用一個位來表示虛擬磁帶中的每一數據塊。文件標志旗標1010可根據宏塊912來組合且用以定位邏輯數據容器中的文件標志。舉例來說,客戶端存檔系統可從虛擬磁帶902的開始請求文件數目10。通過使用文件標志旗標1010,虛擬磁帶庫裝置可計數到標記為真的第十文件標志。第十文件標志旗標的位置可識別宏塊912中的數據塊組910中的相關聯數據塊的位置。通過使用所述位置,可在數據塊駐留之處計算與全局標頭908的偏移。還可將磁帶標頭位置1001設為第十文件標志。
在一個實施方案中,來自圖9的數據塊組922可包括數據塊產生ID 924、數據塊組元數據926和數據塊928。數據塊產生ID 924表示數據塊組922中的數據的有效性。如果數據塊產生ID 924匹配全局產生ID 914,那么可認為所述數據是有效的。在實施方案中,如果數據塊產生ID 924不匹配全局產生ID 914,那么可認為所述數據被擦除和/或是空白的。數據塊組元數據926可描述數據塊組922中的數 據塊928。如圖11中可見,數據塊組元數據可包括誤差校正925和數據塊元數據1102,所述數據塊元數據1102包括記錄旗標、文件標志旗標和用于數據塊組922中的每一數據塊928的記錄的大小。誤差校正信息925可用以確定在數據塊組922中是否已出現誤差。在一些實施方案中,誤差校正信息可用以修復數據塊組922和/或數據塊928中的數據不一致性。記錄旗標可識別是記錄的開始的數據塊928。文件標志旗標可識別文件的開始。大小可表示記錄的大小。數據塊組922還可含有包含客戶端數據的數據塊928。
數據塊組元數據926允許虛擬磁帶支持可變的記錄大小。在一些實施方案中,數據塊大小匹配存儲硬件所支持的最小數據大小,例如4k塊大小。舉例來說,可將記錄寫入到一個或多個數據塊組922。所述記錄中的第一數據塊組可具有數據塊組元數據926中的記錄旗標集合。如果所述記錄還是文件的開始,那么還可將文件標志設為真。接著可將記錄的大小記錄在數據塊組元數據926中的大小字段中。如果大小小于塊大小,那么所述記錄可含在一個數據塊928中。如果大小大于塊大小,那么所述記錄可含在一個以上數據塊928中。第一數據塊928可具有標記為真的記錄旗標,而后續塊可具有標記為假的記錄旗標。大小字段可含有待寫入的記錄的大小,所述大小可在用于含有記錄的一部分的每一數據塊928的每一大小字段中重復。在一些實施方案中,記錄有最大大小的限制。歸因于此限制,可將存儲到虛擬磁帶902的一些數據存儲到多個記錄中。讀取記錄可使用大小值來確定返回多少數據。舉例來說,記錄可具有200字節的大小,其中數據塊具有4k字節的大小。用于記錄的讀取可請求512字節。由于所述記錄是200字節,所以返回記錄或請求量的較小值。對較大塊的讀取可經聚合和組合。
使用存儲器中的宏塊的日志條目和數據塊組922中的元數據可在從誤差恢復期間有所幫助。舉例來說,可將兩個宏塊912載入到存儲器中。可在全局標頭906中的日志916中指出宏塊識別符,例如邏輯數據容器中的位置。當對這些宏塊912操作時,托管所述邏輯數據 容器904的存儲服務器可遭遇誤差。在從誤差恢復后,可針對誤差期間的存儲器中的宏塊來審核日志916。由于故障,全局記錄元數據918和全局文件標志元數據920可與數據塊組元數據926不同步。可掃描包括日志916中指出的宏塊的數據塊組922,來看是否有數據不一致性,包括與誤差校正925信息的不一致性。可以執行修復,例如使數據一致。一旦完成掃描,數據塊組922中的記錄旗標和/或文件旗標即可用以產生與存儲在數據塊組922中的信息一致的全局記錄元數據918和全局文件標志元數據920。在一些實施方案中,寫入到存儲器中的宏塊的數據同步持續到邏輯數據容器,而當宏塊912從存儲器去除時,數據僅異步地持續到全局標頭908。宏塊從存儲器的此去除可以在讀取或寫入移動超出宏塊邊界時發生,使得將以下宏塊912請求到存儲器中。類似地,用于無關宏塊的請求還可觸發元數據到全局標頭的持續。當在宏塊處于存儲器中時出現誤差時,此持續差異可以導致不一致性。
在一個實例中,虛擬磁帶可以是硬件上的一兆字節,其中最小存儲增量是4千字節。數據塊可匹配硬件存儲,其中每一數據塊是4千字節的存儲。數據塊組可包括16個數據塊和4千字節的數據塊元數據,每數據塊組總共68千字節。宏塊可以是512兆字節。全局文件標志元數據可以是30兆字節,且全局記錄元數據也可以是30兆字節。最大記錄大小可以是4兆字節,其對應于1024數據塊。
可擴展的虛擬磁帶驅動器可以是可能的。在一個實施方案中,客戶端設置最大邏輯數據容器大小。接著針對最大邏輯數據容器大小來設置全局標頭的大小,但在按需基礎上添加用于數據塊組的空間。此方法允許虛擬磁帶生長或收縮多達最大邏輯數據容器大小,而無需從開始分配整個邏輯數據容器。在另一實施方案中,由供應商來設置最大邏輯數據容器大小。將全局標頭設定為最大邏輯數據容器大小且在按需基礎上添加用于數據塊組的空間。如果最大大小被超過或者預期被超過,那么可以產生新的邏輯數據容器,其增加全局標頭大小且復制全局標頭信息,以及可以將邏輯數據容器數據傳送到新的邏輯數據 容器。
圖12示出根據至少一個實施方案的可用以產生虛擬磁帶的流程的說明性實例。此流程1300可以通過例如圖3和9中所示的那些計算資源而實現,所述計算資源包括客戶端存檔系統302、虛擬磁帶庫裝置304、管理服務器306、數據服務器308、元數據存儲器310、供應商主動存儲系統312,供應商存檔存儲系統314、虛擬磁帶902、全局標頭906、宏塊912和數據塊910。可以從存儲服務請求邏輯數據容器。邏輯數據容器接著可與虛擬磁帶在元數據存儲器中相關聯1302。如果全局標頭中的簽名不是有效的1303,那么接著可通過產生全局標頭1304來初始化邏輯數據容器。接著可通過產生1306全局產生ID和初始化1308全局文件標志元數據和全局記錄元數據來填入全局標頭1304。初始化全局文件標志數據可包括將所有全局文件標志旗標設為假,且使相關聯產生ID設為全局產生ID。初始化全局記錄元數據可包括將全局記錄旗標設為假,且使相關聯產生ID設為全局產生ID。接著可使虛擬磁帶可用于使用1310。然而,如果全局標頭中的簽名有效1303,那么可以檢查全局標頭中的日志以了解日志是否是空的1312。如果是空的,那么可以啟用1310虛擬磁帶用于使用。如果否,那么虛擬磁帶庫裝置可開始1314a如圖18中可見的恢復流程。
取決于實施方案,可以在多個時間處執行操作1302到1314。舉例來說,當客戶端請求新的虛擬磁帶時,可以執行操作1302。當在與虛擬磁帶驅動器相關聯時請求格式化虛擬磁帶時,可以執行操作1304到1310。在另一實施方案中,當請求新的虛擬磁帶時可以執行操作1302、1304和1308。然而,當在載入到虛擬磁帶驅動器中時請求格式化虛擬磁帶時,產生全局產生ID且將其存儲在虛擬磁帶中。在另一實施方案中,在請求新的虛擬磁帶后執行所有操作1302-1310,因為假定新的虛擬磁帶被格式化。
現轉向圖13,示出根據至少一個實施方案的可用以操作虛擬磁 帶的流程的說明性實例。此流程1200可以通過例如圖3和9中所示的那些計算資源而實現,所述計算資源包括客戶端存檔系統302、虛擬磁帶庫裝置304、管理服務器306、數據服務器308、元數據存儲器310、供應商主動存儲系統312,供應商存檔存儲系統314、虛擬磁帶902、全局標頭906、宏塊912和數據塊910。虛擬磁帶庫裝置可接收1202在虛擬磁帶上一位置處訪問數據的請求。可以掃描1204全局標頭元數據以至少部分基于虛擬磁帶位置來確定所指定的位置。由于系統使用虛擬磁帶,所以按相對項或絕對項來給定位置。舉例來說,相對請求可以是用于記錄的請求,也就是距離磁帶標頭位置1001的限定數目個記錄。絕對請求可用于記錄位置,從虛擬磁帶的末端或虛擬磁帶902的開始起的指定數目個記錄。一旦確定位置,即可計算邏輯數據容器位置以確定與全局標頭的偏移,其可用以得出所確定的數據塊928。可將所確定的宏塊元數據載入1206到存儲器中。可寫入1208日志條目,其識別出宏塊元數據處于存儲器中。可對宏塊進行操作1210。所述數據可同步持續1212到邏輯數據容器,同時等待其它指令。如果數據操作超過宏塊邊界或在完成寫入或宏塊后,那么可更新日志以反映存儲器中的新宏塊且全局元數據的改變可持續。
圖14示出根據至少一個實施方案的可用以寫入到虛擬磁帶的流程的說明性實例;此流程1400可以通過例如圖3和9中所示的那些計算資源而實現,所述計算資源包括客戶端存檔系統302、虛擬磁帶庫裝置304、管理服務器306、數據服務器308、元數據存儲器310、供應商主動存儲系統312,供應商存檔存儲系統314、虛擬磁帶902、全局標頭906、宏塊912和數據塊910。在一些實施方案中,虛擬磁帶驅動器可具有最大記錄長度,例如四兆字節或十六兆字節。可將小于最大記錄大小的接收數據寫入為一個記錄。可跨越若干記錄來寫入大于最大記錄大小的接收數據。在實施方案中,記錄也可以宏塊邊界。當跨越宏塊邊界寫入時,與第一宏塊相關的全局元數據可持續到全局標頭,例如全局文件標志旗標和全局記錄旗標。可從存儲器去除第一宏塊元數據,且接著可將連續的宏塊元數據載入到存儲器中。舉例來 說,可將兩個宏塊的元數據載入到存儲器中并在全局標頭中的日志中進行參考。第一宏塊可包括寫入將開始的位置。第二宏塊可以是與第一宏塊連續的,使得寫入將在第二宏塊中結束。當寫入從第一宏塊轉變到第二宏塊時,第一宏塊可用以持續關于第一宏塊的全局標頭信息,例如全局文件標志旗標和全局記錄旗標。當寫入繼續到第二宏塊中時,第一宏塊元數據可從存儲器卸載且從日志去除。與第二宏塊連續的第三宏塊接著可使其元數據載入到存儲器中并在日志中進行參考。
當虛擬磁帶載入到虛擬磁帶驅動器中時,虛擬磁帶庫裝置可將寫入數據到虛擬磁帶上的請求轉換為在邏輯數據容器上讀取數據和寫入數據的請求。邏輯數據容器中的元數據可幫助寫入請求經由隨機訪問而比物理磁帶上的線性訪問更快速地尋找數據(例如,磁帶的末尾)。在所示出實施方案中,在接收寫入數據的請求之后,可使用與虛擬磁帶相關聯的邏輯數據容器的全局標頭中的文件標志元數據和/或記錄元數據來確定1402宏塊位置。舉例來說,寫入請求可試圖將數據放置在磁帶數據的末尾處。在一些虛擬磁帶驅動器中,磁帶數據的末尾可由兩個連續的文件標志表示。虛擬磁帶庫裝置可掃描全局文件標志元數據以尋找兩個連續的全局文件標志旗標,且接著將虛擬磁帶標頭位置中的位置存儲在日志中。可將與所確定的寫入位置相關聯的元數據塊載入1404到存儲器中。可審核與寫入位置相關聯的數據塊組以確保數據塊組產生ID匹配1406全局產生ID。如果不匹配,那么可將全局產生ID復制到數據塊組產生ID以使所寫入數據有效。在將宏塊元數據載入到存儲器中之后,還可以在全局標頭中的日志中參考1408載入到存儲器中的宏塊元數據。可指出開始數據塊與作為記錄的開端的數據塊組元數據相關聯1410。可在被寫入影響的數據塊的每一元數據條目中指出記錄大小。記錄大小可以是剩余數據或最大允許記錄大小中的較小值。接著可將數據寫入1412多達記錄大小或宏塊的末尾。如果存在剩余數據1414且寫入未1416超出宏塊的末尾,那么后續記錄可經產生1410且進一步處理。如果存在1414剩余 數據且寫入超出1416宏塊邊界,那么宏塊中的數據可同步地持續到邏輯數據容器,且全局標頭內的元數據可異步地更新1418,例如全局文件標志旗標、全局記錄旗標和磁帶標頭位置。所述日志還可更新1422以下內容:來自存儲器的宏塊的引退,以及連續宏塊到存儲器中的載入1404和進一步處理。如果不存在1414剩余數據,那么可在數據組元數據中更新1424文件標志以標記寫入的末尾。在一些實施方案中,兩個文件標志可用以指出數據的末尾。數據可與寫入發生同步地持續1426到邏輯數據容器,使得存儲器的任何改變將不會丟失,其后,下一命令可等待1428。
現轉向圖15,示出根據至少一個實施方案的可用以使用虛擬磁帶來尋找記錄的流程的說明性實例。此流程1500可以通過例如圖3和9中所示的那些計算資源而實現,所述計算資源包括客戶端存檔系統302、虛擬磁帶庫裝置304、管理服務器306、數據服務器308、元數據存儲器310、供應商主動存儲系統312,供應商存檔存儲系統314、虛擬磁帶902、全局標頭906、宏塊912和數據塊910。當虛擬磁帶載入到虛擬磁帶驅動器中時,虛擬磁帶庫裝置可將尋找虛擬磁帶上的數據的請求轉換為在邏輯數據容器上數據的請求。邏輯數據容器中的元數據可幫助尋找請求經由隨機訪問而比物理磁帶上的線性訪問更快速地尋找數據。在所示出實施方案中,接收1502用以在磁帶標頭的相對位置處訪問數據的請求。接著從全局記錄元數據1504讀取磁帶標頭位置。基于磁帶標頭位置來確定1506全局記錄旗標中的位置。接著可掃描和計數1508全局記錄旗標,直到確定相對位置為止,例如朝向磁帶末尾的5個記錄。所述掃描可取決于給定的尋找命令而向前(朝向磁帶末尾)或倒退(朝向磁帶開始)。通過使用全局記錄旗標中的所確定的相對位置,還可確定邏輯數據容器中的數據塊和宏塊位置。接著可將此位置存儲1510為全局元數據中的磁帶標頭位置。
現轉向圖16,示出根據至少一個實施方案的可用以使用虛擬磁帶來尋找文件標志的流程的說明性實例。此流程1600可以通過例如圖3和9中所示的那些計算資源而實現,所述計算資源包括客戶端存 檔系統302、虛擬磁帶庫裝置304、管理服務器306、數據服務器308、元數據存儲器310、供應商主動存儲系統312,供應商存檔存儲系統314、虛擬磁帶902、全局標頭906、宏塊912和數據塊910。此流程可類似于圖15中關于記錄而描述的流程。在所示出實施方案中,接收1602用以在磁帶標頭的相對位置處尋找文件標志的請求。接著從全局文件標志元數據1604讀取磁帶標頭位置。基于磁帶標頭位置來確定1606全局文件標志旗標中的位置。接著可掃描和計數1608全局文件標志旗標,直到確定相對位置為止,例如朝向磁帶末尾的5個文件標志。所述掃描可取決于給定的尋找命令而向前(朝向磁帶末尾)或倒退(朝向磁帶開始)。通過使用全局文件標志旗標中的所確定的相對位置,還可確定邏輯數據容器中的數據塊和宏塊位置。接著可將此位置存儲1610為全局元數據中的磁帶標頭位置。類似流程可用于絕對定位,例如可以使用從磁帶開始或磁帶末尾。磁帶標頭的開始位置可代替是磁帶開始或磁帶末尾。
現轉向圖17,示出根據至少一個實施方案的可用以讀取虛擬磁帶的流程的說明性實例。接著可基于磁帶標頭位置將宏塊元數據載入到存儲器1702中。接著可用全局產生ID來驗證1704數據塊組產生ID。如果不匹配1706,那么可以認為數據塊組無效1720,且在一些實施方案中不讀取。下一命令接著可等待1722。如果產生ID匹配1706,那么可以更新1708全局標頭中的日志,宏塊的元數據處于存儲器中。可以審核記錄大小以確定是否讀取多達記錄大小或宏塊的末尾。記錄大小可以是剩余數據或最大允許記錄大小中的較小值。接著可將數據讀取1710多達記錄大小或宏塊的末尾。如果存在剩余數據1712且讀取未1714超出宏塊的末尾,那么后續記錄可經讀取1710。如果存在1712剩余數據且寫入超出1714宏塊邊界,那么宏塊中的數據可同步地持續到邏輯數據容器,且全局標頭內的元數據可異步地更新1716,例如全局文件標志旗標、全局記錄旗標和磁帶標頭位置。所述日志還可更新1718以下內容:來自存儲器的宏塊的引退,以及連續宏塊及其元數據到存儲器中的載入1702和進一步處理。如果不 存在1712剩余數據,那么可以等待1428下一命令。
圖18示出根據至少一個實施方案的可用以從虛擬磁帶中的事件來進行恢復的流程的說明性實例。此流程1800可以通過例如圖3和9中所示的那些計算資源而實現,所述計算資源包括客戶端存檔系統302、虛擬磁帶庫裝置304、管理服務器306、數據服務器308、元數據存儲器310、供應商主動存儲系統312,供應商存檔存儲系統314、虛擬磁帶902、全局標頭906、宏塊912和數據塊910。托管與虛擬磁帶相關聯的邏輯數據容器的服務器可能發生故障事件,例如電力故障。在從電力故障恢復后,服務器可通知管理服務器,已發生事件且恢復流程開始。在一些實施方案中,存儲器中宏塊的改變與邏輯數據容器中對應宏塊同步地持續。然而,全局元數據可以異步地更新,例如當宏塊從存儲器卸載時。因此,存儲器中的宏塊,例如在全局標頭中的日志中指出的那些宏塊,可歸因于更新邏輯數據容器的每一部分的同步和異步性質而變得與全局標頭元數據不一致。恢復流程因此將需要使日志中指出的宏塊與故障的事件中的全局元數據重新同步。
在確定所發生1802的事件可具有對邏輯數據容器的效應之后,可在邏輯數據容器的全局標頭中審核1804日志。如果日志中沒有條目,那么邏輯數據容器可以返回服務,因為不需要修復。然而,可將日志中指出的任何宏塊載入到存儲器1806中。以第一宏塊的第一數據塊組開始1807,比較全局標頭的全局產生ID與數據塊組產生ID。如果產生ID匹配,那么可以進一步檢查數據塊是否有誤差。如果產生ID不匹配,那么可以認為數據塊組無效。在一些實施方案中,可以使用誤差校正,且如果誤差校正促使產生ID匹配,那么可以繼續進行進一步恢復操作。可以對數據塊組執行1810誤差校正和/或檢測以確保數據完整性。可以比較數據塊組元數據與全局標頭元數據,使得與全局標頭數據的不一致性可以固定在全局標頭數據中。舉例來說,數據塊組記錄旗標和文件標志旗標可以持續1812到全局記錄旗標,且指出事件中失配的全局文件標志旗標。如果存在1816需掃描的更多數據塊組,那么可以經由操作1808到1812來處理每一其它宏 塊。一旦已完成恢復,那么可以清除1818日志。在一些實施方案中,可再次啟用1820邏輯數據容器用于使用。
圖19圖示根據各種實施方案的用于實施若干方面的實例環境1900的若干方面。如將了解,盡管出于解釋目的使用基于網絡的環境,但是可視情況使用不同環境來實現各個實施方案。系統包括電子客戶端設備1902,所述電子客戶端設備可包括可操作來在適合網絡1904上發送和接收請求、消息或信息并且將信息傳送回裝置用戶的任何適當的裝置。此類客戶端設備的實例包括個人計算機、蜂窩電話、手持式消息傳遞裝置、膝上計算機、機頂盒、個人數據助理、電子書閱讀器等等。網絡可包括任何適合網絡,其包括內部網、因特網、蜂窩網、局域網或任何其它此類網絡或上述網絡的組合。此類系統所用的組件可以至少部分取決于所選網絡和/或環境的類型。用于經由此類網絡通信的協議和組件是眾所周知的,因而本文不再詳細論述。網路上的通信可以經由有線或無線連接及其組合來實現。在此實例中,網絡包括因特網,因為環境包括用于接收請求且響應于所述請求而服務內容的Web服務器1906,然而對于其它網絡來說,可使用用于服務類似目的替代裝置,如本領域技術人員所顯而易見的。
說明性環境包括至少一個應用程序服務器1908和數據存儲器1910。應當理解,可以存在可以鏈接起來或以其它方式來配置的若干應用程序服務器、層或其它元件、流程或組件,這些應用程序服務器、層或其它元件、流程或組件可交互來執行如從適當的數據存儲器獲得數據的任務。如本文所使用的,術語“數據存儲器”指代能夠存儲、訪問和檢索數據的任何裝置或裝置組合,所述裝置可包括在任何標準、分布或集群環境中的數據服務器、數據庫、數據存儲裝置和數據存儲介質的任何組合和任何數目。應用程序服務器可包括任何適當的硬件和軟件,所述硬件和軟件視執行客戶端裝置的一個或多個應用程序的方面的需要與數據存儲器集成且處置應用程序的大多數數據訪問和業務邏輯。應用程序服務器提供與數據存儲器協作的訪問控制服務,并且能夠產生將要傳送到用戶的如文本、圖形、音頻和/或視頻等內 容,在此實例中所述內容可以HTML(“超文本標記語言”)、XML(“可擴展標記語言”)或另一適當的結構化語言的形式通過Web服務器向用戶提供服務。所有請求和響應的處置以及客戶端裝置1902與應用程序服務器1908之間的內容遞送可由網絡服務器來處置。應當理解,網絡服務器和應用程序服務器不是必要的,且僅僅是示例性組件,因為本文所論述的結構化代碼可在如本文其它地方所論述的任何適當的裝置或主機機器上執行。
數據存儲器1910可包括若干獨立的數據表、數據庫或其它數據存儲機構和介質,用來存儲與特定方面相關的數據。舉例來說,所圖示的數據存儲器包括用于存儲產生數據1912和用戶信息1916的機構,所述機構可用于服務產生端的內容。還示出數據存儲器包括用于存儲日志數據1914的機構,所述機構可用于報告、分析或其它此類目的。應當理解,可能存在可能需要存儲在數據存儲器中的許多其它方面,如頁面圖像信息和訪問權信息,所述方面可視情況存儲在上文列出的機構中的任何機構中或存儲在數據存儲器1910中的額外機構中。數據存儲器1910可通過與其相關聯的邏輯來操作,以便從應用程序服務器1908接收指令,并且響應于所述指令而獲得數據、更新數據或以其它方式處理數據。在一個實例中,用戶可以針對某種類型的項目提交搜索請求。在此情況下,數據存儲器可能訪問用戶信息來驗證用戶的身份,并且可訪問目錄詳細信息以獲得有關所述類型的項目的信息。接著可將信息如以網頁上的結果列表的形式返回給用戶,用戶能夠經由用戶裝置1902上的瀏覽器來查看所述列表。可在瀏覽器的專用頁面或窗口中查看感興趣的特定項目的信息。
每個服務器通常會包括提供針對該服務器的一般管理和操作的可執行程序指令的操作系統,且通常將包括存儲指令的計算機可讀存儲介質(例如,硬盤、隨機存取存儲器、只讀存儲器等),當這些指令被所述服務器的處理器執行時,所述指令允許所述服務器執行其期望的功能。針對操作系統和服務器一般功能性的合適實現方式是已知的或可商購獲得,并且本領域的普通技術人員,特別是根據本公開,較 易實施這些方式。
在一個實施方案中,環境是分布式計算環境,所述環境利用經由通信鏈路、使用一個或多個計算機網絡或直接連接來互連的若干計算機系統和組件。然而,本領域普通技術人員應理解,此類系統可在具有比圖19所圖示的組件更少或更多個組件的系統中同樣順利地操作。因此,圖19中的系統1900的描繪本質上應視為說明性的,并且不限制本公開的范圍。
可在廣泛范圍的操作環境中進一步實施各個實施方案,所述環境在一些狀況下可包括一個或多個用戶計算機、計算裝置或可用于操作多個應用程序中的任何一個應用程序的處理裝置。用戶或客戶端裝置可包括多個通用個人計算機中的任何一個,如運行標準操作系統的臺式計算機或膝上計算機,以及運行移動軟件并且能夠支持多個網絡連接協議和消息傳遞協議的蜂窩式裝置、無線裝置和手持裝置。此類系統還可包括多個工作站,所述工作站運行各種可商購的操作系統和用于特定目的(如開發和數據庫管理)的其它已知應用程序中的任何應用程序。這些裝置還可包括其它電子裝置,如虛擬終端、薄型客戶端、游戲系統和能夠經由網絡通信的其它裝置。
可以鑒于以下條款來較佳理解上述內容:
1.一種計算機實施的存儲方法,其包括:
在用可執行指令配置的一個或多個計算機系統的控制下,
接收產生虛擬磁帶的請求;
請求在存儲服務中產生邏輯數據容器;
使所述邏輯數據容器與虛擬磁帶相關聯;
接收將來自虛擬存儲位置的所述虛擬磁帶載入到虛擬磁帶驅動 器的請求;
將與所述虛擬磁帶相關聯的所述邏輯數據容器映射到與所述虛擬磁帶驅動器相關聯的輸入/輸出接口;
在所述輸入/輸出接口上向與映射到所述虛擬磁帶驅動器的所述虛擬磁帶相關聯的所述邏輯數據容器轉換請求;
響應于接收存儲所述虛擬磁帶的請求:
去除所述邏輯數據容器到所述輸入/輸出接口的所述映射;
響應于接收將所述虛擬磁帶存儲在檔案存儲服務中的請求:
將所述虛擬磁帶映射到導入/導出位置;
從虛擬磁帶庫去除所述虛擬磁帶;以及
從主動式存儲器傳輸與所述虛擬磁帶相關聯的存儲邏輯數據容器到所述檔案存儲服務中的檔案邏輯數據容器。
2.如條款1所述的計算機實施的方法,其還包括:
使所述邏輯數據容器與虛擬磁帶在元數據存儲器中相關聯;以及
將所述虛擬磁帶到虛擬存儲位置的映射存儲在所述元數據存儲器中。
3.如條款1或2所述的計算機實施的方法,其中在所述輸入/輸出接口上向所述邏輯數據容器轉換請求還包括存儲從客戶端接口接收的數據。
4.如條款2或3所述的計算機實施的方法,其還包括:
將與所述虛擬磁帶相關聯的所述邏輯數據容器映射到與第二虛 擬磁帶驅動器相關聯的第二輸入/輸出接口;以及
在所述第二輸入/輸出接口上將來自所述邏輯數據容器的所存儲數據發送到所述客戶端接口。
5.根據前述條款中的任一條款所述的計算機實施的方法,其中接收將所述虛擬磁帶存儲在所述檔案存儲服務中的請求還包括:
確定用于制備所述邏輯數據容器用于在所述輸入/輸出接口上使用的可接受的響應時間;
至少基于所述確定來從存儲層級集合選擇存儲層級,至少部分基于用于訪問在所述存儲層級中的邏輯數據容器的響應時間而限定的存儲層級;
從與所述輸入/輸出接口一起使用的主動層級傳送所述邏輯數據容器到所述選定的存儲層級;以及
使所述虛擬磁帶與虛擬庫位置相關聯。
6.根據前述條款中的任一條款所述的計算機實施的方法,其中映射所述虛擬磁帶到導入/導出位置還包括將所述虛擬磁帶到導入/導出槽的映射存儲到元數據存儲器中。
7.一種用于存儲數據的計算機實施的方法,其包括:
在用可執行指令配置的一個或多個計算機系統的控制下,
在虛擬磁帶與虛擬磁帶驅動器相關聯的時間期間,將磁帶操作從輸入/輸出接口轉換到與所述虛擬磁帶驅動器相關聯的邏輯數據容器;
響應于從所述虛擬磁帶驅動器去除所述虛擬磁帶的請求而使所述虛擬磁帶驅動器從所述虛擬磁帶和所述邏輯數據容器解除關聯;
從存儲層級集合選擇存儲層級,每一存儲層級包括訪問屬性的速度和成本屬性;以及
從包括所述輸入/輸出接口的當前層級傳送所述邏輯數據容器到所述選定存儲層級上的邏輯數據容器。
8.如條款7或8所述的計算機實施的方法,其中從所述輸入/輸出接口轉換磁帶操作到所述邏輯數據容器還包括:
從客戶端接口接收所述磁帶操作;
將所述磁帶操作轉換為一個或多個存儲服務請求;
從客戶端網絡經由公用網絡到存儲服務接口來將所述一個或多個存儲服務請求傳輸到所述存儲服務。
9.如條款7或8所述的計算機實施的方法,其中從所述客戶端接口接收磁帶操作還包括將虛擬磁帶庫裝置定位在所述客戶端網絡上;以及
配置所述虛擬磁帶庫裝置以接收磁帶操作和發送存儲服務請求。
10.如條款7到9中任一條款所述的計算機實施的方法,還包括在元數據存儲器中使來自存儲服務的所述邏輯數據容器,所述虛擬磁帶和所述虛擬磁帶驅動器相關聯。
11.如條款9或10中所述的計算機實施的方法,其中在所述元數據存儲器中使來自所述存儲服務的所述邏輯數據容器,所述虛擬磁帶和所述虛擬磁帶驅動器相關聯還包括:
請求在所述存儲服務中產生邏輯數據容器;
使所述邏輯數據容器與所述虛擬磁帶在所述元數據存儲器中相關聯;以及
將所述虛擬磁帶到虛擬導入/導出槽的映射存儲在所述元數據存儲器中。
12.如條款7到11中任一條款所述的計算機實施的方法,其還包括:
當請求所述虛擬磁帶驅動器提供數據到第二虛擬磁帶驅動器時,執行與所述虛擬磁帶和所述虛擬磁帶驅動器相關聯的所述邏輯數據容器與第二虛擬磁帶和第二虛擬磁帶驅動器相關聯的第二邏輯數據容器之間的邏輯數據容器復制操作。
13.如條款7到12中任一條款所述的計算機實施的方法,其中從存儲層級集合選擇所述存儲層級還包括:
接收將所述虛擬磁帶移動到存儲槽的請求;以及
至少部分基于所述存儲槽來從所述存儲層級集合選擇所述存儲層級。
14.如條款7到13中任一條款所述的計算機實施的方法,其中從所述存儲層級集合選擇所述存儲層級還包括:
接收將所述虛擬磁帶移動到導入/導出槽的請求;以及
至少部分基于所述導入/導出槽來從所述存儲層級集合選擇所述存儲層級。
15.一種用于管理虛擬磁帶庫的計算機系統,其包括:
一個或多個計算資源,其具有包括可執行指令的一個或多個處理器和存儲器,所述可執行指令在被所述一個或多個處理器執行時促使所述一個或多個處理器至少實施:
虛擬磁帶庫系統,其提供到客戶端存檔系統的接口,所述虛擬磁 帶庫系統通過提供以下內容來提供磁帶庫系統的仿真:
虛擬磁帶集合,所述虛擬磁帶集合中的每一虛擬磁帶包括來自存儲服務的存儲邏輯數據容器,所述存儲服務根據請求提供存儲邏輯數據容器;
虛擬磁帶驅動器集合,來自所述虛擬磁帶驅動器集合的每一虛擬磁帶驅動器提供到所述客戶端存檔系統的接口以與所述虛擬磁帶驅動器相關聯的虛擬磁帶交互;
介質轉換器接口,其被配置來使虛擬磁帶與虛擬磁帶驅動器相關聯;以及
元數據存儲器,其將虛擬磁帶鏈接到存儲邏輯數據容器。
16.如條款15所述的計算機系統,其中所述虛擬磁帶庫還包括一個或多個虛擬導入/導出槽,所述虛擬導入/導出槽被配置來將來自所述存儲服務的所述存儲邏輯數據容器傳送到檔案存儲服務中的檔案邏輯數據容器。
17.如條款15或16所述的計算機系統,其中所述虛擬磁帶庫還包括一個或多個虛擬存儲槽,所述虛擬存儲槽被配置來將來自所述存儲服務的所述存儲邏輯數據容器傳送到檔案存儲服務中的檔案邏輯數據容器。
18.如條款15到17中的任一條款所述的計算機系統,其中所述虛擬磁帶庫系統還包括高速緩存來自所述虛擬磁帶驅動器集合的交互的本地存儲邏輯數據容器。
19.如條款15到18中任一條款所述的計算機系統,其還包括第二虛擬磁帶庫系統,其被配置來通過請求與第一虛擬磁帶相關聯的邏輯數據容器復制到與第二虛擬磁帶相關聯的邏輯數據容器來執行第二虛擬磁帶庫系統所管理的所述第一虛擬磁帶到所述虛擬磁帶庫系 統所管理的所述第二虛擬磁帶的復制。
20.如條款15到19中的任一條款所述的計算機系統,其還包括存儲服務接口,所述存儲服務接口被配置來產生新的虛擬磁帶以及將所述新的虛擬磁帶注入到所述虛擬磁帶庫系統中。
21.如條款15到20中任一條款所述的計算機系統,其中所述存儲服務是對象存儲服務。
22.一個或多個計算機可讀存儲介質,在其上共同地存儲可執行指令,所述可執行指令在被計算機系統的一個或多個處理器執行時促使所述計算機系統至少進行以下操作:
提供到客戶端存檔系統的虛擬磁帶庫接口;
將虛擬磁帶庫中的虛擬磁帶集合映射到存儲服務所提供的邏輯數據容器集合;
將邏輯數據容器映射到與虛擬磁帶驅動器相關聯的輸入/輸出接口;以及
將來自所述客戶端存檔系統的磁帶操作轉換到所述邏輯數據容器。
23.如條款22所述的計算機可讀存儲介質,其中所述指令還包括在被執行時促使所述計算機系統至少進行以下操作的指令:
將來自所述一個或多個邏輯數據容器的所述邏輯數據容器重新映射到虛擬庫位置;以及
將與來自所述虛擬磁帶集合的虛擬磁帶相關聯的第二邏輯數據容器映射到所述輸入/輸出接口。
24.如條款22或23所述的計算機可讀存儲介質,其中所述指令 還包括在被執行時促使所述計算機系統至少進行以下操作的指令:
接收經由所述虛擬磁帶庫接口將虛擬磁帶移動到導入/導出槽的請求;
將所述邏輯數據容器重新映射到虛擬庫位置;以及
請求所述存儲服務將所述邏輯數據容器傳送到檔案存儲服務。
25.如條款22到24中任一條款所述的計算機可讀存儲介質,其中所述指令還包括在被執行時促使所述計算機系統至少進行以下操作的指令:
請求檔案存儲服務將檔案邏輯數據容器傳送到所述存儲服務中的第二邏輯數據容器;以及
將所述第二邏輯數據容器映射到所述虛擬磁帶庫中的導入/導出槽。
26.如條款22到25中任一條款所述的計算機可讀存儲介質,其中將所述虛擬磁帶庫中的所述虛擬磁帶集合映射到所述存儲服務所提供的所述邏輯數據容器集合還包括將所述映射結果存儲在元數據存儲器中。
可以鑒于以下條款來較佳理解上述內容:
1.一種用于使用虛擬磁帶的計算機實施的方法,其包括:
在用可執行指令配置的一個或多個計算機系統的控制下,
使用來自存儲服務的邏輯數據容器來構建虛擬磁帶包括:
請求在所述存儲服務中產生新的邏輯數據容器;
將一個或多個數據塊組存儲到所述邏輯數據容器,所述數據塊組 包括:
包括數據存儲的一個或多個數據塊;以及
數據塊標頭,其包括:
用于所述數據塊組中的每一數據塊的表示一個或多個數據塊集合的開端的記錄旗標;
用于所述數據塊組中的每一數據塊的表示記錄組的開端的文件標志旗標;以及
用于所述數據塊組中的每一數據塊的指示所述記錄中的所述數據塊集合中的數據塊數目的記錄大小;
將磁帶標頭存儲到所述邏輯數據容器,所述磁帶標頭包括:
全局記錄元數據,其包括用于所述虛擬磁帶中的每一數據塊的記錄旗標;以及
全局文件標志元數據,其包括用于所述虛擬磁帶中的每一數據塊的文件標志旗標。
2.如條款1所述的計算機實施的方法,其中存儲所述磁帶標頭還包括存儲所述磁帶標頭中的日志,其參考全局元數據的表示一個或多個數據塊組的部分。
3.如條款2所述的計算機實施的方法,其還包括:
接收將數據定位在所述虛擬磁帶上的請求;
至少部分基于所述請求和全局記錄元數據或全局文件標志元數據來確定含有數據塊的數據塊組的數據位置包括所述數據;
載入全局元數據的部分到存儲器中,以及表示存儲器中的一個或 多個鄰近數據塊組的全局元數據的第二部分到存儲器中;
在所述日志中參考全局元數據的所述部分和全局元數據的第二部分;以及
至少部分基于與所述數據位置相關聯的所述數據塊標頭中的所述記錄大小來確定所述數據的記錄大小。
4.如條款2或3所述的計算機實施的方法,其還包括:
接收將數據寫入到所述虛擬磁帶的請求;
至少部分基于所述請求和所述全局記錄元數據或所述全局文件標志元數據來確定將寫入到的虛擬磁帶中的數據位置;
基于所述數據位置載入全局元數據的部分到存儲器中,以及表示存儲器中的一個或多個鄰近數據塊組的全局元數據的第二部分到存儲器中;
在所述日志中識別所述一個或多個鄰近數據塊組;
將所述數據寫入到所述數據塊組;
更新與含有所述數據位置的所述數據塊相關聯的相關聯記錄旗標和/或相關聯文件標志旗標;以及
至少部分基于所述寫入來更新所述全局記錄元數據或所述全局文件標志元數據。
5.如條款4或5所述的計算機實施的方法,其還包括:
至少同步地持續所述數據到所述數據塊組;以及
異步地持續所述全局記錄元數據或全局文件標志元數據。
6.如條款4或5所述的計算機實施的方法,其中寫入所述數據到所述數據位置還包括更新用于數據塊組元數據的至少一個記錄旗標和大小值。
7.一種用于管理虛擬磁帶的計算機實施的方法,其包括:
在用可執行指令配置的一個或多個計算機系統的控制下,
接收初始化虛擬磁帶的請求;以及
初始化來自存儲服務的邏輯數據容器用于用作所述虛擬磁帶的存儲,包括存儲包括識別所述邏輯數據容器中的記錄位置的全局記錄元數據和識別所述邏輯數據容器中的文件標志位置的全局文件標志元數據的磁帶標頭。
8.如條款7或8所述的計算機實施的方法,其還包括初始化所述磁帶標頭中的全局產生識別符。
9.如條款7或8所述的計算機實施的方法,其還包括:
接收將數據寫入到所述虛擬磁帶的請求;以及
構建一個或多個數據塊組以存儲所述數據,存儲所述數據的每一數據塊組包括匹配所述全局產生識別符的數據塊產生識別符;用于所述數據塊組中的每一數據塊的一個或多個數據塊和數據塊元數據,包括用于識別記錄的開始數據塊的記錄旗標、用于識別記錄組的開始的文件標志旗標以及識別記錄的長度的記錄大小條目。
10.如條款9所述的計算機實施的方法,其還包括:
接收擦除磁帶邏輯數據容器的請求;以及
修改所述全局產生識別符,使得其不再匹配所述邏輯數據容器中的一個或多個數據塊產生識別符。
11.如條款9或10所述的計算機實施的方法,其還包括至少部分基于最后訪問的數據塊來更新當前磁帶標頭位置。
12.如條款9到11中任一條款所述的計算機實施的方法,其還包括:
將表示所述一個或多個數據塊組的全局宏塊元數據條目載入到存儲器中,所述宏塊包括所述邏輯數據容器中的鄰近數據塊組集合;
寫入到所述磁帶標頭中的日志以識別所述全局宏塊元數據;
將所述數據中的至少一些寫入到所述宏塊中的一個或多個數據塊;
至少部分基于所述寫入來更新所述一個或多個數據塊組中的至少部分中的數據塊元數據;
至少部分基于所述寫入來更新全局文件標志元數據和全局記錄元數據;以及
同步地持續所述數據塊組的改變。
13.如條款12所述的計算機實施的方法,其還包括:
將第二宏塊元數據條目載入到存儲器中;
寫入到所述磁帶標頭中的日志以識別存儲器中的所述第二宏塊元數據條目;以及
響應于所述第二宏塊元數據條目的載入來持續所述全局文件標志元數據和記錄元數據的改變。
14.一種用于提供虛擬磁帶的計算機系統,其包括:
一個或多個計算資源,其具有包括可執行指令的一個或多個處理 器和存儲器,所述可執行指令在被所述一個或多個處理器執行時促使所述一個或多個處理器至少實施虛擬磁帶,所述虛擬磁帶包括:
存儲服務的存儲邏輯數據容器,其根據請求供應存儲邏輯數據容器,所述存儲邏輯數據容器包括:
磁帶標頭,其包括:
日志,其識別載入到存儲器中的所述存儲邏輯數據容器內的當前數據塊;
全局記錄旗標集合,其識別記錄的開始位置;
全局文件標志旗標集合,其識別一組記錄的開始位置;
一個或多個數據塊組,其包括:
包括數據的數據塊集合;以及
數據標頭,其包括:
數據組元數據條目集合,其對應于數據塊組中的數據塊集合,所述數據組元數據條目集合的每一數據組元數據條目包括文件標志旗標、記錄旗標和記錄大小。
15.如條款14所述的計算機系統,其中所述存儲邏輯數據容器是對象存儲邏輯數據容器。
16.如條款14或15所述的計算機系統,其中所述磁帶標頭還包括識別所述最后訪問的記錄的磁帶標頭位置。
17.如條款14到16中任一條款所述的計算機系統,其中所述全局記錄旗標集合還包括:
記錄元數據段集合,所述記錄元數據段集合的每一記錄元數據段 表示數據塊的宏塊,所述記錄元數據段集合的每一記錄元數據段包括:
宏塊記錄標頭,其包括當所述宏塊含有有效信息和誤差校正信息時匹配所述全局產生識別符的記錄產生識別符;以及
與宏塊中的所述數據塊相關聯的所述全局記錄旗標集合的子集。
18.如條款14到17中任一條款所述的計算機系統,其中可動態地調整所述邏輯數據容器的大小多達所述全局記錄旗標所表示的大小。
19.如條款18所述的計算機系統,其還包括至少通過以下操作來動態地調整所述邏輯數據容器的大小:
將所述全局元數據段放置在數據存儲容器的末尾處;
通過附加存儲到所述存儲容器來增加所述數據存儲容器的存儲容量;以及
將所述全局元數據段復制到所述附加存儲的末尾處。
20.如條款14所述的計算機系統,其還包括元數據存儲器,所述元數據存儲器使所述邏輯數據容器與虛擬磁帶識別符相關聯。
21.一個或多個計算機可讀存儲介質,在其上共同地存儲可執行指令,所述可執行指令在被計算機系統的一個或多個處理器執行時促使所述計算機系統至少進行以下操作:
確定表示虛擬磁帶的數據結構的邏輯數據容器已發生邏輯數據容器誤差事件;
從磁帶標頭檢索識別一個或多個宏塊的全局元數據的日志信息,每一宏塊包括數據塊組集合;以及
使用與每一識別宏塊的每一數據元數據條目中的數據塊相關聯的記錄旗標和文件標志旗標來恢復所述全局記錄旗標和全局文件標志旗標。
22.如條款21所述的計算機可讀存儲介質,其中恢復所述全局記錄旗標還包括:
訪問來自所述一個或多個宏塊的每一數據塊組,數據塊組包括:
包括所存檔的數據的數據塊集合;以及
數據標頭,其包括:
數據產生識別符,所述數據段的數據產生識別符匹配用于有效數據段的所述全局產生識別符;以及
數據塊組元數據條目集合,其對應于相關聯數據塊組中的所述數據塊集合中的每一數據塊,所述數據組元數據條目集合的每一數據組元數據條目包括文件標志旗標、記錄旗標和記錄大小;
使用所述數據塊組元數據條目來恢復所述全局記錄旗標和全局文件標志旗標。
23.如條款22所述的計算機可讀存儲介質,其中所述指令還包括在被執行時促使所述計算機系統至少進行以下操作的指令:
通過以下操作來掃描來自所述一個或多個宏塊的每一宏塊:
針對來自所述一個或多個宏塊的每一數據塊組:
檢索用于來自所述一個或多個宏塊的每一數據塊組的所述數據標頭中的誤差校正信息;以及
將所述誤差校正信息施加到所述數據塊組。
24.如條款21到23中任一條款所述的計算機可讀存儲介質,其中所述指令還包括在被執行時促使所述計算機系統至少使得所述邏輯數據容器能夠使用的指令。
25.如條款21到24中任一條款所述的計算機可讀存儲介質,其中所述誤差事件是電力停機。
大多數實施方案利用本領域技術人員將熟悉的至少一個網絡來用于使用多種可市售的協議中的任一者來支持通信,例如傳輸控制協議/因特網協議(“TCP/IP”)、開放系統互連(“OSI”)、文件傳送協議(“FTP”)、通用即插即用(“UpnP”)、網絡文件系統(“NFS”)、通用因特網文件系統(“CIFS”)和AppleTalk。網絡例如可為局域網、廣域網、虛擬專用網、因特網、內聯網、外聯網、公共交換電話網、紅外網絡、無線網絡以及上述網絡的任何組合。
在利用網絡服務器的實施方案中,網絡服務器可以運行各種服務器或中間層級應用程序中的任何一個,所述服務器包括超文本傳送協議(“HTTP”)服務器、FTP服務器、通用網關接口(“CGI”)服務器、數據服務器、Java服務器和業務應用程序服務器。所述服務器還能夠響應來自用戶裝置的請求而執行程序或腳本,如通過執行一個或多個可以實施為一個或多個以任何編程語言(如C、C#或C++)或任何腳本語言(如Perl、Python或TCL)及其組合撰寫的腳本或程序的網絡應用程序。服務器還可包括數據庫服務器,其包括但不限于可商購自和的數據庫服務器。
環境可包括如上文所論述的各種數據存儲器以及其它存儲器和存儲介質。這些介質可駐留在各種位置,如在一個或多個計算機本地(和/或駐留在一個或多個計算機中)的存儲介質上,或遠離網絡上的計算機中的任何一個或所有計算機。在特定實施方案集合中,信息可駐留于在本領域技術人員熟悉的存儲區域網(“SAN”)中。類似地,用于執行屬于計算機、服務器或其它網絡裝置的功能的任何必要文件可以 適當地本地和/或遠程地存儲。在系統包括計算機化裝置的情況下,每種此類裝置可以包括可經由總線進行電耦合的硬件元件,所述元件包括,例如,至少一個中央處理單元(“CPU”)、至少一個輸入裝置(例如,鼠標、鍵盤、控制器、觸摸屏或小鍵盤)和至少一個輸出裝置(例如,顯示裝置、打印機或揚聲器)。此類系統也可以包括一個或多個存儲裝置,如磁盤驅動器、光學存儲設備和固態存儲設備,如隨機存取存儲器(“RAM”)或只讀存儲器(“ROM”),以及可移動介質裝置、存儲卡、閃存卡等。
此類裝置還可包括計算機可讀存儲介質讀取器、通信裝置(例如調制解調器、網絡卡(無線或有線)、紅外線通信裝置等)和工作存儲器,如上文所論述的。計算機可讀存儲介質讀取器可與計算機可讀存儲介質連接或被配置來接收計算機可讀存儲介質,從而表示遠程、本地、固定和/或可移動存儲裝置以及用于臨時和/或更永久地含有、存儲、傳輸和檢索計算機可讀信息的存儲介質。系統和各種設備通常也將包括位于至少一個工作存儲器裝置內的多個軟件應用程序、模塊、服務或其它元件,其包括操作系統和應用程序,如客戶端應用程序或網絡瀏覽器。應了解,替代性實施方案相比上文所描述的實施方案可具有眾多變化。舉例來說,也可使用定制硬件,和/或特定元件可以在硬件、軟件(包括可移植的軟件,如小程序)或兩者中實現。此外,可以采用與如網絡輸入/輸出裝置的其它計算裝置的連接。
含有代碼或部分代碼的存儲介質和計算機可讀介質可包括本領域已知或已使用的任何適合介質,包括存儲介質和通信介質,如(但不限于)用于存儲和/或傳輸信息(如計算機可讀指令、數據結構、程序模塊或其它數據)的任何方法或技術中所實施的易失性和非易失性、可移動和不可移動介質,包括RAM、ROM、電可擦除可編程只讀存儲器(“EEPROM”)、快閃存儲器或其它存儲器技術、緊密光盤只讀存儲器(“CD-ROM”)、數字通用光盤(DVD)或其它光學存儲器、磁盒、磁帶、磁盤存儲器或其它磁性存儲裝置,或可用于存儲所要信息且可供系統裝置訪問的任何其它介質。基于本文所提供的公開和教義,本 技術領域普通技術人員將了解實現各個實施方案的其它方式和/或方法。
因此,應在說明性意義而不是限制性意義上理解說明書和附圖。然而,將顯而易見的是:在不脫離如在權利要求中闡述的本發明的更寬廣精神和范圍的情況下,可以對其做出各種修改和改變。
其它變體是在本公開的精神之內。因此,雖然所公開的技術易受各種修改和替代構造的影響,但在附圖中示出且在上文詳細描述其特定說明的實施方案。然而,應理解,并不意圖將本發明限于具體形式或所公開的形式,但相反,意圖涵蓋屬于本發明的精神和范圍內的所有修改、替代構造和等效物,如隨附權利要求書中所限定。
在描述所公開實施方案的上下文中(尤其是在隨附權利要求的上下文中),術語“一(a,an)”和“所述(the)”以及類似的提及的使用意圖解釋為涵蓋單數和復數兩者,除非在本文另外地指示或明顯地與上下文矛盾。術語“包含(comprising)”、“具有(having)”、“包括(including)”和“含有(containing)”意圖解釋為開放式的術語(即,意味著“包括但不限于”)除非另外地指出。術語“連接(connected)”意圖解釋為部分地或全部地含在以下解釋內:附接到或接合在一起,即使存在介入物。除非本文另外指明,否則本文中值范圍的列舉僅僅意圖用作個別地表示屬于所述范圍的各單獨值的速記方法,并且猶如本文分別描述過地那樣將各單獨值并入到說明書中。可按任何適合的順序來執行本文所述的全部方法,除非本文另外指明或上下文明顯矛盾。本文所提供的任何以及全部實例或示例性語言(例如,“如”)的使用僅意圖更好地說明本發明的實施方案并且除非另外要求,否則不會對本發明的范圍施加限制。說明書中的語言不應解釋為表明任何未要求保護的要素對實施本發明必不可少。
本文中描述了本發明的優選實施方案,其包括為發明者所知用來執行本發明的最佳模式。閱讀上述說明后那些優選的實施方案的變體 對于本領域的普通技術人員可以變得顯而易見。發明者希望技術人員適當地采用此類變體,并且發明者意圖以其它方式而不是如本文所特別描述的來實施本發明。因此,本發明包括在隨附的適用法律允許的權利要求中敘述的主題的所有修改和等效物。此外,除非本文另有指示或與上下文明顯矛盾,否則在所有可行變體中的上述元素的任何組合都涵蓋在本發明內。
本文所引用的所有參考文件,包括公開案、專利申請和專利,據此按照相同的程度以引用方式并入本文中,如同每個參考文件都單個地和特別地表示為以引用方式并入到本文中并且其全部內容都進行了陳述。

關于本文
本文標題:虛擬磁帶庫系統.pdf
鏈接地址:http://www.wwszu.club/p-6369536.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
鬼佬大哥大