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