午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

使用主要部分依存列表來維持文件系統(tǒng)中一致點的系統(tǒng)和方法

文檔序號:6495273閱讀:223來源:國知局
使用主要部分依存列表來維持文件系統(tǒng)中一致點的系統(tǒng)和方法
【專利摘要】根據(jù)一個實施方式,接收獲得儲存在存儲系統(tǒng)的文件系統(tǒng)中數(shù)據(jù)的一致點的請求,該存儲系統(tǒng)具有多個存儲單元。響應(yīng)于所述請求,從儲存在所述存儲單元的第一存儲單元中的第一主要部分分段中檢索主要部分依存列表,其中所述主要部分依存列表包括標(biāo)識儲存在所述存儲單元的第二存儲單元中的至少第二主要部分分段的信息。所述第一主要部分分段和所述第二主要部分分段共同形成表示所述文件系統(tǒng)的一致視圖的主要部分。查明在所述主要部分依存列表中列出的所述主要部分分段中的每個主要部分分段以試圖確定所述數(shù)據(jù)的一致點。
【專利說明】使用主要部分依存列表來維持文件系統(tǒng)中一致點的系統(tǒng)和方法
[0001]相關(guān)申請
[0002]本申請與共同在審的2011年3月31日提交的、名稱為“維持文件系統(tǒng)中一致點的系統(tǒng)和方法”的美國專利申請N0.13/077,795相關(guān),并與共同在審的2011年3月31日提交的、名稱為“校驗文件系統(tǒng)中一致點的系統(tǒng)和方法”的美國專利申請N0.13/077,784相關(guān),這些申請的全部以引用的方式結(jié)合于此。
【技術(shù)領(lǐng)域】
[0003]本發(fā)明的實施方式大體上涉及存儲系統(tǒng)的文件系統(tǒng)。更具體地,本發(fā)明的實施方式及使用主要部分(prime)依存列表(dependency list)維持文件系統(tǒng)的一致點(consistent point)。
【背景技術(shù)】
[0004]由日益增加的數(shù)據(jù)增長和新的類似基于磁盤的備份的工作量的出現(xiàn)的驅(qū)動,具有對涉及和建立大的文件系統(tǒng)的強烈要求。擴展文件系統(tǒng)容量是一個難題,尤其是對于去復(fù)制(de-duplicated)的系統(tǒng),這是因為他們的大容量內(nèi)存和中央處理單元(CPU)的處理需求。為了解決擴展的問題,文件系統(tǒng)被劃分為多個部分的分區(qū)體系結(jié)構(gòu)已經(jīng)被提出。分區(qū)文件系統(tǒng)引起了呈現(xiàn)數(shù)據(jù)的一致視圖的問題。
[0005]在構(gòu)成文件系統(tǒng)的傳統(tǒng)記錄中使用的方法包含通過沖洗所有臟數(shù)據(jù)(dirty data)并接著附加專用令牌(token)以標(biāo)記記錄報頭來周期性地牽涉檢查點(check-pointing)的文件系統(tǒng)。專用令牌于此指的是主要部分分段或重要部分(prime)。主要部分分段標(biāo)記了文件系統(tǒng)的一致視圖(consistent view)。在系統(tǒng)崩潰或重啟的情況下,文件系統(tǒng)可以被恢復(fù)為由主要部分分段標(biāo)記的狀態(tài)?!耙恢滦渣c”為給出數(shù)據(jù)的有效視圖的文件系統(tǒng)狀態(tài)。可能具有一致性的多種定義;在本申請的全文中,被稱作“引用一致性”,這里的“引用一致性”意為文件系統(tǒng)根(root)不應(yīng)具有懸空引用(dangling reference)。也就是,通過根所指向的任何數(shù)據(jù)或元數(shù)據(jù)應(yīng)當(dāng)是可用的。
[0006]在多分區(qū)的文件系統(tǒng)的情況下,一種可能的方式是將主要部分分段寫入所有分區(qū)以標(biāo)記穿過該分區(qū)的一致視圖。然而,該方式可能在分區(qū)不對稱時不是合適的。例如,如果一些分區(qū)是只讀的或在那時是不可用的,那么主要部分分段不可能被寫入那些分區(qū)并不可能從那些分區(qū)中讀取。此外,每次在新的主要部分分段被寫入時,可能花費更長的時間來將此類主要部分分段寫入每個存儲單元,并且需要更多的存儲空間隨著時間將主要部分分段存儲在每個存儲單元中。并且,在存儲系統(tǒng)啟動時,存儲在每個存儲單元中的每個主要部分分段必須被校驗。結(jié)果是,每個存儲單元不得不被上電并被初始化,這會消耗相對長的時間。
【專利附圖】

【附圖說明】[0007]本發(fā)明的實施方式通過示例的方式示出并不限于附圖的圖示,在附圖中相同的引用指示相似的元件。
[0008]圖1是示出了根據(jù)本發(fā)明的一個實施方式的存儲系統(tǒng)的方框圖。
[0009]圖2是示出了根據(jù)本發(fā)明的一個實施方式的分段存儲引擎的方框圖。
[0010]圖3A和圖3B是示出了根據(jù)本發(fā)明的一個實施方式的存儲系統(tǒng)中主要部分分段寫入地圖(write-map)的使用的方框圖。
[0011]圖4是示出了根據(jù)本發(fā)明的一個實施方式的維持文件系統(tǒng)的一致點的方法的流程圖。
[0012]圖5是示出了根據(jù)本發(fā)明的另一實施方式的維持文件系統(tǒng)的一致點的方法的流程圖。
[0013]圖6A至圖6C是示出了根據(jù)本發(fā)明的一個實施方式的維持存儲系統(tǒng)的一致點的系統(tǒng)的框圖。
[0014]圖7是示出了根據(jù)本發(fā)明的一個實施方式的使用主要部分依存列表維持文件系統(tǒng)的一致點的方法的流程圖。
[0015]圖8是示出了根據(jù)本發(fā)明的另一實施方式的使用主要部分依存列表維持文件系統(tǒng)的一致點的方法的流程圖。
[0016]圖9是示出了根據(jù)本發(fā)明的另一實施方式的存儲系統(tǒng)的分段存儲引擎的框圖。
[0017]圖10是示出了根據(jù)本發(fā)明的一個實施方式的校驗存儲系統(tǒng)的可安裝的主要部分分段的機制的框圖。
[0018]圖11是示出了根據(jù)本發(fā)明的一個實施方式的校驗存儲系統(tǒng)的主要部分分段的方法的流程圖。
[0019]圖12是示出了根據(jù)本發(fā)明的另一實施方式的校驗存儲系統(tǒng)的主要部分分段的方法的流程圖。
[0020]圖13是示出了可以與本發(fā)明的實施方式一起使用的數(shù)據(jù)存儲系統(tǒng)的示例的框圖。
[0021]圖14是可以與本發(fā)明的一個實施方式一起使用的數(shù)據(jù)處理系統(tǒng)的框圖。
【具體實施方式】
[0022]以下將參照所討論的細(xì)節(jié)描述本發(fā)明的各種實施方式和方面,并且附圖將示出各種實施方式。以下說明和附圖為本發(fā)明的闡述并且不被解釋為限制本發(fā)明。描述了許多特定細(xì)節(jié)是為了提供對本發(fā)明各種實施方式的全面理解。然而,在某些實例中,為了提供本發(fā)明實施方式的簡要論述,已知的或慣用的細(xì)節(jié)并未進(jìn)行描述。
[0023]在說明書中引用“一個實施方式”或“實施方式”意指結(jié)合實施方式描述的特定特性、結(jié)構(gòu)或特點可以包括在本發(fā)明的至少一個實施方式中。在說明書的各個位置出現(xiàn)的短語“在一個實施方式中”并不是均涉及相同的實施方式。
[0024]根據(jù)一些實施方式,新的主要部分分段可以不必被寫入每個存儲單元中。并且,新的主要部分分段可以被寫入所影響的存儲單元中的一些存儲單元。例如,在具有源存儲單元(active storage unit)、目標(biāo)存儲單元和一個或多個密封的歸檔存儲單元的去復(fù)制存儲系統(tǒng)中,新的主要部分分段可以被寫入源存儲單元和/或目標(biāo)存儲單元,這是在不是必須將新的主要部分分段寫入剩余的歸檔存儲單元的情況下的。在一個實施方式中,主要部分分段寫入地圖(PSWM)被維持以包含指示下一個主要部分分段被寫入存儲系統(tǒng)的哪個存儲單元的信息。也就是,作為將新的主要部分分段寫入每個存儲單元的替代,新的主要部分分段僅被寫入至PSWM中指定的一個或多個存儲單元。
[0025]在正常操作期間,外部的用戶數(shù)據(jù)(如,新的用戶數(shù)據(jù))通常被寫入源存儲單元。在數(shù)據(jù)從源存儲單元(如,第一存儲單元)被遷移(如,歸檔)到目標(biāo)存儲單元(如,第二存儲單元)的數(shù)據(jù)遷移過程期間,數(shù)據(jù)被寫入源存儲單元和目標(biāo)存儲單元中。為了捕獲源存儲單元(如,第一文件分區(qū))與目標(biāo)存儲單元(如,第二文件分區(qū))之間的數(shù)據(jù)的內(nèi)部依存,相關(guān)聯(lián)的主要部分分段必須被寫入源存儲單元和目標(biāo)存儲單元二者中。根據(jù)一個實施方式,在開始數(shù)據(jù)遷移之前,PSWM被修改以包括標(biāo)識至少源存儲單元和目標(biāo)存儲單元的存儲單元標(biāo)識符(ID),以使得相應(yīng)的主要部分分段被寫入源存儲單元和目標(biāo)存儲單元二者。在數(shù)據(jù)遷移之后,PSWM再次被修改以僅包括源存儲單元的存儲單元ID,以使得隨后的主要部分分段將被寫入源存儲單元。
[0026]此外,根據(jù)一個實施方式,主要部分由一個或多個主要部分分段表示,每個主要部分分段被存儲在存儲系統(tǒng)的存儲單元中的一個存儲單元中。主要部分分段中的每個主要部分分段由主要部分分段ID進(jìn)行標(biāo)識,該主要部分分段ID在相應(yīng)的存儲單元中唯一地標(biāo)識主要部分分段。在一個實施方式中,每當(dāng)新的主要部分產(chǎn)生時,主要部分分段ID由連續(xù)增加的序列號表示。整個文件系統(tǒng)的主要部分可以由一個或多個主要部分分段進(jìn)行解釋,該一個或多個主要部分在他們之間具有依存關(guān)系。在一個實施方式中,主要部分依存列表被維持在至少一個存儲單元(如,源存儲單元)中,其中主要部分依存列表包括標(biāo)識一起共同表示相應(yīng)的主要部分的一個或多個主要部分分段的信息(如,主要部分分段ID)。主要部分依存列表進(jìn)一步包括標(biāo)識與主要部分分段相關(guān)聯(lián)的存儲單元的存儲單元ID。結(jié)果,不同于傳統(tǒng)的多節(jié)點存儲系統(tǒng),主要部分分段并非一直需要從每個存儲單元被讀取。并且,一個存儲單元能夠輕松地處理主要部分依存列表以識別所有必要的主要部分分段以確定可安裝的主要部分,這可以被反過來用于建立文件系統(tǒng)的一致點??砂惭b的主要部分分段表示最近文件系統(tǒng)一致點。
[0027]此外,根據(jù)一個實施方式,最近已知的已校驗的可安裝主要部分被緩存在存儲系統(tǒng)的存儲單元中的至少一個存儲單元(如,源存儲單元)中。隨后,在存在需要校驗最近的主要部分是否為可安裝的情況下,最近的主要部分的依存列表與最后校驗的主要部分的依存列表相比較。僅以前還未校驗的主要部分分段需要校驗。也就是,如果最近主要部分的依存列表中的主要部分分段存在于最后校驗的主要部分的依存列表中,那么該主要部分分段不需要被校驗。僅那些不存在于最后校驗的主要部分的依存列表中的主要部分分段需要被校驗。結(jié)果,校驗過程可以以較快的方式被執(zhí)行并且未包括的存儲單元可以不被上電。
[0028]圖1是示出了根據(jù)本發(fā)明一個實施方式的存儲系統(tǒng)的方框圖。參照圖1,系統(tǒng)100包括但不限于一個或多個客戶端系統(tǒng)101-102,客戶端系統(tǒng)通過網(wǎng)絡(luò)103通信耦合至存儲系統(tǒng)104??蛻舳?01-102可以為任何類型的客戶端,諸如服務(wù)器、個人計算機(如,臺式機、筆記本電腦和手寫板)、“瘦”客戶端、個人數(shù)字助理(PDA)、Web使能應(yīng)用、游戲設(shè)備、媒體播放器或移動電話(如,智能電話)等。網(wǎng)絡(luò)103可以為任何類型的有線和/或無線的網(wǎng)絡(luò),諸如局域網(wǎng)(LAN)、諸如互聯(lián)網(wǎng)的廣域網(wǎng)(WAN)、企業(yè)內(nèi)聯(lián)網(wǎng)、城域網(wǎng)(MAN)、存儲區(qū)域網(wǎng)(SAN)、總線,或者他們的組合。
[0029]存儲系統(tǒng)104可以包括任何類型的服務(wù)器或服務(wù)器集群。例如,存儲系統(tǒng)104可以為出于任意的各種不同目的的存儲服務(wù)器,諸如用于為多個用戶提供對共享數(shù)據(jù)和/或備份任務(wù)關(guān)鍵數(shù)據(jù)(mission critical data)的訪問。存儲系統(tǒng)104例如可以為文件服務(wù)器(如,用于提供NAS能力的設(shè)備)、基于塊的存儲服務(wù)器(如,用于提供SAN能力)、統(tǒng)一的存儲設(shè)備(如,結(jié)合NAS和SAN能力的設(shè)備)、近線存儲設(shè)備、直接連接存儲(DAS)設(shè)備、磁帶備份設(shè)備,或基本上任何其他類型的數(shù)據(jù)存儲設(shè)備。存儲系統(tǒng)104可以具有分布式體系結(jié)構(gòu),或者所有組件可以一體化在單個單元中。存儲系統(tǒng)104可以被實施為歸檔和/或備份系統(tǒng)
的一部分,諸如可從馬薩諸塞州霍普金頓的EMCk公司獲得的去復(fù)制存儲系統(tǒng)。
[0030]在一個實施方式中,存儲系統(tǒng)104交際性地包括但不限于系統(tǒng)接口 106、分段存儲引擎107、及一個或多個存儲單元108-109。存儲系統(tǒng)104的文件系統(tǒng)可以被分區(qū)成多個文件系統(tǒng)分區(qū),其中每個文件系統(tǒng)分區(qū)可以被存儲在存儲單元108-109中的一者中。存儲單元108-109可以經(jīng)由連接體120在本地(單個節(jié)點操作環(huán)境)或遠(yuǎn)程(如,多節(jié)點操作環(huán)境)實施,連接體120可以為總線或網(wǎng)絡(luò)。在一個實施方式中,在其他存儲單元起到目標(biāo)存儲單元的作用以周期性地根據(jù)歸檔策略或方案歸檔來自源存儲單元的數(shù)據(jù)的時候,存儲單元108-109中的一者起到源存儲的作用以接收并儲存外部或新的用戶數(shù)據(jù)。存儲單元108-109例如可以為常見的磁盤、諸如基于⑶-ROM或DVD的存儲的光盤、磁帶存儲、磁光(MO)存儲媒體、固態(tài)盤、基于閃存的設(shè)備,或任何其他類型的適于儲存大量數(shù)據(jù)的非易失性存儲設(shè)備。存儲單元108-109還可以為此類設(shè)備的結(jié)合。在磁盤存儲媒體的情況下,存儲單元108-109可以組織成一卷或多卷廉價磁盤冗余陣列(RAID)。
[0031]響應(yīng)于數(shù)據(jù)文件將被儲存在存儲單元108-109中,分段存儲引擎107被配置為根據(jù)各種分段策略或規(guī)則將數(shù)據(jù)文件分段成多個分段。分段存儲引擎107在之前分段未被儲存在存儲單元中的情況下僅將分段儲存在存儲單元中。在之前分段已經(jīng)被儲存的情況下,元數(shù)據(jù)將使用之前儲存的分段來儲存能夠重建文件的信息。如此,數(shù)據(jù)文件的分段以去復(fù)制的方式被儲存在存儲單元108-109的每個存儲單元內(nèi)或跨越存儲單元108-109中的至少一些存儲單元。此外,元數(shù)據(jù)110-111被添加至存儲單元108-109中的至少一些存儲單元,以使得文件可以獨立于另一存儲單元而被訪問。儲存在存儲單元中的數(shù)據(jù)可以以壓縮形式(如,無損壓縮:Huffman編碼、Lempel-Ziv Welch編碼;差分編碼:對分段加差值的引用;子分段:子分段列表或?qū)ψ臃侄蔚囊茫鹊?被儲存。在一個實施方式中,不同的存儲單元可以使用不同的壓縮(如,主要的或源存儲單元不同于其他存儲單元,一個存儲單元不同于另一存儲單兀,等)。
[0032]每個存儲單元的元數(shù)據(jù)包括足夠的信息以提供對其包含的文件的訪問。在源存儲單元失敗時,包含在另一存儲單元中的元數(shù)據(jù)可以被用于恢復(fù)源存儲單元。在一個存儲單元為不可用(如,存儲單元已經(jīng)失敗,或正在升級,等)時,系統(tǒng)維持直至提供對未存儲在失敗的存儲單元中的任何文件的訪問。在文件被刪除時,與系統(tǒng)中的文件相關(guān)聯(lián)的元數(shù)據(jù)被更新以反映出文件已經(jīng)被刪除。
[0033]在一個實施方式中,元數(shù)據(jù)信息包括文件名稱、存儲與文件名稱相關(guān)聯(lián)的分段的存儲單元、使用分段重構(gòu)用于文件的信息、以及任何其他合適的元數(shù)據(jù)信息。在一個實施方式中,元數(shù)據(jù)的副本被儲存在存儲單元中,以用于儲存在存儲單元的文件,以使得儲存在存儲單元上的文件可以僅使用儲存在存儲單元上的信息而被訪問。在一個實施方式中,在主要的元數(shù)據(jù)丟失、崩潰、損壞等的情況下元數(shù)據(jù)信息的主要部分集合可以通過使用與存儲系統(tǒng)相關(guān)聯(lián)的其他存儲單元的信息而被重構(gòu)??梢允褂么鎯υ谥饕拇鎯卧蚱渌鎯卧?如,復(fù)制品存儲單元)上的元數(shù)據(jù)信息來重構(gòu)用于存儲單元的元數(shù)據(jù)。元數(shù)據(jù)信息進(jìn)一步包括索引信息(如,用于存儲單元中的分段的位置信息)。在一個實施方式中,元數(shù)據(jù)包括主要部分分段信息,該主要部分分段信息可以用于在文件系統(tǒng)失敗的情況下提供文件系統(tǒng)的一致點和/或重構(gòu)文件系統(tǒng)。
[0034]在一個實施方式中,如圖1所示的存儲系統(tǒng)可以被用作存儲層次(storagehierarchy)中的一個存儲層(a tier of storage),該存儲層次包括其它存儲層。在該層次中的一個或多個存儲層可以利用不同種類的存儲設(shè)備和/或可以針對諸如隨機更新性能的不同特征而被優(yōu)化以?;跀?shù)據(jù)管理策略,文件周期性地在層次之間移動,以獲得符合文件的當(dāng)前存儲需求的成本效益。例如,文件可以首先被儲存在為讀取和寫入提供高性能的存儲層中。隨著文件成熟,文件可以根據(jù)本發(fā)明被移動至存儲層中。在各種實施方式中,層包括不同的存儲技術(shù)(如,磁帶、硬盤、基于半導(dǎo)體的內(nèi)存、光驅(qū)動,等)、不同的位置(如,本地計算機存儲、本地網(wǎng)絡(luò)存儲、遠(yuǎn)程網(wǎng)絡(luò)存儲、分布式存儲、云存儲、歸檔存儲、保管庫(vault)存儲,等),或者任何其他用于分層的數(shù)據(jù)存儲系統(tǒng)的合適的存儲。
[0035]回顧圖1,為了維持存儲系統(tǒng)104的文件系統(tǒng)的一致點,主要部分分段必須被維持在存儲系統(tǒng)104中。在其他事情中,主要部分包含對文件系統(tǒng)根的引用,該文件系統(tǒng)根被用于帶來文件系統(tǒng)并接入存儲在其中的文件。常用的系統(tǒng)通常將最新的主要部分分段儲存到存儲單元108-109中的每個存儲單元,這是耗費時間的并且需要更多的存儲空間。在一個實施方式中,分段存儲引擎107維持PSWM105,該PSWM105具有標(biāo)識下一個主要部分分段即將作為元數(shù)據(jù)110-111的一部分被寫入存儲單元108-109中哪個存儲單元的信息。也就是,作為將新的主要部分分段寫入每個存儲單元的替代,新的主要部分分段僅被寫入至PSWM105中指定的一個或多個存儲單元。
[0036]此外,根據(jù)一個實施方式,主要部分依存列表(未示出)被維持在存儲單元中的至少一個存儲單元中(如,源存儲單元的主要部分分段),其中主要部分依存列表包括標(biāo)識一個或多個主要部分分段的信息(如,主要部分分段ID),該一個或多個主要部分分段一起共同表示相應(yīng)的可安裝的主要部分。并且,根據(jù)一個實施方式,已經(jīng)被校驗的最近已知可安裝的主要部分被緩存在存儲系統(tǒng)的存儲單元的至少一個存儲單元(如,源存儲單元)中。隨后,在具有校驗最近的主要部分是否為可安裝的需求時,最近的主要部分依存列表中的主要部分分段與最后校驗的主要部分依存列表的主要部分分段對比。僅之前還未被校驗的主要部分分段需要校驗。
[0037]圖2是示出了根據(jù)本發(fā)明一個實施方式的分段存儲引擎的方框圖。應(yīng)當(dāng)注意的是,僅出于示出的目的,對于來自于之前的附圖或說明的具有相同或相似功能的某些組件的某些參考數(shù)字也可能保持相同。參照圖2,在一個實施方式中,分段存儲引擎107包括接口 202、分段器204、復(fù)制消除器206、文件系統(tǒng)控制208、名稱空間210和存儲單元接口 212。分段存儲引擎107經(jīng)由接口 202和名稱空間210接收一個或多個數(shù)據(jù)項。在操作的系統(tǒng)中,名稱空間的示例為目錄。目錄中的每個名稱唯一地標(biāo)識一個文件或子目錄,但是一個文件可以多次具有相同名稱。一個或多個數(shù)據(jù)項或文件由分段器204和文件系統(tǒng)控制208進(jìn)行處理。分段器204基于各種規(guī)則或考慮將一個或多個數(shù)據(jù)項分解(break)成分段。例如,一個或多個數(shù)據(jù)項可以通過使用基于內(nèi)容的技術(shù)(如,在函數(shù)等于一個值或在該值為最小值、最大值、或相對于針對數(shù)據(jù)項所計算的其他函數(shù)值的其他值時,函數(shù)在數(shù)據(jù)項的各種位置處被計算)、基于非內(nèi)容的技術(shù)(如,基于數(shù)據(jù)項屬性,例如,字節(jié)長度、標(biāo)題、創(chuàng)建日期)或者任何其他合適的技術(shù)來標(biāo)識分段邊界而被分解成分段。在一個實施方式中,分段被限制為每個數(shù)據(jù)項的分段的最小和/或最大長度、最小或最大數(shù)量、或者任何其他合適的限制。
[0038]在一個實施方式中,文件系統(tǒng)控制208處理信息以指示與數(shù)據(jù)項相關(guān)聯(lián)的一個或多個分段。在一些實施方式中,指紋列表被用于指示與數(shù)據(jù)項相關(guān)聯(lián)的一個或多個分段。文件系統(tǒng)控制208將分段相關(guān)信息傳遞至索引(未示出)。該索引被用于經(jīng)由存儲單元接口212來定位存儲單元中儲存的分段。復(fù)制消除器206,標(biāo)識最新接收的分段是否已經(jīng)被儲存在一個或多個存儲單元中。在分段已經(jīng)被儲存在一個或多個存儲單元中的情況下,對之前儲存的分段的引用被儲存,而不是儲存最新接收的分段。
[0039]接口 202被配置為接收檢索數(shù)據(jù)項的請求。接口 202通過名稱空間210與文件系統(tǒng)控制208進(jìn)行通信以標(biāo)識經(jīng)由存儲單元接口 212儲存在存儲單元中的合適的分段。文件控制系統(tǒng)208與索引(未示出)進(jìn)行通信以定位經(jīng)由存儲單元接口 212儲存在存儲單元中的合適的分段。合適的分段被用于建立請求的數(shù)據(jù)項。響應(yīng)于該請求,經(jīng)由接口 202提供該數(shù)據(jù)項。在一個實施方式中,文件系統(tǒng)控制208利用基于內(nèi)容的標(biāo)識符(如,指紋)樹以將文件與數(shù)據(jù)分段和他們在一個或多個存儲單元中的位置相關(guān)聯(lián)。在與給定文件或數(shù)據(jù)項相關(guān)聯(lián)的分段發(fā)生改變的情況下,基于內(nèi)容的標(biāo)識符將發(fā)生改變,并且該改變將有效地從與文件名稱(或目錄結(jié)構(gòu))相關(guān)聯(lián)的樹的底部延伸(ripple)至頂部,這是因為合適的基于內(nèi)容的標(biāo)識符易于使用樹結(jié)構(gòu)而被標(biāo)識。
[0040]根據(jù)一個實施方式,分段存儲引擎107包括歸檔器214,該歸檔器214被配置為將數(shù)據(jù)從源存儲單元歸檔至目標(biāo)存儲單元,并被配置成通過將合適的主要部分分段儲存至諸如存儲單元108-109的存儲單元來維持用于文件系統(tǒng)208的一致點。在一個實施方式中,在不是必須將相同的主要部分分段寫入剩余的存儲單元的情況下,PSWM216被用于指示下一個主要部分分段待被寫入存儲單元108-109的哪一個或多個存儲單元,這消耗了更多的時間并需要更多的存儲空間。PSWM216可以被實施為圖1的PSWM105的一部分。在正常操作期間,PSWM216包含指向源存儲單元的引用,因為用戶數(shù)據(jù)通常被寫入源存儲單元。隨后的主要部分分段將僅被寫入源存儲單元。在數(shù)據(jù)從源存儲單元遷移至目標(biāo)存儲單元期間,PSWM216包含指向源存儲單元和目標(biāo)存儲單元二者的引用,因為儲存在源存儲單元和目標(biāo)存儲單元二者中的數(shù)據(jù)具有依存關(guān)系。隨后的主要部分分段將被寫入源存儲單元和目標(biāo)存儲單元二者。應(yīng)當(dāng)注意的是如圖1至圖2所示的組件中的一些組件或所有組件可以以軟件、硬件或二者的組合的形式來實施。
[0041]圖3A和圖3B是示出了根據(jù)本發(fā)明一個實施方式的存儲系統(tǒng)中主要部分分段寫入地圖的使用的方框圖。例如,系統(tǒng)300可以被實施為圖1的存儲系統(tǒng)104的一部分。參照圖3A至圖3B,存儲單元301-303可以表示圖1的存儲單元108-109的至少一部分。存儲單元310-303可以在網(wǎng)絡(luò)上以單個計算節(jié)點或多個計算節(jié)點的形式實施。存儲單元301-303中的每個存儲單元由存儲單元ID進(jìn)行標(biāo)識,存儲單元ID唯一地標(biāo)識了相應(yīng)的存儲單元。存儲單元310-303中的每個存儲單元進(jìn)一步包含了元數(shù)據(jù),該元數(shù)據(jù)包括足夠的獨立地存儲于此的信息訪問數(shù)據(jù)。
[0042]在一個實施方式中,存儲單元301-303中的每個存儲單元可以儲存表示文件系統(tǒng)的一部分或分區(qū)的數(shù)據(jù),該文件系統(tǒng)已經(jīng)被劃分成多個分區(qū),其中文件系統(tǒng)分區(qū)共同地表示存儲系統(tǒng)300的單個邏輯文件系統(tǒng)(還被稱作文件系統(tǒng)分區(qū)的集合或文件系統(tǒng)集合)。儲存在文件系統(tǒng)分區(qū)的每個文件系統(tǒng)分區(qū)中的元數(shù)據(jù)包括足夠的信息使得分區(qū)為能夠自身可識別并且為可配置,從而每個文件系統(tǒng)分區(qū)可以在對整個文件系統(tǒng)集合的剩余部分的操作不具有重大影響的情況下而被單獨地啟動或移除。
[0043]根據(jù)一個實施方式,文件系統(tǒng)集合的每個FS分區(qū)包含元數(shù)據(jù),該元數(shù)據(jù)具有使相應(yīng)的分區(qū)能夠單獨地可標(biāo)識及配置的足夠的信息。一些信息特定于FS分區(qū),以及信息的一部分從屬于整個FS集合。在一個實施方式中,儲存在源分區(qū)和歸檔分區(qū)中的FS集合特定信息可以是不同的,而FS分區(qū)特定信息可以是相同或類似的。
[0044]在一個實施方式中,特定于FS分區(qū)的FS分區(qū)元數(shù)據(jù)包括但不限于以下中至少一些:分區(qū)的唯一名稱、分區(qū)的版本、分區(qū)的訪問狀態(tài)、相關(guān)聯(lián)的容器設(shè)置ID、分區(qū)通用唯一標(biāo)識符(UUID)、發(fā)起方UUID、非易失隨機存取存儲器(NVRAM) ID、分區(qū)執(zhí)行狀態(tài)及分區(qū)密封狀態(tài)。
[0045]FS分區(qū)的訪問狀態(tài)可以為ENABLED (激活)、DISABLED (失能)或PROBLEM (問題)中的一者。容器設(shè)置ID包括相關(guān)FS分區(qū)內(nèi)的容器設(shè)置的名稱,其中容器設(shè)置持有FS分區(qū)的所有數(shù)據(jù)。FS分區(qū)的分區(qū)UUID唯一地標(biāo)識了相應(yīng)的FS分區(qū)。發(fā)起方UUID唯一地表示了該分區(qū)的發(fā)起方并能夠出于復(fù)制的目的而被使用。NVRAM ID被用于標(biāo)識相關(guān)聯(lián)的NVRAM區(qū)域以用于相應(yīng)的分區(qū)。分區(qū)運行狀態(tài)包含指示分區(qū)的運行狀態(tài)的信息。分區(qū)運行狀態(tài)可以為以下狀態(tài)中的一個狀態(tài):初始化、恢復(fù)NVRAM、準(zhǔn)備好(如,已經(jīng)被安裝)、開啟、正在核對(如,離線工具正在訪問分區(qū))、已核對(如,離線工具已經(jīng)完成分區(qū)訪問)、未安裝的和被毀壞的。分區(qū)密封狀態(tài)指示相應(yīng)的分區(qū)是否已經(jīng)被密封。如果分區(qū)已經(jīng)被密封,那么沒有進(jìn)一步的寫入訪問能夠在分區(qū)上執(zhí)行。
[0046]在一個實施方式中,以上維持在每個歸檔分區(qū)中的信息能夠被用于唯一地獨立確定每個歸檔分區(qū)。如果分區(qū)是健康的,那么文件系統(tǒng)能夠促使分區(qū)在線。如果文件系統(tǒng)確定分區(qū)是不健康的,那么能夠標(biāo)記并保持該分區(qū)離線和/或?qū)⒎謪^(qū)置為問題狀態(tài)。如此,只要源分區(qū)是健康的,文件系統(tǒng)可以維持在線。一個或多個歸檔分區(qū)可能被損壞,但是文件系統(tǒng)維持可用。
[0047]此外,每個FS分區(qū)進(jìn)一步包括一些與整個文件系統(tǒng)集合相關(guān)的元數(shù)據(jù)。在一個實施方式中,此類元數(shù)據(jù)包括但不限于集合分區(qū)類型(如,源、目標(biāo)或歸檔)和集合ID,該集合ID唯一地標(biāo)識了集合,相應(yīng)的分區(qū)為該集合的成員。進(jìn)一步地,每個歸檔FS分區(qū)中的元數(shù)據(jù)還包括具有版本號、序列號、和校驗和的值的報頭以及分區(qū)表。分區(qū)表包括標(biāo)識了相關(guān)聯(lián)的分區(qū)為其成員的文件系統(tǒng)集合的集合ID、集合中分區(qū)的數(shù)量、文件系統(tǒng)集合中所有歸檔分區(qū)的UUID、以及表示文件系統(tǒng)集合的一致點的主要部分或主要部分分段。
[0048]在一個實施方式中,以上保持在源分區(qū)中的信息有助于識別集合(文件系統(tǒng))的所有不同分區(qū)。文件系統(tǒng)使用該信息來發(fā)現(xiàn)所有分區(qū)并試圖促使它們在線。然而,如果源分區(qū)崩潰了,那么集合信息是不可用的并且文件系統(tǒng)不能立即促使在線。該集合信息接著必須通過探測系統(tǒng)上可用的一些或所有歸檔分區(qū)以被收集。歸檔分區(qū)將其自身標(biāo)識為集合的一部分并且來自歸檔分區(qū)的該信息可以被用于重建源分區(qū)的集合信息。
[0049]在單個節(jié)點存儲配置中,根據(jù)一個實施方式,在不是必須分配額外內(nèi)存的情況下,通過將文件系統(tǒng)分區(qū)換入和換出內(nèi)存區(qū)域,文件系統(tǒng)分區(qū)可以共享存儲系統(tǒng)中系統(tǒng)內(nèi)存的內(nèi)存區(qū)域。進(jìn)一步地,文件系統(tǒng)可以根據(jù)數(shù)據(jù)文件的訪問模式被劃分。例如,數(shù)據(jù)文件可以基于數(shù)據(jù)文件的時間屬性(如,最后修改的時間屬性)而被分組成特定的文件系統(tǒng)分區(qū),以使得具有類似訪問模式的數(shù)據(jù)文件被儲存在相同的文件系統(tǒng)分區(qū)中。結(jié)果,資源利用的效率可能大大被改善。
[0050]在一個實施方式中,儲存在存儲單元310-302的每個存儲單元中的元數(shù)據(jù)包括足夠的信息以構(gòu)建至少相應(yīng)的文件系統(tǒng)分區(qū)的一致點。一個或多個文件系統(tǒng)分區(qū)的元數(shù)據(jù)可以被用于共同表示整個文件系統(tǒng)的一致點。
[0051]根據(jù)一個實施方式,周期性地,在所有數(shù)據(jù)已經(jīng)被注入(flush)到存儲單元之后,主要部分分段被寫入存儲單元以標(biāo)記文件系統(tǒng)的一致點或視圖。在文件系統(tǒng)發(fā)生故障或重啟時,最后的主要部分分段可以被用于還原文件系統(tǒng)的最后的狀態(tài)。在一個實施方式中,每個主要部分分段通過唯一地標(biāo)識相應(yīng)主要部分分段的主要部分分段ID而被標(biāo)識。主要部分分段ID可以在每次新的主要部分分段被寫入時以遞增的順序被確定。主要部分分段ID可以由在主要部分分段產(chǎn)生時的序列號來表示。
[0052]回顧圖3A,根據(jù)一個實施方式,系統(tǒng)300表示歸檔的存儲系統(tǒng)。在正常操作期間,外部的或新的用戶數(shù)據(jù)被寫入第一源存儲單元(如,源存儲單元),在該示例中,為存儲單元301。周期性地,儲存在源存儲單元中的數(shù)據(jù)被遷移至第二存儲單元,在該示例中,為存儲單元302,其還被稱作目標(biāo)存儲單元。在目標(biāo)存儲單元已經(jīng)被填充達(dá)到預(yù)定閾值時,該目標(biāo)存儲單元被密封。在密封之后,存儲單元變?yōu)橹蛔x。另一空的存儲單元接著可以被分配并被指定為新的目標(biāo)存儲單元以進(jìn)一步歸檔來自源存儲單元的數(shù)據(jù)。
[0053]數(shù)據(jù)遷移可以根據(jù)各種數(shù)據(jù)遷移策略而被執(zhí)行。根據(jù)一些實施方式,文件被儲存成一個或多個分段,其中分段在存儲系統(tǒng)中被去復(fù)制(如,僅一個副本被儲存以及被用于/可以被用于重構(gòu)多于一個的文件)(如,跨越系統(tǒng)一個存儲單元的去復(fù)制)。分段被儲存在主要存儲單元或源存儲單元(如,存儲單元301)中并且周期性地(如,每周)基于轉(zhuǎn)移協(xié)議(如,存儲單元超過容量限制、每小時分段的數(shù)量、在不活動時,等),或在存儲單元為滿的或滿足一個或多個條件(如,為80%滿、為低于20%活動、在最后一小時中已經(jīng)沒有訪問)時,屬于基于遷移策略(如,在預(yù)定時間周期沒有被修改或馮文的某文件類型的文件即將被遷移,等)而標(biāo)識的文件的分段被轉(zhuǎn)移至目標(biāo)存儲單元(如,存儲單元302)。
[0054]在目標(biāo)存儲單元被充滿時,元數(shù)據(jù)(如,主要部分集合304)被轉(zhuǎn)移至目標(biāo)存儲單元以使得目標(biāo)存儲單元具有訪問第二存儲單元(如,主要部分集合305-306)中的文件的所有必要信息。元數(shù)據(jù)使系統(tǒng)能夠重構(gòu)儲存在系統(tǒng)(如,在整個系統(tǒng)中、在存儲單元中,等)中的文件和/或?qū)Υ嬖谙到y(tǒng)中的文件與他們的文件名稱相關(guān)聯(lián)。這還允許系統(tǒng)掉電或降低存儲單元的功率以用于能量節(jié)約或者使存儲單元離線以升級存儲單元,或者使系統(tǒng)能夠容錯因此在任何給定存儲單元失敗的情況下系統(tǒng)可以運行。系統(tǒng)可以通過遞增地增加存儲單元而被擴展??梢允褂锰峁┮子谑褂媒涌诘膯蝹€名稱空間來訪問文件。在僅一個去復(fù)制引擎被用于多個存儲單元時硬件可以有效地被使用。
[0055]在一個實施方式中,文件通過獨立于該文件被儲存在其中的存儲單元的名稱而被標(biāo)識。在待存儲文件被接收時,名稱也被接收以與文件相關(guān)聯(lián)。在讀取文件的請求被接收時,名稱也被接收。系統(tǒng)查找與系統(tǒng)中文件相關(guān)聯(lián)的元數(shù)據(jù)以識別與接收到名稱相關(guān)聯(lián)的文件。然后查找與所識別文件相關(guān)聯(lián)的元數(shù)據(jù)以確定所識別文件被儲存的存儲單元。在一個實施方式中,與系統(tǒng)中的文件相關(guān)聯(lián)的元數(shù)據(jù)可以被維持在主要存儲單元或源存儲單元中??商鎿Q地,元數(shù)據(jù)可以被維持在每個存儲單元中,其中與元數(shù)據(jù)相關(guān)聯(lián)的文件被儲存在所述存儲單元中。此外,元數(shù)據(jù)可以以分布式和/或冗余的方式在許多存儲單元上被維持(如,用于容錯)。并且,元數(shù)據(jù)可以被維持在分隔的存儲單元或存儲單元中,或者任何其他合適的存儲位置。
[0056]在一些實施方式中,如果源存儲單元失敗,那么系統(tǒng)使用包含在其他附加存儲單元(如,之前的源存儲單元)中的元數(shù)據(jù)以對仍在系統(tǒng)中的文件提供訪問。在一個實施方式中,在存儲單元為不可用(如,存儲單元已經(jīng)失敗、正在升級,等)時,系統(tǒng)保持直至向未儲存在失敗的存儲單元中的任何文件提供訪問。
[0057]回顧圖3A和圖3B,根據(jù)一個實施方式,系統(tǒng)300維持PSWM216以包含指示下一個主要部分即將寫入存儲單元301-303中的哪個存儲單元的信息。在該示例中,在正常操作期間,在外部用戶數(shù)據(jù)正在被寫入存儲單元301時,PSWM216包含標(biāo)識存儲單元301的存儲單元ID。在周期性核對文件系統(tǒng)的指向操作(pointing operation)期間,數(shù)據(jù)(如,臟數(shù)據(jù))被注入存儲單元301并且新的主要部分分段304僅被寫入存儲單元301,因為PSWM216僅包含存儲單元301的存儲單元ID。
[0058]在數(shù)據(jù)遷移期間,如圖3B所示,儲存在存儲單元301中的數(shù)據(jù)被遷移至存儲單元302。根據(jù)一個實施方式,PSWM216被修改為或者被擴展為包括存儲單元301-302 二者的存儲單元ID。如此,新的主要部分被寫入存儲單元301-302 二者以作為主要部分分段304-305。在數(shù)據(jù)遷移之后,PSWM216被再次修改為或再次縮小為僅包含與存儲單元301相關(guān)聯(lián)的存儲單元ID,以使得隨后的主要部分即將被寫入存儲單元301。
[0059]例如,在數(shù)據(jù)遷移之前,PSWM216僅指向存儲單元301。假定在某些時候,具有主要序列IDlO的主要部分被寫入存儲單元301,作為主要部分分段#10。在這個時候,文件系統(tǒng)的一致點可以基于儲存在存儲單元301中的主要部分分段#10被查明(ascertain)。在數(shù)據(jù)遷移期間,PSWM216被修改以包括存儲單元301-302 二者的存儲單元ID。在數(shù)據(jù)遷移結(jié)束時,具有主要部分序列IDll的主要部分被寫入存儲單元301-302 二者。在這個時候,文件系統(tǒng)的一致點可以基于儲存在存儲單元301-302 二者中的主要部分分段#11被查明。在數(shù)據(jù)遷移結(jié)束之后,PSWM216被修改以僅包含存儲單元301的存儲單元ID。隨后,在新的主要部分即將被寫入時,新的主要部分基于PSWM216而被寫入存儲單元301以作為主要部分分段#12。在這個時候,文件系統(tǒng)的一致點可以基于分別儲存在存儲單元301-302中的主要部分分段#12和主要部分分段#11而被查明。為了校驗最近的主要部分分段是否為可安裝的,系統(tǒng)需要校驗存儲單元301是否包含主要部分分段#12以及存儲單元302是否包含主要部分分段#11。因為存儲單元303是不相關(guān)的,所以不需要訪問存儲單元303。
[0060]在常見的多節(jié)點系統(tǒng)中,為了標(biāo)記文件系統(tǒng)的一致點,此類主要部分分段將被寫入存儲單元301-303的所有存儲單元中。為了校驗文件系統(tǒng)的一致點,元數(shù)據(jù)和相關(guān)聯(lián)的內(nèi)容在每個存儲單元中必須被校驗。這個過程可能花費很長的時間。此外,這個方法可以不在歸檔系統(tǒng)上工作。如上所述,諸如存儲單元303的一些存儲單元被配置為只讀存儲單元并且它們可能會掉電或不可用的。通過使用PSWM216,新的主要部分分段僅被寫入一個或多個由PSWM216標(biāo)識的存儲單元,而不是必須將主要部分分段寫入所有存儲單元。
[0061]圖4是示出了根據(jù)本發(fā)明一個實施方式的維持文件系統(tǒng)的一致點的方法的流程圖。例如,方法400可以由圖1-圖2的分段存儲引擎107執(zhí)行。參照圖4,在框401處,PSWM被維持具有指示下一個主要部分分段即將被寫入存儲系統(tǒng)的哪些去復(fù)制單元的信息。在塊402處,響應(yīng)于對寫入新的主要部分分段的請求,一個或多個存儲單元基于PSWM而被標(biāo)識。在塊403處,新的主要部分分段被寫入所標(biāo)識的一個或多個存儲單元,而不須將相同的主要部分分段寫入剩余的存儲單元。
[0062]圖5是示出了根據(jù)本發(fā)明另一實施方式的維持文件系統(tǒng)的一致點的方法的流程圖。方法500可以由圖1-圖2的分段存儲引擎107執(zhí)行。參照圖5,在塊501處,接收從去復(fù)制存儲系統(tǒng)的源存儲單元至目標(biāo)存儲單元的數(shù)據(jù)遷移的請求。在塊502處,響應(yīng)于該請求,PSWM被修改以引用至少源存儲單元和目標(biāo)存儲單元。在塊503處,執(zhí)行從源存儲單元至目標(biāo)存儲單元的數(shù)據(jù)遷移,包括基于PSWM將更新的主要部分分段寫入源存儲單元和目標(biāo)存儲單元二者。在塊504處,響應(yīng)于指示數(shù)據(jù)遷移結(jié)束的信號,PSWM被修改以移除目標(biāo)存儲單元,這使得隨后的主要部分分段將僅被寫入源存儲單元。
[0063]如上所述,主要部分可以由多個主要部分分段來表示,該多個主要部分分段間具有依存關(guān)系。例如,在數(shù)據(jù)遷移期間,儲存在源存儲單元中的數(shù)據(jù)可以與儲存在目標(biāo)存儲單元中的數(shù)據(jù)具有依存關(guān)系。如此,在數(shù)據(jù)遷移結(jié)束時,主要部分分段基于PSWM被寫入源存儲單元和目標(biāo)存儲單元二者。在數(shù)據(jù)遷移之后,隨后的主要部分分段將僅被寫入源存儲單元。為了標(biāo)識構(gòu)成最近的主要部分的所有主要部分分段,這樣的依存關(guān)系必須被維持。根據(jù)一個實施方式,主要部分依存列表被維持在主要部分分段的至少一個主要部分分段中,諸如源存儲單元的最近的主要部分分段。主要部分依存列表包括標(biāo)識儲存在其他存儲單元中的其他主要部分分段的信息,該其他主要部分分段與儲存在源存儲單元中的主要部分分段具有依存關(guān)系。
[0064]圖6A至圖6C是示出了根據(jù)本發(fā)明一個實施方式的維持存儲系統(tǒng)的一致點的系統(tǒng)的框圖。例如,系統(tǒng)600可以被實施為圖1的存儲系統(tǒng)104的一部分。參照圖6A至圖6C,除了維持PSWM216,系統(tǒng)進(jìn)一步維持與儲存在源存儲單元301中的主要部分分段相關(guān)聯(lián)的主要部分依存列表。主要部分依存列表包括相互依賴以形成可安裝的主要部分的一個或多個主要部分分段的列表。主要部分依存列表中列出的主要部分分段共同表示可安裝的主要部分。
[0065]在如圖6A所述的正常操作期間,外部用戶數(shù)據(jù)僅被寫入源存儲單元301而且PSWM216僅包含與存儲單元301相關(guān)聯(lián)的存儲單元ID。假設(shè)其他兩個存儲單元302和303為空。此時,儲存在源存儲單元301上的主要部分分段602不具有對任何存儲單元302和303的依存。因而,與主要部分分段602相關(guān)聯(lián)的依存列表601僅包含一個條目(entry),該條目具有標(biāo)識源存儲單元301的存儲單元ID和標(biāo)識主要部分分段602的主要部分ID。在該示例中,依存列表601指示了最近的主要部分包括儲存在源存儲單元(如,存儲單元301)中的主要部分分段#10。此時,主要部分分段602可以被用于產(chǎn)生文件系統(tǒng)的一致點。
[0066]隨后,在如圖6B所示的第一數(shù)據(jù)遷移期間,數(shù)據(jù)從源存儲單元301被遷移至目標(biāo)存儲單元302。如上所述,在數(shù)據(jù)遷移開始之前,PSWM216被修改以包括標(biāo)識源存儲單元301和目標(biāo)存儲單元302的存儲單元ID,以便指示下一個主要部分分段即將被寫入存儲單元301-302 二者。在該示例中,假定下一個主要部分分段具有ID#11,其分別被寫入存儲單元301-302 二者以作為主要部分集合612-613。為了捕獲儲存在存儲單元301-302中的數(shù)據(jù)之間的關(guān)系,主要部分依存列表611被維持在主要部分分段612內(nèi)以指示最近的主要部分分段由儲存在存儲單元301中的主要部分分段612和儲存在存儲單元302中的主要部分分段613表示。在該示例中,主要部分依存列表611包括兩個條目:I)標(biāo)識源存儲單元301的第一存儲單元ID和標(biāo)識主要部分分段612的第一主要部分分段ID ;以及2)標(biāo)識目標(biāo)存儲單元302的第二存儲單元ID和標(biāo)識主要部分分段613的第二主要部分分段ID。在該示例中,來自主要部分的主要部分分段612-613都具有序列號#11。此時,主要部分分段612-613可以被用于產(chǎn)生文件系統(tǒng)的一致點。也就是,只要主要部分分段612可以被校驗以在存儲單元301中被呈現(xiàn)并且主要部分分段613可以被校驗以在存儲單元302中被呈現(xiàn),那么,由主要部分分段612-613表示的主要部分可以被認(rèn)為是可安裝的主要部分,用于產(chǎn)生文件系統(tǒng)的一致點的目的。
[0067]在如圖6C所述的數(shù)據(jù)遷移之后,如上所述,PSWM216被修改以僅引用源存儲單元301,以使得隨后的主要部分分段將僅被寫入源存儲單元301。在該示例中,假定在數(shù)據(jù)遷移之后,具有ID#12的新的主要部分基于PSWM216的信息被寫入源存儲單元301以作為主要部分分段622,而未將相同的主要部分分段寫入存儲單元302-303。此外,主要部分分段622的主要部分依存列表621被更新以包括指向分別儲存在存儲單元301-302中的主要部分分段622和613 二者的引用。在該示例中,主要部分依存列表621包括兩個條目:1)標(biāo)識源存儲單元301的第一存儲單元ID和標(biāo)識主要部分分段622的主要部分分段ID ;以及2)標(biāo)識目標(biāo)存儲單元302的第二存儲單元ID和標(biāo)識主要部分分段613的主要部分分段ID。此時,主要部分分段622和613可以被用于產(chǎn)生文件系統(tǒng)的一致點。也就是,只要主要部分分段622可以被校驗以在存儲單元301中被呈現(xiàn)而且主要部分分段613可以被校驗以在存儲單元302中被呈現(xiàn),那么由主要部分分段622和613表示的主要部分可以被認(rèn)為是可安裝的,以用于產(chǎn)生文件系統(tǒng)的一致點的目的。
[0068]因此,如上所述,新的主要部分分段被寫入由PSWM216指示的任何一個存儲單元或多個存儲單元。在數(shù)據(jù)遷移過程期間,PSWM216被修改以指定下一個主要部分分段即將寫入的源存儲單元和目標(biāo)存儲單元二者。此外,產(chǎn)生了描述主要部分分段與儲存在源存儲單元和目標(biāo)存儲單元中的數(shù)據(jù)之間的依存關(guān)系的主要部分依存列表。也就是,主要部分可以基于儲存在多個存儲單元中的多個主要部分分段而被查明,而不必一直將相同的主要部分分段寫入所有存儲單元。如此,文件系統(tǒng)的一致點可以以更有效的方式被查明且需要更小的存儲空間。
[0069]圖7是示出了根據(jù)本發(fā)明一個實施方式的使用主要部分依存列表維持文件系統(tǒng)的一致點的方法的流程圖。例如,方法700可以由如圖6A至圖6C所示的系統(tǒng)600執(zhí)行。參照圖7,在塊701處,接收將新的主要部分分段寫入存儲單元的請求,其中新的主要部分分段由唯一的ID (如,序列號)標(biāo)識。在塊702處,響應(yīng)于該請求,PSWM被訪問以標(biāo)識一個或多個存儲單元,新的主要部分分段應(yīng)當(dāng)被寫入該一個或多個存儲單元。在塊703處,產(chǎn)生主要部分依存列表以包括唯一標(biāo)識符和與PSWM中標(biāo)識的存儲單元相關(guān)聯(lián)的存儲單元ID。在塊704處,對于剩余的存儲單元,他們的主要部分分段號從最后的可安裝的主要部分的依存列表被復(fù)制。在塊705處,具有于此包括的主要部分依存列表的新的主要部分分段被寫入所標(biāo)識的存儲單元以作為主要部分集合。如此,文件系統(tǒng)的一致點可以基于跨越多個存儲單元的多個主要部分集合而被查明,而不必將相同的主要部分分段寫入所有存儲單元。
[0070]圖8是示出了根據(jù)本發(fā)明另一實施方式的使用主要部分依存列表維持文件系統(tǒng)的一致點的方法的流程圖。方法700可以由如圖6A至圖6C所示的系統(tǒng)600執(zhí)行。參照圖8,在塊801處,接收獲得存儲系統(tǒng)的文件系統(tǒng)的一致點的請求。在塊802處,響應(yīng)于該請求,儲存在存儲單元的源存儲單元中的最近的主要部分分段被訪問以檢索主要部分依存列表,其中主要部分依存列表表示跨越多個存儲單元的主要部分分段。在塊803處,列出在主要部分依存列表中的每個主要部分分段在相關(guān)聯(lián)的存儲單元中被校驗以驗證可安裝的主要部分。可安裝的主要部分被用于產(chǎn)生文件系統(tǒng)的一致點。
[0071]圖9是示出了根據(jù)本發(fā)明另一實施方式的存儲系統(tǒng)的分段存儲引擎的框圖。例如,分段存儲引擎900可以被實施為圖1的分段存儲引擎107的一部分。參照圖9,與圖2的分段存儲引擎107類似,分段存儲引擎900包括接口 202、分段器204、復(fù)制消除器206、文件系統(tǒng)208、索引210、存儲單元接口 212、歸檔器214以及具有與如上所述一致或類似的功能的 PSWM216。
[0072]在一個實施方式中,分段存儲引擎900進(jìn)一步包括用于緩存最后校驗的主要部分分段218的副本的緩存。最后校驗的主要部分分段218可以被緩存在諸如硬盤的持續(xù)性存儲位置,并且該主要部分分段218在存儲系統(tǒng)的啟動期間被載入存儲系統(tǒng)的系統(tǒng)存儲器。在新的主要部分分段已經(jīng)被成功校驗時,最后校驗的主要部分分段218相應(yīng)地被更新。在一個實施方式中,緩存的經(jīng)校驗的主要部分分段218基本上表示最后知曉的校驗的主要部分分段(如,最近的可安裝的主要部分分段)的主要部分依存列表。緩存的經(jīng)校驗的主要部分分段218被用于改進(jìn)另一主要部分分段的校驗效率。
[0073]如上所述,為了校驗主要部分,主要部分的依存列表中的一個或多個主要部分分段中的每個主要部分分段必須在其相應(yīng)的存儲單元中被校驗。根據(jù)一個實施方式,如果當(dāng)前主要部分的依存列表中的主要部分分段在緩存的經(jīng)校驗的主要部分218的依存列表中被列出,那么特定的主要部分分段不需要為了當(dāng)前的主要部分而被再次校驗。如此,校驗過程可以以更有效的方式被執(zhí)行。
[0074]圖10是示出了根據(jù)本發(fā)明一個實施方式的校驗存儲系統(tǒng)的可安裝的主要部分的機制的框圖。系統(tǒng)100可以被實施為如圖9所示的系統(tǒng)900的一部分。參照圖10,假定最后的主要部分由主要部分依存列表1001表示,該主要部分依存列表1001包括分別對主要部分集合#11 (如,儲存在存儲單元301中的主要部分集合1002)和主要部分集合#9 (如,儲存在存儲單元302中的主要部分集合1003)的引用。在接收到對校驗可安裝的主要部分分段的請求時,例如,在存儲系統(tǒng)的啟動期間,根據(jù)一個實施方式,主要部分依存列表1001中的每個條目與緩存的最后校驗的主要部分分段218中的每個條目相比較。在最后校驗的主要部分分段218中列出的主要部分依存列表1001中的條目的主要部分集合需要被校驗。換句話說就是,跳過了與最后校驗的主要部分分段218中的主要部分集合匹配的主要部分依存列表1001中條目的主要部分集合的校驗,因為之前已經(jīng)校驗過了。
[0075]在該示例中,主要部分依存列表1001包括兩個條目:1)單元301的存儲單元ID和主要部分分段1002的ID#11 ;以及2)單元302的存儲單元ID和主要部分分段1003的ID#9。最后校驗的主要部分包括兩個條目:1)單元301的存儲單元ID和主要部分分段1004的ID#10 ;以及2)單元302的存儲單元ID和主要部分分段1003的ID#9。在校驗過程期間,主要部分依存列表1001中的每個條目與最后校驗的主要部分218中的每個條目進(jìn)行比較,其中最后校驗的主要部分218中的每個條目本質(zhì)上是最后知曉的可安裝的主要部分的主要部分依存列表。在該示例中,將列表1001和218 二者的第二條目(如,〈302,9>)相匹配。如此,第二條目的相應(yīng)的主要部分分段不需要被校驗;僅列表1001的第一條目(如,〈301,11>)的主要部分分段需要被校驗。如此,校驗過程的效率被大大改進(jìn)。在校驗過程已經(jīng)執(zhí)行成功之后,最后校驗的主要部分218相應(yīng)地被更新。在該示例中,最后校驗的主要部分218將包括條目<301, 11>和〈302,9>。
[0076]圖11是示出了根據(jù)本發(fā)明一個實施方式的校驗存儲系統(tǒng)的主要部分分段的方法的流程圖。方法1100可以由圖10的系統(tǒng)1000執(zhí)行。參照圖11,在塊1101處,響應(yīng)于對校驗表示存儲系統(tǒng)的文件系統(tǒng)的一致點的主要部分分段的請求,第一主要部分集合(如,儲存在源存儲單元中的主要部分集合)的每個主要部分集合被檢查以確定相應(yīng)的主要部分集合是否之前已經(jīng)被校驗。在塊1102處,僅之前沒有被校驗的一個或多個主要部分集合將被校驗,不必對之前已經(jīng)被校驗的主要部分集合進(jìn)行校驗。一旦新的主要部分分段被校驗,該新的主要部分分段就可以被用于構(gòu)建文件系統(tǒng)的一致點。
[0077]圖12是示出了根據(jù)本發(fā)明另一實施方式的校驗存儲系統(tǒng)的可安裝的主要部分的方法的流程圖。方法1200可以由圖10的系統(tǒng)1000執(zhí)行。參照圖12,在塊1201處,記錄了第一可安裝的主要部分,其中該主要部分包括共同表示該主要部分的多個主要部分分段。隨后,在塊1202處,接收用于校驗第二主要部分是否為可安裝的請求。在塊1203處,對于在第二主要部分的依存列表中的每個主要部分分段,通過搜索或匹配第一主要部分的依存列表中的主要部分分段來確定主要部分分段是否之前已經(jīng)被校驗。如果主要部分分段之前沒有被校驗(如,未在第一主要部分分段中找到),則在塊1204處,主要部分分段在相關(guān)聯(lián)的存儲單元中被校驗;否則,跳過主要部分分段的校驗。以上過程可以反復(fù)地執(zhí)行以用于第二主要部分的依存列表中的每個主要部分分段。
[0078]圖13是示出了可以與本發(fā)明的實施方式一起使用的數(shù)據(jù)存儲系統(tǒng)的示例的框圖。例如,系統(tǒng)1300可以被實施為如圖1所不的存儲系統(tǒng)的一部分。在該不例中,系統(tǒng)1300為去復(fù)制的數(shù)據(jù)存儲系統(tǒng)。參照圖13,系統(tǒng)1300包括但不限于文件服務(wù)接口 1301、內(nèi)容存儲管理器1302、具有分段指紋1304的分段儲存管理器1303、及用于管理儲存在一個或多個磁盤1306的容器中的分段的容器管理器1405。
[0079]根據(jù)一個實施方式,系統(tǒng)1300以內(nèi)容依賴方式將數(shù)據(jù)對象(如,文件)分解為可變長度分段并針對每個分段計算指紋。系統(tǒng)1300使用指紋來標(biāo)識復(fù)制分段并作為用于引用分段的分段描述符的一部分。分段描述符按分段指紋的順序來表示文件。在寫操作期間,系統(tǒng)1300標(biāo)識復(fù)制分段并盡量僅儲存任何特定分段的一個副本。在儲存新的分段之前,系統(tǒng)1300可以使用各種壓縮算法(諸如,改進(jìn)型Ziv-Lempel算法)來壓縮分段。在一個實施方式中,系統(tǒng)1300支持在公共文件服務(wù)接口 1301上被分層的多個訪問協(xié)議。支持的協(xié)議包括網(wǎng)絡(luò)文件系統(tǒng)(NFS)、公共互聯(lián)網(wǎng)文件系統(tǒng)(CIFS)和虛擬磁帶庫接口(VTL),等。系統(tǒng)1300包括用于管理系統(tǒng)的管理接口。管理接口可以為文件服務(wù)接口 1301的一部分。
[0080]在數(shù)據(jù)流進(jìn)入系統(tǒng)1300時,數(shù)據(jù)流從標(biāo)準(zhǔn)接口中的一者穿過進(jìn)入通用文件服務(wù)層,該通用文件服務(wù)層管理名稱空間和文件元數(shù)據(jù)。文件服務(wù)層將寫入請求轉(zhuǎn)達(dá)至內(nèi)容儲存管理器1302,該內(nèi)容儲存管理器1302管理文件內(nèi)的數(shù)據(jù)內(nèi)容。內(nèi)容儲存管理器1302將數(shù)據(jù)流分解成多個分段,使用分段儲存管理器1303來執(zhí)行去復(fù)制,并保持對文件的引用的追蹤(如,在邏輯數(shù)據(jù)對象和物理數(shù)據(jù)對象之間進(jìn)行映射)。分段儲存管理器1303進(jìn)行去復(fù)制的實際工作。該分段儲存管理器1303將去復(fù)制的(唯一的)分段打包成相對大的單元,使用改進(jìn)的壓縮算法(諸如Ziv-Lempel算法)將這些單元壓縮以進(jìn)一步壓縮數(shù)據(jù),并接著將壓縮的結(jié)果寫入由容器管理器1305管理的容器中。
[0081]為了從系統(tǒng)1300讀取數(shù)據(jù)流,客戶端通過標(biāo)準(zhǔn)接口中的一者和文件服務(wù)層1301來驅(qū)動讀取操作。內(nèi)容儲存管理器1302使用對去復(fù)制分段的引用來將需要的數(shù)據(jù)流傳遞至客戶端。分段儲存管理器1303預(yù)取、解壓縮、讀取并緩存來自容器管理器1305的數(shù)據(jù)分段。根據(jù)一個實施方式,內(nèi)容儲存管理器1302實施字節(jié)范圍的寫入和讀取以用于去復(fù)制數(shù)據(jù)對象,其中對象為客戶端數(shù)據(jù)字節(jié)的線性序列并具有固有的且客戶端可設(shè)定的屬性或元數(shù)據(jù)。對象可以為常規(guī)文件、整卷或磁帶盒的備份映像。
[0082]為了將字節(jié)范圍寫入對象中,內(nèi)容儲存管理器1302執(zhí)行多個操作。首先,將字節(jié)范圍以內(nèi)容依賴方式進(jìn)行錨定劃分成可變長度分段。然后分段指紋計算諸如SHA-1散列(hash)的散列并根據(jù)該散列產(chǎn)生分段描述符。每個分段描述符包含至少指紋和大小的每個分段信息。進(jìn)一步地,分段映射建立記錄對象字節(jié)范圍和分段描述符之間的映射的分段樹。目標(biāo)是使用對去復(fù)制分段的引用來表示數(shù)據(jù)對象。為了讀取對象中的字節(jié)范圍,內(nèi)容儲存管理器1302遍歷由以上分段映射操作創(chuàng)建的分段樹以獲得有關(guān)分段的分段描述符。內(nèi)容儲存管理器1302從分段儲存(未示出)提取分段并將請求的字節(jié)范圍返回客戶端。
[0083]分段儲存管理器1303本質(zhì)上管理由分段的分段描述符1304作為鍵碼的分段的數(shù)據(jù)庫。為了支持寫入,分段儲存管理器1303接收具有其分段描述符的分段并將其儲存起來。為了支持讀取,分段儲存管理器1303提取由其分段描述符指定的分段。為了寫數(shù)據(jù)分段,分段儲存執(zhí)行多個操作。首先,分段過濾操作確定分段是否為復(fù)制品。這對于去復(fù)制分段是關(guān)鍵操作并且可能觸發(fā)磁盤1/0,因而其開銷可能大大影響吞吐性能。進(jìn)一步地,容器打包操作將待儲存的分段添加至容器,該容器為系統(tǒng)中的存儲單元。打包操作還使用諸如改進(jìn)的Ziv-Lempel算法的改進(jìn)的壓縮算法來壓縮分段數(shù)據(jù)。在全部打包時,容器被添加至容器管理器1305。最后,在容器已經(jīng)被添加至容器管理器1305之后,分段索引操作將更新分段索引,該分段索引將分段描述符映射至持有分段的容器。為了讀取數(shù)據(jù)分段,分段儲存管理器1303執(zhí)行默寫操作。首先,分段查找尋找儲存請求的分段的容器。該操作可能觸發(fā)磁盤I/O以查詢磁盤上的索引,因而是吞吐敏感的。容器檢索通過調(diào)用容器管理器1305讀取指示的容器的相關(guān)部分。容器解包操作解壓縮容器的檢索的部分并返回請求的數(shù)據(jù)分段。
[0084]容器管理器1305向分段儲存1303提供存儲容器記錄概念(abstraction),而不是塊概念。容器包括具有用于儲存的分段的分段描述符的元數(shù)據(jù)部分。這些分段描述符在那些新的容器被添加而老容器刪除的情況中是不可變的,但是一旦寫入,容器不能被修改。在分段儲存管理器1303添加容器時,容器管理器1305返回容器ID,該容器ID在系統(tǒng)的生命期間是唯一的。容器管理器1305負(fù)責(zé)分配、解分配、讀取、寫入和可靠儲存容器。容器管理器1305支持元數(shù)據(jù)部分或數(shù)據(jù)部分的一部分的讀取,但是容器管理器1305僅支持整個容器的添加。如果容器不滿但需要被寫入磁盤,那么容器被塞滿以達(dá)到其全部大小。容器管理器1305被建立在標(biāo)準(zhǔn)塊儲存1306的頂端。諸如軟件RAID-6、連續(xù)數(shù)據(jù)清理、容器校驗及端對端數(shù)據(jù)核對的先進(jìn)技術(shù)被應(yīng)用以確保數(shù)據(jù)的高度完整性和可靠性。
[0085]容器概念提供了多項優(yōu)勢:1)固定的容器大小使得容器易于進(jìn)行容器分配和解分配;2)大粒度(granularity)的容器寫入實現(xiàn)高的磁盤吞吐的利用;以及3)合理選用的容器大小允許有效的完全條帶RAID寫入,這使得有效的軟件RAID能夠在存儲層實施。根據(jù)一個實施方式,諸如文件服務(wù)接口的系統(tǒng)1300的某些組件包括邏輯,使用以上所述的技術(shù)該邏輯被配置為檢查接收到的特定請求是否可能危害(compromise)不可變的數(shù)據(jù)對象的完整并被配置為從授權(quán)代理請求必要的認(rèn)可以用于此類請求。其他配置也可以存在。
[0086]圖14是可以與本發(fā)明的一個實施方式一起使用的數(shù)據(jù)處理系統(tǒng)的框圖。例如,系統(tǒng)1400可以被用作如圖1所示的客戶端或服務(wù)器計算機。應(yīng)當(dāng)注意的是盡管圖14示出了計算機系統(tǒng)的各種組件,并不是打算表示相互連接組件的任何特定結(jié)構(gòu)或方式;因為這些細(xì)節(jié)對本發(fā)明來說并不是密切相關(guān)的。還應(yīng)當(dāng)理解的是具有較少組件或可能更多組件的網(wǎng)絡(luò)計算機、手持式計算機、手機和其他數(shù)據(jù)處理系統(tǒng)也可以與本發(fā)明一起使用。例如,圖14的計算機系統(tǒng)可以為蘋果公司的Macintosh計算機或IBM兼容PC。
[0087]如圖14所示,處于數(shù)據(jù)處理系統(tǒng)形式的計算機系統(tǒng)1400包括耦合至處理器1403和R0M1407、易失性RAM1405及非易失性存儲器1406的總線或連接體1402。處理器1403可以包括多個處理器和/或核心邏輯(core logic),該多個處理器和/或核心邏輯構(gòu)成系統(tǒng)的中央處理單元(CPU),并因而控制系統(tǒng)的整個操作。根據(jù)某些實施方式,處理器1403通過執(zhí)行儲存在內(nèi)存1405-1407的任何內(nèi)存中的軟件(例如應(yīng)用程序或操作的系統(tǒng)等)來完成這個操作。處理器1403可以包括一個或多個可編程通用或?qū)S梦⑻幚砥?、?shù)字信號處理器(DSP)、可編程控制器、特定用途集成電路(ASIC)、可編程邏輯設(shè)備(PLD)等,或者這些設(shè)備的組合。
[0088]例如處理器1403 (可以為Intel處理器或PowerPC處理器)被耦合至如圖14的示例所示的緩存內(nèi)存1404。總線1402將各種組件相互連接在一起并且還將這些組件1403和1405-1407與顯示控制器和顯示設(shè)備1408以及輸入/輸出(1/0)設(shè)備1410相互連接,該輸入/輸出(1/0)設(shè)備1410可以為鼠標(biāo)、鍵盤、調(diào)制解調(diào)器、網(wǎng)絡(luò)接口、打印機和其他現(xiàn)有技術(shù)已知的設(shè)備。
[0089]通常,輸入/輸出設(shè)備1410通過輸入/輸出控制器1409被f禹合至系統(tǒng)。易失性RAM1405通常被實施為動態(tài)RAM (DRAM),該動態(tài)RAM需要持續(xù)供電以為了更新或維持存儲器中的數(shù)據(jù)。非易失性存儲器1406通常為磁硬盤、磁光驅(qū)動、光驅(qū)動、DVD RAM、閃存或即使在電力從系統(tǒng)移除之后還維持?jǐn)?shù)據(jù)的其他類型的存儲器系統(tǒng)。通常,非易失性存儲器還為隨機存取存儲器,雖然這是不需要的。
[0090]雖然圖14顯示了非易失性存儲器為直接耦合至數(shù)據(jù)處理系統(tǒng)中剩余的組件的本地設(shè)備,但是應(yīng)當(dāng)理解的是本發(fā)明可以利用遠(yuǎn)離系統(tǒng)的非易失性存儲器,諸如通過諸如調(diào)制解調(diào)器或以太網(wǎng)接口的網(wǎng)絡(luò)接口耦合至數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò)存儲設(shè)備。本領(lǐng)域技術(shù)人員熟知,總線1402可以包括通過各種橋、控制器和/或適配器相互連接的一個或多個總線。在一個實施方式中,1/0控制器1409包括USB (通用串行總線)適配器以用于控制USB外圍設(shè)備??商鎿Q地,1/0控制器1409可以包括IEEE-1394適配器,還被稱為火線(FireWire)適配器,以用于控制火線設(shè)備。還可以包括其他組件。
[0091]之前詳細(xì)描述的一些部分已經(jīng)依據(jù)對計算機存儲器內(nèi)數(shù)據(jù)比特操作的算法和符號表示而被呈現(xiàn)出來。這些算法描述和表示是由數(shù)據(jù)處理領(lǐng)域的技術(shù)人員使用的方式以以最有效地將他們的工作的實質(zhì)傳遞給本領(lǐng)域技術(shù)人員。算法在這里一般被構(gòu)想為引起需要結(jié)果的自我一致的序列的操作。這些操作是物理量需要的物理操縱。
[0092]但是,應(yīng)當(dāng)接受的是,所有這些和類似的術(shù)語是與合適的物理量相關(guān)聯(lián)的并且僅僅是應(yīng)用至這些量的便利的標(biāo)簽。除非特別的描述,否則顯然如上所述,應(yīng)當(dāng)理解通過利用諸如權(quán)利要求所述的術(shù)語的描述、論述,涉及計算機系統(tǒng)或類似的電子計算的設(shè)備的行為和處理,其是對如計算機系統(tǒng)的寄存器和存儲器內(nèi)的被表示為物理(電子)量的數(shù)據(jù)進(jìn)行操縱并將其變換為計算機系統(tǒng)存儲器或寄存器或其他信息存儲、傳輸或顯示設(shè)備內(nèi)被類似表示為物理量的其他數(shù)據(jù)。
[0093]本發(fā)明的實施方式還涉及用于執(zhí)行于此操作的設(shè)備。該計算機程序被儲存在非暫時性計算機可讀介質(zhì)中。機器可讀介質(zhì)包括以機器(如,計算機)可讀的形式儲存信息的任何機制。例如,機器可讀(如,計算機可讀)介質(zhì)包括機器(如,計算機)可讀存儲介質(zhì)(如,只讀存儲器(“ROM”)、隨機訪問存儲器(“RAM”)、磁盤存儲介質(zhì)、光存儲介質(zhì)、閃存設(shè)備)。
[0094]在先前的附圖中描述的過程或方法可以由處理邏輯執(zhí)行,該處理邏輯包括硬件(如,電路、專用邏輯,等)、軟件(如,體現(xiàn)在非暫時性計算機可讀介質(zhì)),或者二者的結(jié)合。雖然依據(jù)一些時序操作以上描述了處理過程或方法,應(yīng)當(dāng)理解的是所描述的一些操作可以以不同的順序執(zhí)行。并且,一些操作可以并行地而不是連續(xù)地執(zhí)行。
[0095]本發(fā)明的實施方式并未參照任何特定的編程語言進(jìn)行描述。應(yīng)當(dāng)理解的是各種編程語言可以被用于實施于此所述的本發(fā)明實施方式的教示。
[0096]在前述描述中,本發(fā)明實施方式已經(jīng)參照特定的示例性實施方式進(jìn)行描述。顯然,在不背離權(quán)所附利要求所述的本發(fā)明更廣泛的思想和范圍的情況下可以進(jìn)行各種修改。相應(yīng)地,說明書和附圖被視為說明性的而不是限制性的。
【權(quán)利要求】
1.一種用于維持文件系統(tǒng)的一致點的計算機實施的方法,該方法包括: 接收確定數(shù)據(jù)的一致點的請求,所述數(shù)據(jù)儲存在具有多個存儲單元的存儲系統(tǒng)的文件系統(tǒng)中; 響應(yīng)于所述請求,從儲存在所述存儲單元的第一存儲單元中的第一主要部分分段中檢索主要部分依存列表,所述主要部分依存列表包括標(biāo)識儲存在所述存儲單元的第二存儲單元中的至少第二主要部分分段的信息,其中所述第一主要部分分段和所述第二主要部分分段共同形成表示所述文件系統(tǒng)的一致視圖的主要部分;以及 查明在所述主要部分依存列表中列出的所述主要部分分段中的每個主要部分分段以試圖確定所述數(shù)據(jù)的一致點。
2.根據(jù)權(quán)利要求1所述的方法,其中所述第一主要部分分段和所述第二主要部分分段分別由第一主要部分分段標(biāo)識符(ID)和第二主要部分分段ID來標(biāo)識,并且其中所述第一主要部分分段ID和所述第二主要部分分段ID表示不同版本的所述主要部分。
3.根據(jù)權(quán)利要求2所述的方法,其中所述主要部分依存列表包括第一條目和第二條目,其中所述第一條目包括與標(biāo)識所述第一存儲單元的第一存儲單元ID相關(guān)聯(lián)的所述第一主要部分分段ID,以及其中所述第二條目包括與標(biāo)識所述第二存儲單元的第二存儲單元ID相關(guān)聯(lián)的所述第二主要部分分段ID。
4.根據(jù)權(quán)利要求2所述的方法,其中所述第一主要部分分段ID和所述第二主要部分分段ID基于所述第一主要部分分段和所述第二主要部分分段被寫入的序列順序而被確定。
5.根據(jù)權(quán)利要求1所述的方法,其中查明所述主要部分分段中的每個主要部分分段包括:· 在所述主要部分分段各自的存儲單元中校驗在所述主要部分依存列表中列出的所述主要部分分段中的每個主要部分分段;以及 如果所述主要部分分段中的每個主要部分分段已經(jīng)被校驗,則將由在所述主要部分依存列表中列出的所述主要部分分段表示的主要部分標(biāo)識為可安裝的主要部分。
6.根據(jù)權(quán)利要求5所述的方法,其中所述可安裝的主要部分能夠被用于構(gòu)建所述文件系統(tǒng)中數(shù)據(jù)的一致點。
7.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括: 接收將第二主要部分寫入所述第一存儲單元和所述第二存儲單元的第二請求,所述第二主要部分由第三主要部分分段ID標(biāo)識; 響應(yīng)于所述第二請求,產(chǎn)生第二主要部分依存列表,該第二主要部分依存列表包括與所述第一存儲單元和所述第二存儲單元相關(guān)聯(lián)的所述第三主要部分分段ID ;以及 將第三主要部分分段寫入至少所述第一存儲單元,其中所述第三主要部分分段包括所述第二主要部分依存列表。
8.根據(jù)權(quán)利要求7所述的方法,其中所述第二主要部分依存列表包括第一條目和第二條目,其中所述第一條目包括所述第三主要部分分段ID和標(biāo)識所述第一存儲單元的第一存儲單元ID,以及其中所述第二條目包括所述第三主要部分分段ID和標(biāo)識所述第二存儲單元的第二存儲單元ID。
9.一種在其中存儲有指令的計算機可讀存儲介質(zhì),其中在所述指令被計算機執(zhí)行時,使所述計算機執(zhí)行用于維持文件系統(tǒng)的一致點的方法,該方法包括:接收確定數(shù)據(jù)的一致點的請求,所述數(shù)據(jù)儲存在具有多個存儲單元的存儲系統(tǒng)的文件系統(tǒng)中; 響應(yīng)于所述請求,從儲存在所述存儲單元的第一存儲單元中的第一主要部分分段中檢索主要部分依存列表,所述主要部分依存列表包括標(biāo)識儲存在所述存儲單元的第二存儲單元中的至少第二主要部分分段的信息,其中所述第一主要部分集合和所述第二主要部分集合共同形成表示所述文件系統(tǒng)的一致視圖的主要部分;以及 查明在所述主要部分依存列表中列出的所述主要部分分段中的每個主要部分分段以試圖確定所述數(shù)據(jù)的一致點。
10.根據(jù)權(quán)利要求9所述的計算機可讀存儲介質(zhì),其中所述第一主要部分分段和所述第二主要部分分段分別由第一主要部分分段標(biāo)識符(ID)和第二主要部分分段ID來標(biāo)識,并且其中所述第一主要部分分段ID和所述第二主要部分分段ID表示不同版本的所述主要部分。
11.根據(jù)權(quán)利要求10所述的計算機可讀存儲介質(zhì),其中所述主要部分依存列表包括第一條目和第二條目,其中所述第一條目包括與標(biāo)識所述第一存儲單元的第一存儲單元ID相關(guān)聯(lián)的所述第一主要部分分段ID,以及其中所述第二條目包括與標(biāo)識所述第二存儲單元的第二存儲單元ID相關(guān)聯(lián)的所述第二主要部分分段ID。
12.根據(jù)權(quán)利要求10所述的計算機可讀存儲介質(zhì),其中所述第一主要部分分段ID和所述第二主要部分分段ID基于所述第一主要部分分段和所述第二主要部分分段被寫入的序列順序而被確定。
13.根據(jù)權(quán)利要求9所述的計算機可讀存儲介質(zhì),其中查明所述主要部分分段中的每個主要部分分段包括: 在所述主要部分分段各自的存儲單元中校驗在所述主要部分依存列表中列出的所述主要部分分段中的每個主要部分分段;以及 如果所述主要部分分段中的每個主要部分分段已經(jīng)被校驗,則將由在所述主要部分依存列表中列出的所述主要部分分段表示的主要部分標(biāo)識為可安裝的主要部分。
14.根據(jù)權(quán)利要求13所述的計算機可讀存儲介質(zhì),其中所述可安裝的主要部分能夠被用于構(gòu)建所述文件系統(tǒng)中數(shù)據(jù)的一致點。
15.根據(jù)權(quán)利要求9所述的計算機可讀存儲介質(zhì),其中所述方法進(jìn)一步包括: 接收將第二主要部分寫入所述第一存儲單元和所述第二存儲單元的第二請求,所述第二主要部分由第三主要部分分段ID標(biāo)識; 響應(yīng)于所述第二請求,產(chǎn)生第二主要部分依存列表,該第二主要部分依存列表包括與所述第一存儲單元和所述第二存儲單元相關(guān)聯(lián)的所述第三主要部分分段ID ;以及 將第三主要部分分段寫入至少所述第一存儲單元,其中所述第三主要部分分段包括所述第二主要部分依存列表。
16.根據(jù)權(quán)利要求15所述的計算機可讀存儲介質(zhì),其中所述第二主要部分依存列表包括第一條目和第二條目,其中所述第一條目包括所述第三主要部分分段ID和標(biāo)識所述第一存儲單元的第一存儲單元ID,以及其中所述第二條目包括所述第三主要部分分段ID和標(biāo)識所述第二存儲單元的第二存儲單元ID。
17.一種存儲系統(tǒng),包括:多個存儲單元;以及 歸檔器,被耦合至所述存儲單元,所述歸檔器被配置為 響應(yīng)于獲得儲存在文件系統(tǒng)中數(shù)據(jù)的一致點的請求,從儲存在所述存儲單元的第一存儲單元中的第一主要部分分段中檢索主要部分依存列表,所述主要部分依存列表包括標(biāo)識儲存在所述存儲單元的第二存儲單元中的至少第二主要部分分段的信息,其中所述第一主要部分分段和所述第二主要部分分段共同形成表示所述文件系統(tǒng)的一致視圖的主要部分,以及 查明在所述主要部分依存列表中列出的所述主要部分分段中的每個主要部分分段以試圖確定所述數(shù)據(jù)的一致點。
18.根據(jù)權(quán)利要求17所述的方法,其中所述第一主要部分分段和所述第二主要部分分段分別由第一主要部分分段標(biāo)識符(ID)和第二主要部分分段ID來標(biāo)識,并且其中所述第一主要部分分段ID和所述第二主要部分分段ID表示不同版本的所述主要部分。
19.根據(jù)權(quán)利要求18所述的方法,其中所述主要部分依存列表包括第一條目和第二條目,其中所述第一條目包括與標(biāo)識所述第一存儲單元的第一存儲單元ID相關(guān)聯(lián)的所述第一主要部分分段ID,以及其中所述第二條目包括與標(biāo)識所述第二存儲單元的第二存儲單元ID相關(guān)聯(lián)的所述第二主要部分分段ID。
20.根據(jù)權(quán)利要求17所述的方法,其中在查明所述主要部分分段中的每個主要部分分段期間,所述歸檔器被配置為 在所述主要部分分段各自的存儲單元中校驗在所述主要部分依存列表中列出的所述主要部分分段中的每個主要部分分段,以及 如果所述主要部分分段中的每`個主要部分分段已經(jīng)被校驗,則將由在所述主要部分依存列表中列出的所述主要部分分段表示的主要部分標(biāo)識為可安裝的主要部分。
21.根據(jù)權(quán)利要求17所述的方法,其中所述歸檔器進(jìn)一步被配置為 接收將第二主要部分寫入所述第一存儲單元和所述第二存儲單元的第二請求,所述第二主要部分由第三主要部分分段ID標(biāo)識, 響應(yīng)于所述第二請求,產(chǎn)生第二主要部分依存列表,該第二主要部分依存列表包括與所述第一存儲單元和所述第二存儲單元相關(guān)聯(lián)的所述第三主要部分分段ID,以及 將第三主要部分分段寫入至少所述第一存儲單元,其中所述第三主要部分分段包括所述第二主要部分依存列表。
【文檔編號】G06F7/00GK103547992SQ201280024354
【公開日】2014年1月29日 申請日期:2012年3月7日 優(yōu)先權(quán)日:2011年3月31日
【發(fā)明者】S·麥卓, W·W·蘇 申請人:伊姆西公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1