遠程存儲的制作方法
【專利說明】
【背景技術】
[0001]文件系統可以用來把數據組織成可以使用計算機的操作系統來存儲、操作和檢索的計算機文件實體,即目錄和文件。例如,各種版本的FAT(文件分配表)和NTFS(新技術文件系統)ext(擴展文件系統)與示例操作系統一起使用。文件系統使指定文件的數據與存儲裝置中的位置相關。存儲裝置可以包含遠程、物理存儲設備(諸如像硬盤驅動器、固態存儲裝置、磁帶存儲裝置和CD-ROM)和/或在這樣的物理存儲設備上面分層的虛擬化存儲裝置。
[0002]虛擬磁帶庫(VTL)例如經由互聯網小型計算機系統接口(iSCSI)或光纖通道(FC)被連接到客戶端計算機系統。隨著壓縮技術的到來,可能會出現容納在VTL上的存儲數據量的大幅增加。
【附圖說明】
[0003]為了更完整地理解,現在結合附圖對接下來的描述進行參考,在所述附圖中:
圖1是示例計算機系統的簡化示意圖;
圖2是圖1的示例的示例客戶端計算機系統的簡化示意圖;
圖3是圖1的示例的示例控制器的簡化示意圖;
圖4是圖1的示例的示例存儲設施的簡化示意圖;
圖5是消費者目錄樹結構的示例;
圖6是控制消費者數據的遠程存儲的方法的示例的流程圖;
圖7是提供遠程文件系統的消費者目錄的方法的示例的流程圖;
圖8是創建根目錄的示例的流程圖;
圖9是創建目錄對象的示例的流程圖;
圖10是更詳細地提供圖7的遠程文件系統的消費者目錄的示例的流程圖;
圖11是在消費者目錄樹結構內移動對象的示例的流程圖;以及圖12是為對象設置父目錄的示例的流程圖。
【具體實施方式】
[0004]參照圖1,多個客戶端計算機系統IlOj至110_11經由網絡130與至少一個控制器120_1至120_m通信。所述網絡130例如包含以太網(諸如,千兆位以太網LAN(局域網))或其他類型的網絡。所述至少一個控制器120_1至120_m包括各自的大容量儲存裝置140j至140_m或與其通信。
[0005]圖2至圖4是客戶端計算機系統110、控制器120和大容量存儲裝置140的功能表示。客戶端計算機系統110包括包含諸如CPU(中央處理單元)的處理器或處理器的組合的處理器資源201,以及存儲器202,該存儲器202例如包含諸如DRAM的易失性存儲器、和/或諸如EEPROM的非易失性存儲器、和/或以任何方便的形式和物理布置的任何方便的替代類型的存儲器/存儲裝置。客戶端計算機系統110進一步包含操作系統203,以執行客戶端計算機系統110上的各種消費者應用程序。客戶端計算機系統110還包括用戶接口 205,例如顯示監視器、鍵盤、鼠標、觸摸屏等。
[0006]在客戶端計算機系統110中還包括網絡接口207,用于通過網絡130通信。網絡接口207例如可以包含適于網絡的適配器,例如NI C(網絡接口控制器)。
[0007]客戶端計算機系統110進一步包含被執行以提供消費者數據的備份副本的備份應用程序209、用于將要備份的消費者數據劃分成塊并且為每個塊確定哈希函數以用于在消費者數據的備份副本被傳送到大容量存儲裝置140上的備份存儲設施之前處理消費者數據用于去重復的去重復引擎211。
[0008]客戶端計算機系統110進一步包含文件系統215,用于把消費者數據組織成目錄樹結構中的文件實體(或對象),例如像圖5中所示。例如,目錄樹結構包含含有第一、第二和第三低級目錄503、505、507或與之相關聯的頂級(根)目錄501。第一低級目錄503含有第一、第二和第三葉子目錄509、511、513或與之相關聯。每個葉子目錄509、511、513可以含有文件或與之相關聯。
[0009]文件系統215包括用于生成元數據的元數據生成器213,所述元數據包括樹結構的對象的信息,該信息包括對象的類型及其與樹結構內的其他對象的相對關系。例如,元數據可以包含用于每個對象的唯一通用標識符(UUID),并且如果該對象具有父對象,則用于該對象的元數據也包括父UUID。例如,在圖5所示的示例中,根目錄501具有空的父UUID和UUID,從而將對象標識為根目錄。第一低級目錄503具有其自己的UUID和根目錄501的父UUID0
[0010]控制器120如圖3所示包含處理器資源301、存儲器303和操作系統305,以執行包括比較每個塊的哈希函數以從消費者數據中移除重復塊并繼續傳送以用于存儲去重復數據的控制系統的通用功能和服務。控制器120還包括網絡接口 307(例如,NIC)、多個對象存儲器309_1至309_k以及連接到各自的大容量存儲裝置140_1至140_m的對應接口 401以物理存儲去重復消費者數據的接口 311。大容量存儲裝置140包括諸如硬盤驅動器、和/或固態存儲裝置、和/或磁帶之類的物理存儲裝置,并且在一些示例中包括諸如RAID控制器的虛擬化實體403、405以提供虛擬存儲卷。所采用的接口 311、401的類型可以根據大容量存儲裝置140是與控制器120—起被包括在物理外殼中,還是直接外部附連,還是通過存儲網絡或LAN附連而適當地改變。
[0011]現在將參考圖5至圖10更詳細地描述系統的操作。客戶端計算機系統110的備份應用程序209被啟動并且存儲在存儲器202中的消費者數據被檢索用于經由網絡130和控制器120在遠離客戶端計算機系統110的位置拷貝到大容量存儲裝置140內的備份設施。對消費者數據去重復,601。這一過程通過將消費者數據流劃分成多個塊由去重復引擎211啟動。為每個塊確定抗碰撞哈希函數。通過處理器301將所述哈希函數與已經被大容量存儲裝置140存儲的數據的哈希函數相比較。處理器301訪問數據塊位置的列表或清單或先前去重復的數據塊的存儲器。已經被存儲的塊用到先前存儲的塊的指針來代替。客戶端計算機系統的去重復引擎211(在將數據劃分成塊并應用哈希函數過程中)減少了對控制器的處理器資源301的需求。另外,在替代布置中,僅需要把新的塊從客戶端計算機系統傳送到控制器。
[0012]然后,元數據生成器213基于消費者目錄樹結構創建元數據,603。這是通過用于每個對象的對象UUID和父UUID(唯一通用標識符)的概念來實現的。這些UUID可以被存儲在用于每個對象的當前對象存儲模式的“標簽”區域313中。盡管這一示例利用對象存儲模式,但是可以認識到的是,可以利用不同的唯一存儲模式。
[0013]對象的UUID還可以被設置為對象的密鑰,而不是增量數據。伴隨存儲在對象存儲器中的具有“父”的對象的增量概念,具有空的父UUID的“根”對象的概念被提供。這提供了一個點來啟動導航對象之間的關系,并且因此促進文件系統類型映射。
[0014]伴隨每個對象自己的UUID和父UUID,附加的狀態可以按照允許指定對象類型的對象被存儲在對象存儲器中。這樣的“類型”信息的存儲旨在允許客戶端鏈接等。因此,對象存儲器對象的使用僅僅作為存儲關于呈現(在最有可能的情況下例如文件系統)的元數據的手段;使用這樣的對象容易被用于提供目錄(容器對象)、特殊文件(符號鏈接)等的呈現。
[0015]然后,去重復的數據(或要被進一步處理用于去重復的數據)和元數據通過網絡130被傳送605到控制器120。所述元數據被存儲在對象存儲器309_1至309_k其中之一的標簽區域313中。去重復的數據位于并被存儲在大容量存儲裝置140上。
[0016]結果,在客戶端計算機系統上執行數據的某種處理用于去重復以減少對控制器的處理器資源的需求。此外,用于從客戶端計算機系統傳送數據的帶寬不會被冗余數據的傳送所浪費,所述冗余數據當它到達控制器120時,它已經發現被存儲,因為消費者數據可以在傳送之前去重復(由于控制器120可以僅傳送非重復的塊)。重復的塊的更新計數被增加,以使得沒有未引用的塊。這一更新被傳送到控制器。
[0017]然后,可以使用存儲在對象存儲器中的元數據由客戶端計算機系統110從控制器130檢索樹結構,701,并且經由用戶接口 205呈現給用戶,703。
[0018]參考圖8,創建801根目錄(或根容器對象),例如圖5的根目錄501。創建UUID并輸入到對象存儲器中,803 ο如果存儲器是可訪問的,805,則確定UUID是否存在,807。如果UUID存在,則發出對應的響應,809。如果UUID不存在,則使用空的父UUID創建根目錄對象,811,并且如果根目錄對象被成功標記,則發出對應的響應,813。如果存儲器是不可訪問的或者對象未被成功標記,則發出失敗響應,815。
[0019]設置對象0(諸如,文件實體)具有父UUID( 1201)在圖12中示出。把父容器UUID和對象UUID對象O輸入到對象存儲器中,1203。如果存儲器是不可訪問的,1205,并且對象不存在,120