提供稀疏快照的系統(tǒng)、方法和計算機程序產(chǎn)品的制作方法
【專利摘要】一種在基于計算機的存儲系統(tǒng)中執(zhí)行的方法包括:在第一時間點創(chuàng)建活動文件系統(tǒng)的拷貝,其中所述活動文件系統(tǒng)包括用戶數(shù)據(jù)、描述所述活動文件系統(tǒng)的結(jié)構(gòu)和所述用戶數(shù)據(jù)的元數(shù)據(jù)以及描述所述用戶數(shù)據(jù)和所述元數(shù)據(jù)的存儲位置的第一數(shù)據(jù)結(jié)構(gòu),其中創(chuàng)建所述活動文件系統(tǒng)的拷貝包括從所述拷貝中選擇性地省略所述用戶數(shù)據(jù)的部分和所述元數(shù)據(jù)的部分。
【專利說明】提供稀疏快照的系統(tǒng)、方法和計算機程序產(chǎn)品
【技術領域】
[0001]本說明書總體上涉及計算機數(shù)據(jù)存儲系統(tǒng),并且更具體地涉及用于在計算機數(shù)據(jù)存儲系統(tǒng)中提供快照的技術。
【背景技術】
[0002]在提供數(shù)據(jù)存儲和檢索服務的計算機數(shù)據(jù)存儲系統(tǒng)中,寫時拷貝文件系統(tǒng)的示例是可從NetApp,Inc獲得的任意位置寫入文件布局(WAFL?)文件系統(tǒng)。該數(shù)據(jù)存儲系統(tǒng)可以實現(xiàn)功能上組織系統(tǒng)的網(wǎng)絡和數(shù)據(jù)訪問服務的存儲操作系統(tǒng),以及實現(xiàn)組織正在存儲和檢索的數(shù)據(jù)的文件系統(tǒng)。與在位寫入文件系統(tǒng)相比,寫時拷貝文件系統(tǒng)將新數(shù)據(jù)寫入新位置中的新塊,在原位留下數(shù)據(jù)的舊版本(至少在一段時間內(nèi))。以這種方式,寫時拷貝文件系統(tǒng)具有內(nèi)置的數(shù)據(jù)版本的概念,并且舊版本的數(shù)據(jù)可以很方便地保存。
[0003]數(shù)據(jù)存儲系統(tǒng)中附加的概念包括數(shù)據(jù)復制。一種類型的數(shù)據(jù)復制是數(shù)據(jù)鏡像,其中數(shù)據(jù)拷貝到另一物理(目的地)地點并持續(xù)更新,使得隨著數(shù)據(jù)在初始(源)系統(tǒng)上改變,目的地地點具有該數(shù)據(jù)的最新拷貝,或接近最新的拷貝。另一概念是數(shù)據(jù)備份,其中數(shù)據(jù)的舊版本被定期存儲。無論數(shù)據(jù)是否被鏡像或備份,復制的數(shù)據(jù)可以用于從源處的數(shù)據(jù)丟失恢復。用戶僅僅訪問所保存的最近的數(shù)據(jù),而不是從頭開始。
[0004]在一些系統(tǒng)中,快照是數(shù)據(jù)復制中的關鍵特征。簡言之,快照表示文件系統(tǒng)在特定時間點(以下稱為一致性點)的狀態(tài)。由于活動文件系統(tǒng)(例如,積極響應于數(shù)據(jù)訪問的客戶端請求的文件系統(tǒng))被修改,其偏離了最近的快照。在下一個一致性點,活動文件系統(tǒng)被拷貝,并且成為最近的快照。按照需要,隨后的快照可以被無限地創(chuàng)建,這導致越來越多的舊快照被保存到系統(tǒng)中。
[0005]現(xiàn)實世界的數(shù)據(jù)存儲系統(tǒng)受到可用空間的限制,雖然一些數(shù)據(jù)存儲系統(tǒng)可以具有比其他更多的空間。最終,數(shù)據(jù)存儲系統(tǒng)會開始達到其容量的限制并且會做出決定隨后保存哪些和刪除哪些。例如,實現(xiàn)稱為WAFL?的寫時拷貝系統(tǒng)的數(shù)據(jù)存儲系統(tǒng)包括快照自動刪除特征,用以在存儲空間不足時刪除舊的快照。然而,有時,自動刪除特征會刪除后續(xù)的讀或?qū)懖僮魉枰臄?shù)據(jù)。因此,在某些情況下更好的是創(chuàng)建較小的快照,從而節(jié)省存儲空間,而不是依賴于自動刪除特征。
【專利附圖】
【附圖說明】
[0006]結(jié)合附圖閱讀以下詳細說明將最好地理解本公開。
[0007]圖1是其中可以實現(xiàn)各種實施例的示例性網(wǎng)絡存儲系統(tǒng)的圖示。
[0008]圖2是根據(jù)一個實施例調(diào)整的示例性活動文件系統(tǒng)和示例性快照工具的圖示。
[0009]圖3是根據(jù)一個實施例調(diào)整的示例性數(shù)據(jù)復制過程的圖示。
[0010]圖4是根據(jù)一個實施例的使用稀疏快照來復制數(shù)據(jù)的示例性過程的圖示。
【發(fā)明內(nèi)容】
[0011]各種實施例包括創(chuàng)建稀疏快照的系統(tǒng)、方法及計算機程序產(chǎn)品。在一個示例中,方法創(chuàng)建省略對于特定目的不需要的數(shù)據(jù)的快照。一些實施例省略對于比較和發(fā)送操作不相關的舊用戶數(shù)據(jù)。并且,一些實施例根據(jù)快照是否用于物理復制操作或者邏輯復制操作而省略元數(shù)據(jù)的各種項。稀疏快照使用比傳統(tǒng)快照更少的系統(tǒng)上的存儲空間,從而產(chǎn)生存儲效率并且減少由于空間要求而不期望地刪除快照的機會。
[0012]本公開的一個更寬泛形式涉及一種在基于計算機的存儲系統(tǒng)中執(zhí)行的方法,包括:在第一時間點創(chuàng)建活動文件系統(tǒng)的拷貝,其中所述活動文件系統(tǒng)包括用戶數(shù)據(jù)、描述所述活動文件系統(tǒng)的結(jié)構(gòu)和所述用戶數(shù)據(jù)的元數(shù)據(jù)以及描述所述用戶數(shù)據(jù)和所述元數(shù)據(jù)的存儲位置的第一數(shù)據(jù)結(jié)構(gòu),其中創(chuàng)建所述活動文件系統(tǒng)的拷貝包括從所述拷貝中選擇性地省略所述用戶數(shù)據(jù)的部分和所述元數(shù)據(jù)的部分。
[0013]本公開的另一更寬泛的形式涉及一種基于網(wǎng)絡的存儲系統(tǒng),包括存儲器和至少一個處理器,其中所述處理器配置為訪問來自所述存儲器的指令并且執(zhí)行以下操作:創(chuàng)建活動文件系統(tǒng)的拷貝,所述拷貝至少包括在所述活動文件系統(tǒng)中的元數(shù)據(jù)的部分和在所述活動文件系統(tǒng)中的用戶數(shù)據(jù)的部分,其中創(chuàng)建所述活動文件系統(tǒng)的拷貝包括:基于所述用戶數(shù)據(jù)的塊中的用戶數(shù)據(jù)的類型和所述元數(shù)據(jù)的塊中的元數(shù)據(jù)的類型,從所述拷貝中省略所述元數(shù)據(jù)的所述塊和所述用戶數(shù)據(jù)的所述塊;將所述拷貝與所述活動文件系統(tǒng)的先前快照比較以識別所述拷貝與所述快照之間的差異;以及將所述拷貝中對應于所述差異的部分發(fā)送至數(shù)據(jù)目的地。
[0014]本公開的另一更寬泛的形式涉及一種計算機程序產(chǎn)品,具有有形地記錄用于在基于計算機的存儲系統(tǒng)中執(zhí)行數(shù)據(jù)復制的計算機程序邏輯的計算機可讀介質(zhì),所述計算機程序產(chǎn)品包括:在一致性點開始用于活動文件系統(tǒng)的快照創(chuàng)建過程的代碼;辨別所述活動文件系統(tǒng)中的相應數(shù)據(jù)存儲塊中的數(shù)據(jù)類型的代碼;創(chuàng)建第一快照的代碼,所述第一快照響應于辨別所述數(shù)據(jù)類型而省略用戶數(shù)據(jù)的部分和元數(shù)據(jù)的部分;以及將所述第一快照與第二快照比較以識別新數(shù)據(jù)以發(fā)送至目的地的代碼。
[0015]本公開的另一更寬泛的形式涉及一種在基于計算機的存儲系統(tǒng)中執(zhí)行的方法,所述方法包括:在一致性點創(chuàng)建活動文件系統(tǒng)的快照,其中所述活動文件系統(tǒng)包括用戶數(shù)據(jù)、描述所述活動文件系統(tǒng)的結(jié)構(gòu)和所述用戶數(shù)據(jù)的元數(shù)據(jù)以及描述所述用戶數(shù)據(jù)和所述元數(shù)據(jù)的存儲位置的第一數(shù)據(jù)結(jié)構(gòu);在所述快照已經(jīng)創(chuàng)建之后,通過標記未使用的一個或多個存儲塊,從所述快照選擇性地刪除所述用戶數(shù)據(jù)的部分和所述元數(shù)據(jù)的部分。
【具體實施方式】
[0016]以下公開提供了許多不同的實施例或示例,用于實現(xiàn)本發(fā)明的不同特征。組件和布置的具體示例描述如下以簡化本公開。當然,這些僅僅是示例,并且不旨在進行限制。此夕卜,本公開可以在各種示例中重復附圖標記和/或字母。這種重復是為了簡化和清楚的目的,本身并不指示所討論的各種實施例和/或配置之間的關系。
[0017]應當理解,各種實施例可以以網(wǎng)絡附屬存儲(NAS)、存儲區(qū)域網(wǎng)絡(SAN)或任何其他網(wǎng)絡存儲配置來實現(xiàn)。另外,一些實施例可以使用單個物理或虛擬存儲驅(qū)動器或使用多個物理或虛擬存儲驅(qū)動器(例如,獨立磁盤的一個或多個冗余陣列(RAID))來實現(xiàn)。各種實施例并不由基于計算機的存儲系統(tǒng)的特定架構(gòu)限制。此外,以下示例涉及WAFL?文件系統(tǒng)所特有的一些項目,并且應當理解,本文中引入的概念不限于本W(wǎng)AFL?文件系統(tǒng),而是普遍適用于現(xiàn)在已知的或以后開發(fā)的各種在位拷貝文件系統(tǒng)。
[0018]本文公開的各種實施例提供快照,其選擇性地省略某些數(shù)據(jù),并在這個示例中稱為稀疏快照。各種實施例試圖最小化由用于數(shù)據(jù)復制的快照鎖定的空間的量。在許多數(shù)據(jù)復制過程中,基礎快照僅用于與當前文件系統(tǒng)狀態(tài)進行比較。在這樣的系統(tǒng)中,存在元數(shù)據(jù)的最小量,其由比較操作用于將基礎快照與當前文件系統(tǒng)狀態(tài)比較,以辨別活動文件系統(tǒng)中的特定塊應該被發(fā)送到目的地作為增量轉(zhuǎn)移的部分。另外,在許多情況下,該系統(tǒng)將不使用基礎快照的LO內(nèi)容(等級O數(shù)據(jù),其包括舊用戶數(shù)據(jù))以作出比較。
[0019]在認識到由快照保存的數(shù)據(jù)中的大部分未由數(shù)據(jù)復制過程使用的情況下,稀疏快照可以是提供在位拷貝文件功能的存儲操作系統(tǒng)中的有用工具。在許多情況下,稀疏快照類似于傳統(tǒng)的快照,不同之處在于它的塊的僅僅一個子集由摘要圖保護,下面將參照圖2解釋。摘要圖可由存儲對象來實現(xiàn),存儲對象稱為卷,其在邏輯上組織系統(tǒng)內(nèi)的數(shù)據(jù)并包括文件系統(tǒng)。受保護的塊的這一子集由該快照的創(chuàng)建者和該快照將要使用的目的來確定。
[0020]例如,采用來為卷克隆操作提供后備存儲的稀疏快照可僅僅保護卷的緩沖樹(buftree)(或“緩沖器樹”——文件系統(tǒng)中的每個索引節(jié)點(inode)由間接和LO的塊的“樹”構(gòu)成;該索引節(jié)點指向“η”間接塊;每個間接塊接著指向“m”間接塊,并最終間接塊指向LO塊;根植于該索引節(jié)點的塊的這個“樹”被稱為緩沖樹)、卷的高等級元數(shù)據(jù)(例如,在WAFLtm存儲系統(tǒng)中的索引節(jié)點塊)以及用于從所快照的卷中讀取的若干其他條元數(shù)據(jù)。卷中的其他塊未被保護并且可用于寫分配器和前端操作以進行覆蓋(overwrite)。
[0021]圖1是實現(xiàn)存儲操作系統(tǒng)(未示出)的示例性網(wǎng)絡存儲系統(tǒng)100的圖示,其中可以實施各種實施例。存儲服務器102通過網(wǎng)絡103耦合到持久存儲子系統(tǒng)104以及一組客戶端101。網(wǎng)絡103可包括,例如,局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、互聯(lián)網(wǎng)、光纖通道構(gòu)造,或這些互連的任意組合。每個客戶端101可以包括,例如,個人計算機(PC)、服務器計算機、工作站、手持式計算/通信裝置或平板,和/或類似物。圖1示出了三個客戶端lOla-c,但實施例的范圍可以包括任何適當數(shù)量的客戶端。
[0022]一些實施例中,一個或多個客戶端101可用作管理站。這樣的客戶端可包括管理應用軟件,其由網(wǎng)絡管理員用于配置存儲服務器102,以在持久存儲器104中提供存儲,并執(zhí)行與存儲網(wǎng)絡相關的其他管理功能,諸如日程安排備份、設置用戶訪問權(quán)限等。
[0023]存儲服務器102管理持久存儲子系統(tǒng)104中數(shù)據(jù)的存儲。存儲服務器102處理來自客戶端101的讀寫請求,其中請求被定向到存儲或者將存儲在持久存儲器子系統(tǒng)104中的數(shù)據(jù)。持久存儲子系統(tǒng)104并不限于任何特定的存儲技術,并且可以使用任何現(xiàn)在已知的或以后開發(fā)的存儲技術。例如,持久存儲子系統(tǒng)104具有多個非易失性大容量存儲設備(未示出),其可包括:傳統(tǒng)的磁盤或光盤或磁帶驅(qū)動器;非易失性固態(tài)存儲器,諸如閃速存儲器;或它們的任意組合。在一個特定示例中,持久存儲子系統(tǒng)104可以包括一個或多個RAID。
[0024]存儲服務器102可以根據(jù)任何適當?shù)膮f(xié)議或存儲環(huán)境配置允許數(shù)據(jù)訪問。在一個示例中,存儲服務器102向客戶端101提供文件級數(shù)據(jù)訪問服務,如通常在NAS環(huán)境執(zhí)行中的。在另一示例中,存儲服務器102提供塊級數(shù)據(jù)訪問服務,如通常在SAN環(huán)境中執(zhí)行的。在又一示例中,存儲服務器102向客戶端101提供文件級和塊級數(shù)據(jù)訪問服務。[0025]在一些示例中,存儲服務器102具有分布式架構(gòu)。例如,在一些實施例中,存儲服務器102可以被設計成物理上分開的網(wǎng)絡模塊(例如,“N-葉片(blade)”)和數(shù)據(jù)模塊(例如,“D-葉片”),其通過物理互連彼此通信。存儲操作系統(tǒng)運行在服務器102上并且提供創(chuàng)建快照的快照工具290,如下面更詳細地描述的。
[0026]系統(tǒng)100僅作為示例示出。其他類型的硬件和軟件配置可以適用于根據(jù)本文所描述的特征的用途。
[0027]圖2是由系統(tǒng)100的存儲操作系統(tǒng)實現(xiàn)并且根據(jù)一個實施例調(diào)整的示例性文件系統(tǒng)200和示例性快照工具290的圖示。在這個示例中,文件系統(tǒng)包括組織將被存儲和/或檢索的數(shù)據(jù)的方式,并且文件系統(tǒng)200是一個示例。存儲操作系統(tǒng)執(zhí)行存儲系統(tǒng)(例如,圖1的系統(tǒng)100)的操作以在文件系統(tǒng)200內(nèi)保存和/或檢索數(shù)據(jù)。在這個示例中,快照工具290包括由處理器執(zhí)行的應用程序以從文件系統(tǒng)200創(chuàng)建稀疏快照291。文件系統(tǒng)200包括到達最近一致性點的當前文件系統(tǒng)。在該示例實施例中,文件系統(tǒng)200包括在文件系統(tǒng)信息(fsinfo) 210-212、索引節(jié)點215-217、間接數(shù)據(jù)存儲塊(如下所述)和更低等級的數(shù)據(jù)存儲塊(也如下所述)的層級結(jié)構(gòu)中的活動文件系統(tǒng)(AFS)和快照SI和S2。
[0028]文件系統(tǒng)200的頂部等級是卷信息(vol info)205,在這個示例中,其被寫在位(例如,覆蓋到現(xiàn)有數(shù)據(jù)所在的位置),盡管事實上文件系統(tǒng)200是在位拷貝文件系統(tǒng)。卷信息205是緩沖器樹中的基礎節(jié)點,其具有到AFS的文件系統(tǒng)信息210的指針、到快照SI的文件系統(tǒng)信息211的指針以及到快照S2的文件系統(tǒng)信息212的指針。在下一個一致性點,AFS將成為快照,并且新的AFS將被創(chuàng)建為數(shù)據(jù)分歧。因此,SI表示緊接上一個一致性點的快照,S2表示之前的一致性點處的快照。隨著時間的推移,AFS將從快照SI分歧直到下一個一致性點。為了說明該分歧,索引節(jié)點文件251-257在相同的層級。索引節(jié)點文件253和254由AFS以及快照SI指向,并且因此由索引節(jié)點文件253和254描述的數(shù)據(jù)從上一個一致性點起還未改變。另一方面,索引節(jié)點文件251和252描述新的數(shù)據(jù),并且不通過快照SI指向。用于AFS的層級樹類似于用于快照S1、S2的樹(除了用于AFS的樹可能改變以外)。因此,下面的示例將集中于AFS,并且應當理解,快照S1、S2中類似的文件傳遞類似的信息。
[0029]在該示例中,卷信息205包括與卷有關的數(shù)據(jù),包括卷的尺寸、卷等級選項、語言
坐寸ο
[0030]文件系統(tǒng)信息210包括到索引節(jié)點文件215的指針。索引節(jié)點215包括具有關于Unix和其他文件系統(tǒng)中的文件的信息的數(shù)據(jù)結(jié)構(gòu)。每個文件具有索引節(jié)點并且由其所在的文件系統(tǒng)中的索引節(jié)點數(shù)(i_數(shù))標示。索引節(jié)點提供關于文件的重要信息,諸如用戶和組所有權(quán)、訪問模式(讀、寫、執(zhí)行許可)和類型。索引節(jié)點指向文件塊或其表示的文件的間接塊。索引節(jié)點文件215描述哪些塊由包括元文件的每個文件使用。索引節(jié)點文件215由文件系統(tǒng)信息塊210描述,其用作用于AFS的特殊根索引節(jié)點。文件系統(tǒng)信息210捕捉用于快照的狀態(tài),諸如文件系統(tǒng)中的文件和目錄的位置。
[0031]文件系統(tǒng)200分層級地布置,卷信息205在層級結(jié)構(gòu)的頂部層級,文件系統(tǒng)信息塊210-212在卷信息205正下方,以及索引節(jié)點文件215-217在文件系統(tǒng)信息塊210-212的下方。層級結(jié)構(gòu)包括在較低的等級的其他組件。在最低的等級,在本文中稱為L0,是數(shù)據(jù)塊235,其包括用戶數(shù)據(jù)以及一些低等級元數(shù)據(jù)。在索引節(jié)點文件215和數(shù)據(jù)塊235之間,可存在一個或多個等級的間接存儲塊230。因此,雖然圖2僅僅示出單個等級的間接存儲塊230,但應該理解,給定的實施例可以包括多于一個層級的間接存儲塊,其借助于指針通往數(shù)據(jù)塊235。
[0032]AFS還包括活動圖226。在這個示例中,活動圖226是包括與活動文件系統(tǒng)的塊的空缺相關聯(lián)的位圖的文件。換句話說,活動圖226表示數(shù)據(jù)存儲塊中的哪些由AFS使用(或未使用)。例如,活動圖226中的特定位置可以對應于數(shù)據(jù)存儲塊,并且該位置中的I或O可以指示數(shù)據(jù)存儲塊是否由AFS使用。
[0033]數(shù)據(jù)存儲塊包括持久存儲104上的特定分配區(qū)域。在一個特定示例中,分配區(qū)域可以是扇區(qū)的集合,例如8個扇區(qū)或4096個字節(jié),通常稱為硬盤上的4-KB,盡管實施例的范圍并不限于此。文件塊包括數(shù)據(jù)的標準大小的塊,包括在文件中的數(shù)據(jù)的一些或全部。在該示例實施例中,文件塊的大小與數(shù)據(jù)存儲塊的相同?;顒訄D226提供數(shù)據(jù)存儲塊中的哪些由AFS的文件塊使用的指示。
[0034]附加地,AFS包括塊類型圖228。塊類型圖228提供關于數(shù)據(jù)存儲塊中的數(shù)據(jù)的類型的指示。
[0035]文件系統(tǒng)200還包括先前的快照SI和S2。然而,如上面所解釋的,快照非常類似于AFS。事實上,快照具有其自己的文件系統(tǒng)信息文件(例如,文件211、212)和位圖(未示出),其曾經(jīng)是活動圖,但現(xiàn)在被稱為快照圖(snapmap)。因此,快照圖是包括與快照的塊的空缺相關聯(lián)的位圖的文件。在由活動文件系統(tǒng)使用的塊在每個一致性點處改變時,活動圖226隨著時間的推移從快照圖分歧。
[0036]摘要圖227是通過將包容OR (IOR)操作應用于各種快照圖的位圖而導出的位圖。摘要圖227提供關于由任意先前的快照SI和S2使用(或未使用)的數(shù)據(jù)存儲塊的摘要。
[0037]在新的數(shù)據(jù)以NV日志存儲在存儲器(未示出)中時,活動圖226表示文件系統(tǒng)200的當前狀態(tài)。在下一個一致性點,雖然,AFS將保存為在持久存儲器104 (圖1)中的快照,并且由新的活動文件系統(tǒng)替代。
[0038]在新的一致性點,是新的并以NV日志存儲在存儲器中的數(shù)據(jù)由寫分配器過程(由存儲操作系統(tǒng)提供的過程,未示出)存儲在持久存儲104中的新的位置。當創(chuàng)建快照作為這一新的一致性點的部分時,快照工具290將當前AFS的文件系統(tǒng)信息215保存在卷信息205中的陣列中,從而創(chuàng)建快照拷貝??煺展ぞ?90隨后在新的活動文件系統(tǒng)中更新新的摘要圖,以包括由新創(chuàng)建的快照的快照圖(又名活動圖226)分配的塊。此外,快照工具290改變被保存新的數(shù)據(jù)影響的任何指針和/或增加新的指針,以適當反映文件系統(tǒng)200在這一最近的一致性點的狀態(tài)。
[0039]新的文件系統(tǒng)信息塊(未示出)隨后被創(chuàng)建,并且從卷信息205到文件系統(tǒng)信息210的指針被至新的文件系統(tǒng)信息塊的指針替代。曾經(jīng)是AFS的現(xiàn)在是快照291,由新的活動文件系統(tǒng)(未示出)替代。該過程根據(jù)需要重復以創(chuàng)建后續(xù)快照。
[0040]在傳統(tǒng)的快照創(chuàng)建過程中,先前的快照S1、S2涉及較舊版本的一些數(shù)據(jù)。摘要圖228標記數(shù)據(jù)塊,該數(shù)據(jù)塊具有“使用中”的舊數(shù)據(jù),使得數(shù)據(jù)的舊版本被保護。描述舊數(shù)據(jù)的元數(shù)據(jù)也被保護。因此,當創(chuàng)建數(shù)據(jù)的新版本時,該系統(tǒng)的總的存儲成本增加。
[0041]然而,在許多情況下,保持所有舊數(shù)據(jù)不是必要的。例如,一些過程創(chuàng)建快照并不用于長期的版本儲存,而是用于提供與先前版本進行比較,使得差異可以被計算并傳送到數(shù)據(jù)目的地(例如,用于數(shù)據(jù)鏡像)。因此,目前描述的實施例在快照工具290中提供使快照291成為稀疏快照的功能。例如,快照工具290可以被配置為去除盡可能多的用戶數(shù)據(jù)和元數(shù)據(jù),僅僅留下足以執(zhí)行所期望的功能的最小量的數(shù)據(jù)或元數(shù)據(jù)。
[0042]通過遍歷塊類型圖228,快照工具290在構(gòu)建快照291的過程中選擇性地從快照291中忽略數(shù)據(jù)和元數(shù)據(jù)。在這個示例中,假設人用戶或運行的應用程序引導快照工具290以去除特定類型的數(shù)據(jù)。在這個目標下,快照工具290遍歷塊類型圖228,并在塊類型圖228指示不需要的數(shù)據(jù)被存儲的情況下,快照工具290標記摘要圖227,以指示這些數(shù)據(jù)塊未使用??煺展ぞ?90可以不直接擦除數(shù)據(jù),而是文件系統(tǒng)的后續(xù)操作將最終覆蓋所指示的數(shù)據(jù)存儲塊中的那些不需要的文件塊。因此,不需要的數(shù)據(jù)不在快照中“捕獲”。
[0043]從快照省略的數(shù)據(jù)的量和類型取決于創(chuàng)建快照的目的。例如,在物理復制中,其中在目的地創(chuàng)建卷的塊到塊拷貝,復制應用程序可使用較少的元數(shù)據(jù)。因此,稀疏快照可以省略相對大量的元數(shù)據(jù)以及舊的用戶數(shù)據(jù)。在邏輯復制系統(tǒng)中,復制應用程序可使用更多的元數(shù)據(jù),以便其可以在目的地重新創(chuàng)建邏輯相似(雖然物理上不同的)的存儲器結(jié)構(gòu)。在這樣的示例中,快照工具290可以創(chuàng)建稀疏快照,其省略了舊用戶數(shù)據(jù)并且省略一些元數(shù)據(jù),但是可能省略比以上物理復制示例中更少的元數(shù)據(jù)。
[0044]表1提供了包括在一些稀疏快照中的數(shù)據(jù)的示例,其中“是”表示特定數(shù)據(jù)被包括,空白表示該數(shù)據(jù)未被包括。表1被劃分成邏輯復制列和物理復制列。塊等級列表示圖2的層級結(jié)構(gòu)中數(shù)據(jù)或元數(shù)據(jù)所處的位置——數(shù)字O指的是L0。
[0045]表1
[0046]
【權(quán)利要求】
1.一種在基于計算機的存儲系統(tǒng)中執(zhí)行的方法,所述方法包括: 在第一時間點創(chuàng)建活動文件系統(tǒng)的拷貝,其中所述活動文件系統(tǒng)包括用戶數(shù)據(jù)、描述所述活動文件系統(tǒng)的結(jié)構(gòu)和所述用戶數(shù)據(jù)的元數(shù)據(jù)以及描述所述用戶數(shù)據(jù)和所述元數(shù)據(jù)的存儲位置的第一數(shù)據(jù)結(jié)構(gòu), 其中創(chuàng)建所述活動文件系統(tǒng)的拷貝包括從所述拷貝中選擇性地省略所述用戶數(shù)據(jù)的部分和所述元數(shù)據(jù)的部分。
2.根據(jù)權(quán)利要求1所述的方法,其中選擇性地省略包括: 遍歷第二數(shù)據(jù)結(jié)構(gòu),所述第二數(shù)據(jù)結(jié)構(gòu)針對所述存儲位置中的每一個描述存儲在相應存儲位置中的數(shù)據(jù)的類型;以及 基于在所述第一數(shù)據(jù)結(jié)構(gòu)中未使用的存儲位置中的一些存儲位置中的每一個中存儲的數(shù)據(jù)類型,標記所述存儲位置中的所述一些存儲位置。
3.根據(jù)權(quán)利要求1所述的方法,其中所述第一數(shù)據(jù)結(jié)構(gòu)包括位圖,其中所述位圖中的每一個位表示所述存儲位置之一。
4.根據(jù)權(quán)利要求3所述的方法,其中選擇性地省略包括: 設定對應于所述用戶數(shù)據(jù)的所述部分和所述元數(shù)據(jù)的所述部分的所述位中的一些位,指示相應的存儲位置未被保護。
5.根據(jù)權(quán)利要求1所述的方法,其中選擇性地省略包括: 將所述文件系統(tǒng)的所述拷貝與基礎快照比較,以辨別它們之間的差異;以及 將對應于所述差異的數(shù)據(jù)發(fā)送至復制目的地。
6.根據(jù)權(quán)利要求1所述的方法,其中選擇性地省略包括: 省略所述元數(shù)據(jù)的部分,以僅僅留下足以將所述拷貝與基礎快照比較并且辨別用于數(shù)據(jù)復制操作的新數(shù)據(jù)的最小量的所述元數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的方法,其中所述數(shù)據(jù)復制操作包括物理復制,并且其中從所述拷貝省略的所述元數(shù)據(jù)的所述部分包括目錄和索引節(jié)點數(shù)據(jù)。
8.根據(jù)權(quán)利要求6所述的方法,其中所述數(shù)據(jù)復制包括邏輯復制,并且其中從所述拷貝省略的所述元數(shù)據(jù)的所述部分包括用于舊用戶數(shù)據(jù)的流和訪問數(shù)據(jù)。
9.根據(jù)權(quán)利要求1所述的方法,還包括: 防止所述拷貝的未受保護的區(qū)域暴露于一個或多個客戶端,以防止訪問錯誤,同時允許對所述拷貝的未受保護的區(qū)域的訪問。
10.一種基于網(wǎng)絡的存儲系統(tǒng),包括存儲器和至少一個處理器,其中所述處理器配置為訪問來自所述存儲器的指令并且執(zhí)行以下操作: 創(chuàng)建活動文件系統(tǒng)的拷貝,所述拷貝至少包括在所述活動文件系統(tǒng)中的元數(shù)據(jù)的部分和在所述活動文件系統(tǒng)中的用戶數(shù)據(jù)的部分,其中創(chuàng)建所述活動文件系統(tǒng)的拷貝包括:基于所述用戶數(shù)據(jù)的塊中的用戶數(shù)據(jù)的類型和所述元數(shù)據(jù)的塊中的元數(shù)據(jù)的類型,從所述拷貝中省略所述元數(shù)據(jù)的所述塊和所述用戶數(shù)據(jù)的所述塊; 將所述拷貝與所述活動文件系統(tǒng)的先前快照比較以識別所述拷貝與所述快照之間的差異;以及 將所述拷貝中對應于所述差異的部分發(fā)送至數(shù)據(jù)目的地。
11.根據(jù)權(quán)利要求10所述的基于網(wǎng)絡的存儲系統(tǒng),其中所述一個或多個處理器還執(zhí)行: 讀取數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)包括對于所述塊中的用戶數(shù)據(jù)和元數(shù)據(jù)的類型信息。
12.根據(jù)權(quán)利要求10所述的基于網(wǎng)絡的存儲系統(tǒng),其中所述活動文件系統(tǒng)包括修改的用戶數(shù)據(jù)以及描述所述修改的用戶數(shù)據(jù)的元數(shù)據(jù),并且其中所述修改的用戶數(shù)據(jù)在創(chuàng)建所述快照之后已經(jīng)被修改,并且其中描述所述修改的用戶數(shù)據(jù)的所述元數(shù)據(jù)的至少一部分包括在所述拷貝中。
13.根據(jù)權(quán)利要求10所述的基于網(wǎng)絡的存儲系統(tǒng),其中所述數(shù)據(jù)復制包括邏輯復制,并且其中從所述拷貝省略的所述元數(shù)據(jù)的所述塊包括用于舊用戶數(shù)據(jù)的流和訪問數(shù)據(jù)。
14.根據(jù)權(quán)利要求10所述的基于網(wǎng)絡的存儲系統(tǒng),其中所述數(shù)據(jù)復制包括物理復制,并且其中從所述拷貝省略的所述元數(shù)據(jù)的所述塊包括目錄和索引節(jié)點數(shù)據(jù)。
15.一種計算機程序產(chǎn)品,具有有形地記錄用于在基于計算機的存儲系統(tǒng)中執(zhí)行數(shù)據(jù)復制的計算機程序邏輯的計算機可讀介質(zhì),所述計算機程序產(chǎn)品包括: 在一致性點開始對于活動文件系統(tǒng)的快照創(chuàng)建過程的代碼; 辨別所述活動文件系統(tǒng)中的相應數(shù)據(jù)存儲塊中的數(shù)據(jù)類型的代碼; 創(chuàng)建第一快照的代碼,所述第一快照響應于辨別所述數(shù)據(jù)類型而省略用戶數(shù)據(jù)的部分和元數(shù)據(jù)的部分;以及 將所述第一快照與第二快照比較以識別新數(shù)據(jù)以發(fā)送至目的地的代碼。
16.根據(jù)權(quán)利要求15所述的計算機程序產(chǎn)品,還包括: 將所述新數(shù)據(jù)發(fā)送至所述目的地的代碼。
17.根據(jù)權(quán)利要求15所述的計算機程序產(chǎn)品,其中創(chuàng)建所述第一快照的代碼包括: 標記未受保護的用戶數(shù)據(jù)的部分和元數(shù)據(jù)的部分的代碼。
18.根據(jù)權(quán)利要求15所述的計算機程序產(chǎn)品,其中創(chuàng)建所述第一快照的代碼包括: 從所述第一快照省略舊用戶數(shù)據(jù)的代碼。
19.根據(jù)權(quán)利要求15所述的計算機程序產(chǎn)品,其中創(chuàng)建所述第一快照的代碼包括: 省略目錄和索引節(jié)點數(shù)據(jù)的代碼,從而促進所述目的地處的物理數(shù)據(jù)復制。
20.根據(jù)權(quán)利要求15所述的計算機程序產(chǎn)品,其中創(chuàng)建所述第一快照的代碼包括: 省略舊用戶數(shù)據(jù)并且包括用于重新創(chuàng)建所述活動文件系統(tǒng)的指針的數(shù)據(jù)的代碼,從而促進所述目的地處的邏輯數(shù)據(jù)復制。
21.一種在基于計算機的存儲系統(tǒng)中執(zhí)行的方法,所述方法包括: 在一致性點創(chuàng)建活動文件系統(tǒng)的快照,其中所述活動文件系統(tǒng)包括用戶數(shù)據(jù)、描述所述活動文件系統(tǒng)的結(jié)構(gòu)和所述用戶數(shù)據(jù)的元數(shù)據(jù)以及描述所述用戶數(shù)據(jù)和所述元數(shù)據(jù)的存儲位置的第一數(shù)據(jù)結(jié)構(gòu); 在所述快照已經(jīng)被創(chuàng)建之后,通過標記未使用的一個或多個存儲塊,從所述快照選擇性地刪除所述用戶數(shù)據(jù)的部分和所述元數(shù)據(jù)的部分。
【文檔編號】G06F7/00GK103999034SQ201280048347
【公開日】2014年8月20日 申請日期:2012年12月20日 優(yōu)先權(quán)日:2011年12月20日
【發(fā)明者】A·拉奧, A·薩布拉馬尼安 申請人:Netapp股份有限公司