一種分布式文件系統(tǒng)中支持快照的元數(shù)據(jù)信息管理方法
【專利摘要】本發(fā)明提供一種分布式文件系統(tǒng)中支持快照的元數(shù)據(jù)信息管理方法,包括以下步驟:對段資源進(jìn)行管理;創(chuàng)建文件快照并對創(chuàng)建的文件快照進(jìn)行修改;對iNode資源進(jìn)行管理;創(chuàng)建目錄快照并對創(chuàng)建的目錄快照進(jìn)行修改。本發(fā)明提供的分布式文件系統(tǒng)中支持快照的元數(shù)據(jù)信息管理方法,將MDS中iNode信息、段信息分別采用iNode管理器和段管理器進(jìn)行維護(hù),并通過管理器維護(hù)的方法,順其自然的實(shí)現(xiàn)了分布式文件系統(tǒng)的快照。
【專利說明】一種分布式文件系統(tǒng)中支持快照的元數(shù)據(jù)信息管理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種管理方法,具體講涉及一種分布式文件系統(tǒng)中支持快照的元數(shù)據(jù)
信息管理方法。
【背景技術(shù)】
[0002]分布式文件系統(tǒng)一般包含客戶端,元數(shù)據(jù)服務(wù)器(MetaData Servicer,MDS)和數(shù)據(jù)服務(wù)器(Data Servicer, DS),客戶端負(fù)責(zé)文件數(shù)據(jù)的訪問接口制定,元數(shù)據(jù)服務(wù)器器處理文件的布局及屬性,數(shù)據(jù)服務(wù)器器存儲(chǔ)文件的數(shù)據(jù)內(nèi)容。
[0003]對于分布式文件系統(tǒng),快照技術(shù)是實(shí)現(xiàn)防范數(shù)據(jù)丟失的有效手段。當(dāng)存儲(chǔ)設(shè)備發(fā)生應(yīng)用故障或者文件損壞時(shí),可以利用快照將數(shù)據(jù)恢復(fù)到快照產(chǎn)生時(shí)間點(diǎn)的狀態(tài);此外,快照為存儲(chǔ)用戶提供了另一個(gè)數(shù)據(jù)訪問通道,當(dāng)原數(shù)據(jù)進(jìn)行在線應(yīng)用處理時(shí),用戶可以訪問快照或利用快照進(jìn)行相關(guān)測試工作。
[0004]寫時(shí)拷貝(Copy On Write, COW)是實(shí)現(xiàn)文件快照的基本思想,修改式訪問一分裂—重定向修改式訪問,是實(shí)現(xiàn)COW的基本流程。有些文件系統(tǒng)為了實(shí)現(xiàn)快照,額外建立了快照表,每次訪問時(shí)都會(huì)通過快照表檢查是否訪問了快照項(xiàng),并決定是否執(zhí)行分裂處理;還有些文件系統(tǒng)通過額外增加數(shù)據(jù)塊的元數(shù)據(jù)引用計(jì)數(shù)表,每次訪問時(shí)都會(huì)通過引用計(jì)數(shù)表檢查是否訪問了快照項(xiàng),并決定是否執(zhí)行分裂處理。
[0005]目前的快照技術(shù)主要有如下缺點(diǎn):
[0006]I)基于快照表/引用計(jì)數(shù)表檢查的技術(shù),雖無需改動(dòng)原有元數(shù)據(jù)信息結(jié)構(gòu),但當(dāng)快照表/引用計(jì)數(shù)表非常大時(shí),檢查快照表將比較耗時(shí);
[0007]2)目前分布式文件系統(tǒng)快照實(shí)現(xiàn)多局限在文件快照級(jí),缺乏目錄級(jí)快照的實(shí)現(xiàn)方案。
【發(fā)明內(nèi)容】
[0008]為了克服上述現(xiàn)有技術(shù)的不足,本發(fā)明提供一種分布式文件系統(tǒng)中支持快照的元數(shù)據(jù)信息管理方法,將MDS中iNode信息、段信息分別采用iNode管理器和段管理器進(jìn)行維護(hù),并通過管理器維護(hù)的方法,順其自然的實(shí)現(xiàn)了分布式文件系統(tǒng)的快照。
[0009]為了實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明采取如下技術(shù)方案:
[0010]本發(fā)明提供一種分布式文件系統(tǒng)中支持快照的元數(shù)據(jù)信息管理方法,所述方法包括以下步驟:
[0011]步驟1:對段資源進(jìn)行管理;
[0012]步驟2:創(chuàng)建文件快照并對創(chuàng)建的文件快照進(jìn)行修改;
[0013]步驟3:對iNode資源進(jìn)行管理;
[0014]步驟4:創(chuàng)建目錄快照并對創(chuàng)建的目錄快照進(jìn)行修改。
[0015]所述步驟I中,段資源的基本屬性包括引用計(jì)數(shù)RC和分裂版本SV ;步驟I具體包括以下步驟:[0016]步驟1-1:段布局中相應(yīng)的文件數(shù)據(jù)內(nèi)容發(fā)生改變時(shí),若引用計(jì)數(shù)RC > 1,則對段資源進(jìn)行分裂;
[0017]步驟1-2:當(dāng)刪除文件時(shí),元數(shù)據(jù)服務(wù)器將修改相應(yīng)iNode資源引用的所有RC,使RC=RC-1 ;如果段資源的RC值為0,則通知數(shù)據(jù)服務(wù)器刪除段布局對應(yīng)的文件,并從段管理器中回收段資源。
[0018]設(shè)ino表示當(dāng)前修改文件的iNode資源,seg表示當(dāng)前修改數(shù)據(jù)內(nèi)容對應(yīng)的段資源,元數(shù)據(jù)服務(wù)器對seg進(jìn)行分裂過程如下:
[0019]I)如果seg布局相關(guān)元數(shù)據(jù)服務(wù)器空間不足,則為seg_neW構(gòu)建新布局;否則,拷貝seg給新段資源seg_new,并設(shè)置seg_new屬性RC=I, SV=O ;
[0020]2)如果seg與seg_neW布局一致且相關(guān)數(shù)據(jù)服務(wù)器支持?jǐn)?shù)據(jù)對象文件的快照,則建立seg中對應(yīng)對象文件的快照并映射給seg_new對應(yīng)對象文件;否則,拷貝seg中對應(yīng)對象文件作為seg_new的對象文件;
[0021]3) seg 屬性 RC=RC-1, SV=SV+1 ;
[0022]4) ino 引用 seg_new。
[0023]所述步驟2包括以下步驟:
[0024]步驟2-1:設(shè)ino表示文件快照源,ino_snap表示需創(chuàng)建的快照文件,則元數(shù)據(jù)服務(wù)器創(chuàng)建文件快照過程如下:
[0025]I)拷貝ino中所有段資源引用信息給ino_snap ;
[0026]2)設(shè)置ino引用的所有段資源RC屬性:RC=RC+1。
[0027]步驟2-2:創(chuàng)建文件快照完成后,對文件快照的修改依據(jù)段資源管理進(jìn)行處理。
[0028]所述步驟3中,所述iNode資源的基本屬性包括引用計(jì)數(shù)RC和分裂版本SV ;步驟3具體包括以下步驟:
[0029]步驟3-1:當(dāng)客戶端需要修改指定路徑的文件/目錄時(shí),客戶端將從根目錄開始,向元數(shù)據(jù)服務(wù)器逐級(jí)獲取該路徑上各目錄項(xiàng)的iNode資源;若遇目錄項(xiàng)的iNode資源屬性RC>1,則需要從該目錄項(xiàng)開始,執(zhí)行iNode資源的分裂處理,直到路徑上最后一級(jí)目錄項(xiàng)的iNode資源完成;
[0030]步驟3-2:當(dāng)客戶端刪除指定路徑的目錄時(shí),元數(shù)據(jù)服務(wù)器執(zhí)行刪除目錄流程;
[0031]步驟3-3:如果客戶端刪除指定路徑的文件時(shí),依據(jù)修改目錄處理流程,完成文件所在目錄的分裂處理;然后依據(jù)段資源管理中刪除文件的處理流程,完成刪除處理。
[0032]所述步驟3-1中,設(shè)ino表示當(dāng)前目錄項(xiàng)的iNode資源,ino_parent表示父目錄項(xiàng)的iNode資源,元數(shù)據(jù)服務(wù)器對ino進(jìn)行分裂的過程如下:
[0033]I)設(shè)置 ino 屬性 RC=RC-1, SV=SV+1 ;
[0034]2)拷貝ino資源信息給新iNode資源ino_new,并設(shè)置ino_new屬性RC=I, SV=O ;
[0035]3) ino_parent 引用 ino_new ;
[0036]4)由于ino_new與ino引用相同的資源,如果ino是文件類型,貝U所有引用的段資源屬性RC=RC+1 ;如果ino是目錄類型,則所有引用的iNode資源屬性RC=RC+1。
[0037]所述步驟3-2包括以下步驟:
[0038]I)依據(jù)修改目錄處理流程,完成分裂處理;設(shè)ino_parent表示帶刪除目錄項(xiàng)父目錄項(xiàng)的iNode資源;[0039]2)刪除ino_parent中對應(yīng)ino的目錄項(xiàng),并設(shè)置ino屬性RC=RC-1 ;
[0040]3)若RC值為0,則從iNode管理器中回收ino。
[0041]所述4包括以下步驟:
[0042]步驟4-1:設(shè)ino表示目錄快照源,ino_snap_parent表示目錄快照的父目錄,則元數(shù)據(jù)服務(wù)器創(chuàng)建目錄快照過程如下:
[0043]I)在ino_snap_parent中增加目錄項(xiàng),目錄項(xiàng)名稱為目錄快照名稱,目錄項(xiàng)的iNode 引用 ino ;
[0044]2)設(shè)置 ino 屬性 RC=RC+1 ;
[0045]步驟4-2:創(chuàng)建目錄快照完成后,對目錄快照的修改依據(jù)iNode資源管理進(jìn)行處理。
[0046]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果在于:
[0047]I)本發(fā)明將分布式文件系統(tǒng)中MDS的元數(shù)據(jù)信息采用了資源化管理方案,為快照的實(shí)現(xiàn)奠定了基礎(chǔ);并通過詳細(xì)介紹段資源管理和iNode資源管理,說明了這種資源管理方法能夠自然支持快照;
[0048]2)與傳統(tǒng)快照實(shí)現(xiàn)方案相比,本發(fā)明無需對快照進(jìn)行特殊處理,同時(shí)消除了快照源與快照之間的依賴關(guān)系,有效降低了快照實(shí)現(xiàn)的復(fù)雜度;
[0049]3)同時(shí),依據(jù)分布式文件系統(tǒng)的特點(diǎn),本發(fā)明將COW特性在MDS端細(xì)化到段的層面,降低了 COW單次分裂的代價(jià);
[0050]4)該發(fā)明已為一種分布式文件系統(tǒng)實(shí)現(xiàn)了快照功能。
【專利附圖】
【附圖說明】
[0051]圖1是創(chuàng)建快照前文件的iNode資源ino_l所引用的段資源示意圖;
[0052]圖2是創(chuàng)建文件快照完成后文件和段信息示意圖;
[0053]圖3是文件ino_l修改seg_3及文件ino_l_0修改seg_2示意圖;
[0054]圖4是刪除文件ino_l后文件和段信息示意圖;
[0055]圖5是創(chuàng)建目錄快照前目錄結(jié)構(gòu)及iNode資源信息示意圖;
[0056]圖6是創(chuàng)建目錄/d_a的快照/snap_d_a示意圖;
[0057]圖7是修改/snap_d_a/d_b目錄項(xiàng)信息示意圖;
[0058]圖8是刪除/snap_d_a/d_b_ext目錄項(xiàng)示意圖。
【具體實(shí)施方式】
[0059]下面結(jié)合附圖對本發(fā)明作進(jìn)一步詳細(xì)說明。
[0060]本發(fā)明提供一種分布式文件系統(tǒng)中支持快照的元數(shù)據(jù)信息管理方法,所述方法包括以下步驟:
[0061]步驟1:對段資源進(jìn)行管理;
[0062]所述步驟I中,段資源的基本屬性包括引用計(jì)數(shù)RC (Reference Count)和分裂版本SV (Split Version);步驟I具體包括以下步驟:
[0063]步驟1-1:段布局中相應(yīng)的文件數(shù)據(jù)內(nèi)容發(fā)生改變時(shí),若引用計(jì)數(shù)RC > 1,則對段資源進(jìn)行分裂;[0064]設(shè)ino表示當(dāng)前修改文件的iNode資源,seg表示當(dāng)前修改數(shù)據(jù)內(nèi)容對應(yīng)的段資源,元數(shù)據(jù)服務(wù)器對seg進(jìn)行分裂過程如下:
[0065]I)如果seg布局相關(guān)元數(shù)據(jù)服務(wù)器空間不足,則為seg_neW構(gòu)建新布局;否則,拷貝seg給新段資源seg_new,并設(shè)置seg_new屬性RC=I, SV=O ;
[0066]2)如果seg與seg_neW布局一致且相關(guān)數(shù)據(jù)服務(wù)器支持?jǐn)?shù)據(jù)對象文件的快照,則建立seg中對應(yīng)對象文件的快照并映射給seg_new對應(yīng)對象文件;否則,拷貝seg中對應(yīng)對象文件作為seg_new的對象文件;
[0067]3) seg 屬性 RC=RC-1,SV=SV+1 ;
[0068]4) ino 弓丨用 seg_new。
[0069]步驟1-2:當(dāng)刪除文件時(shí),元數(shù)據(jù)服務(wù)器將修改相應(yīng)iNode資源引用的所有RC,使RC=RC-1 ;如果段資源的RC值為0,則通知數(shù)據(jù)服務(wù)器刪除段布局對應(yīng)的文件,并從段管理器中回收段資源。
[0070]步驟2:創(chuàng)建文件快照并對創(chuàng)建的文件快照進(jìn)行修改;
[0071]所述步驟2包括以下步驟:
[0072]步驟2-1:設(shè)ino表示文件快照源,ino_snap表示需創(chuàng)建的快照文件,則元數(shù)據(jù)服務(wù)器創(chuàng)建文件快照過程如下:
[0073]I)拷貝ino中所有段資源引用信息給ino_snap ;
[0074]2)設(shè)置ino引用的所有段資源RC屬性:RC=RC+1。
[0075]步驟2-2:創(chuàng)建文件快照完成后,對文件快照的修改依據(jù)段資源管理進(jìn)行處理。
[0076]下面以創(chuàng)建文件快照及修改文件快照為例,介紹文件快照的創(chuàng)建和段資源的管理。
[0077]創(chuàng)建快照前,文件的iNode資源ino_l所引用的段資源如圖1所示。若客戶端向MDS請求ino_l的布局信息時(shí),MDS將ino_l引用的所有段布局信息應(yīng)答給客戶端。
[0078]首先,MDS收到創(chuàng)建文件ino_l的快照文件ino_l_0請求。創(chuàng)建過程是將ino_l中所有段資源引用信息拷貝給ino_l_0,并增加ino_l引用各段資源的RC值。創(chuàng)建文件快照完成后,文件和段信息如圖2所示。
[0079]然后,客戶端要求修改文件ino_l引用的段seg_3對應(yīng)的數(shù)據(jù)。由于seg_3資源RC>1,所以,依據(jù)段資源管理操作,MDS需對seg_3進(jìn)行分裂。同樣,客戶端要求修改文件ino_l_0引用的段seg_2對應(yīng)的數(shù)據(jù),MDS也需對seg_2進(jìn)行分裂。分裂后,文件和段信息如圖3錯(cuò)誤!未找到引用源。所示,其中,seg_4由seg_3分裂而成,seg_5由seg_2分裂而成。
[0080]最后,MDS收到刪除文件ino_l請求。文件ino_l引用的seg_l、seg_2、seg_4段資源的RC值都減1,其中,seg_2和seg_4段資源RC值為O,依據(jù)段資源管理操作,將進(jìn)行有關(guān)回收處理。刪除文件ino_l后,文件和段信息如圖4所示。
[0081]步驟3:對iNode資源進(jìn)行管理;
[0082]所述步驟3中,所述iNode資源的基本屬性包括引用計(jì)數(shù)RC和分裂版本SV ;步驟3具體包括以下步驟:
[0083]步驟3-1:當(dāng)客戶端需要修改指定路徑的文件/目錄時(shí),客戶端將從根目錄開始,向元數(shù)據(jù)服務(wù)器逐級(jí)獲取該路徑上各目錄項(xiàng)的iNode資源;若遇目錄項(xiàng)的iNode資源屬性RC>1,則需要從該目錄項(xiàng)開始,執(zhí)行iNode資源的分裂處理,直到路徑上最后一級(jí)目錄項(xiàng)的iNode資源完成;
[0084]所述步驟3-1中,設(shè)ino表示當(dāng)前目錄項(xiàng)的iNode資源,ino_parent表示父目錄項(xiàng)的iNode資源,元數(shù)據(jù)服務(wù)器對ino進(jìn)行分裂的過程如下:
[0085]I)設(shè)置 ino 屬性 RC=RC-1, SV=SV+1 ;
[0086]2)拷貝ino資源信息給新iNode資源ino_new,并設(shè)置ino_new屬性RC=I, SV=O ;
[0087]3) ino_parent 引用 ino_new ;
[0088]4)由于ino_new與ino引用相同的資源,如果ino是文件類型,貝U所有引用的段資源屬性RC=RC+1 ;如果ino是目錄類型,則所有引用的iNode資源屬性RC=RC+1。
[0089]步驟3-2:當(dāng)客戶端刪除指定路徑的目錄時(shí),元數(shù)據(jù)服務(wù)器執(zhí)行刪除目錄流程;
[0090]所述步驟3-2包括以下步驟:
[0091]I)依據(jù)修改目錄處理流程,完成分裂處理(不包括ino);設(shè)ino_parent表示帶刪除目錄項(xiàng)父目錄項(xiàng)的iNode資源;
[0092]2)刪除ino_parent中對應(yīng)ino的目錄項(xiàng),并設(shè)置ino屬性RC=RC-1 ;
[0093]3)若RC值為0,則從iNode管理器中回收ino。
[0094]步驟3-3:如果客戶端刪除指定路徑的文件時(shí),依據(jù)修改目錄處理流程,完成文件所在目錄的分裂處理;然后依據(jù)段資源管理中刪除文件的處理流程,完成刪除處理。
[0095]步驟4:創(chuàng)建目錄快照并對創(chuàng)建的目錄快照進(jìn)行修改。
[0096]所述4包括以下步驟:
[0097]步驟4-1:設(shè)ino表示目錄快照源,ino_snap_parent表示目錄快照的父目錄,則元數(shù)據(jù)服務(wù)器創(chuàng)建目錄快照過程如下:
[0098]I)在ino_snap_parent中增加目錄項(xiàng),目錄項(xiàng)名稱為目錄快照名稱,目錄項(xiàng)的iNode 引用 ino ;
[0099]2)設(shè)置 ino 屬性 RC=RC+1 ;
[0100]步驟4-2:創(chuàng)建目錄快照完成后,對目錄快照的修改依據(jù)iNode資源管理進(jìn)行處理。
[0101]下面以創(chuàng)建目錄快照及修改目錄快照為例,介紹目錄快照的創(chuàng)建和iNode資源的管理。
[0102]創(chuàng)建目錄快照前,目錄結(jié)構(gòu)和iNode資源信息如圖5所示。各目錄項(xiàng)引用的iNode資源由iNode管理器負(fù)責(zé)管理。
[0103]首先,MDS接收在根目錄下創(chuàng)建目錄/d_a的快照snap_d_a請求,如圖6所示。由于快照snap_d_a與/d_a所包含的內(nèi)容相同,所以snap_d_a直接引用d_a目錄項(xiàng)的iNode資源ino_2,并增加ino_2屬性RC值。
[0104]然后,MDS接收 /snap_d_a/d_b 改名為 /snap_d_a/d_b_ext 請求。依據(jù) iNode 資源管理的處理流程,路徑中snap_d_a對應(yīng)的ino_2資源屬性RC>1,所以需要對ino_2進(jìn)行分裂,并且snap_d_a引用分裂后的iNode資源ino_6。分裂后,snap_d_a的所有目錄項(xiàng)引用的iNode資源RC值均增I (如:ino_3和ino_5的RC值為2)。
[0105]同樣,依據(jù)iNode資源管理的處理流程,將繼續(xù)對/snap_d_a/d_b引用的ino_3進(jìn)行分裂。[0106]/snap_d_a/d_b路徑中各目錄項(xiàng)分裂任務(wù)完成后,執(zhí)行改名處理。完成分裂和改名后的目錄結(jié)構(gòu)及iNode資源如圖7所示。其中ino_2和ino_3資源屬性SV值為1,表示經(jīng)過I次分裂。
[0107]最后,MDS接收刪除/snap_d_a/d_b_ext/f.dat目錄項(xiàng)請求。首先,依據(jù)iNode資源管理處理流程,檢查/snap_d_a/d_b_eXt路徑各目錄項(xiàng)并執(zhí)行分裂處理;由于各目錄項(xiàng)iNode資源屬性RC值均為1,所以無需分裂。然后,刪除f.dat目錄項(xiàng);由于刪除后,ino_4資源屬性RC=1,所以無需回收ino_4資源。刪除后的目錄結(jié)構(gòu)和iNode信息如圖8所示。
[0108]最后應(yīng)當(dāng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非對其限制,盡管參照上述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:依然可以對本發(fā)明的【具體實(shí)施方式】進(jìn)行修改或者等同替換,而未脫離本發(fā)明精神和范圍的任何修改或者等同替換,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
【權(quán)利要求】
1.一種分布式文件系統(tǒng)中支持快照的兀數(shù)據(jù)信息管理方法,其特征在于:所述方法包括以下步驟: 步驟1:對段資源進(jìn)行管理; 步驟2:創(chuàng)建文件快照并對創(chuàng)建的文件快照進(jìn)行修改; 步驟3:對iNode資源進(jìn)行管理; 步驟4:創(chuàng)建目錄快照并對創(chuàng)建的目錄快照進(jìn)行修改。
2.根據(jù)權(quán)利要求1所述的分布式文件系統(tǒng)中支持快照的元數(shù)據(jù)信息管理方法,其特征在于:所述步驟I中,段資源的基本屬性包括引用計(jì)數(shù)RC和分裂版本SV ;步驟I具體包括以下步驟: 步驟1-1:段布局中相應(yīng)的文件數(shù)據(jù)內(nèi)容發(fā)生改變時(shí),若引用計(jì)數(shù)RC > 1,則對段資源進(jìn)行分裂; 步驟1-2:當(dāng)刪除文件時(shí),元數(shù)據(jù)服務(wù)器將修改相應(yīng)iNode資源引用的所有RC,使RC=RC-1 ;如果段資源的RC值為0,則通知數(shù)據(jù)服務(wù)器刪除段布局對應(yīng)的文件,并從段管理器中回收段資源。
3.根據(jù)權(quán)利要求2所述的分布式文件系統(tǒng)中支持快照的元數(shù)據(jù)信息管理方法,其特征在于:設(shè)ino表示當(dāng)前修改文件的iNode資源,seg表示當(dāng)前修改數(shù)據(jù)內(nèi)容對應(yīng)的段資源,元數(shù)據(jù)服務(wù)器對seg進(jìn)行分裂過程如下: 1)如果seg布局相關(guān)元數(shù)據(jù)服務(wù)器空間不足,則為seg_neW構(gòu)建新布局;否則,拷貝seg給新段資源seg_new,并設(shè)置seg_new屬性RC=I, SV=O ; 2)如果seg與seg_neW布局一致且相關(guān)數(shù)據(jù)服務(wù)器支持?jǐn)?shù)據(jù)對象文件的快照,則建立seg中對應(yīng)對象文件的快照并映射給seg_new對應(yīng)對象文件;否則,拷貝seg中對應(yīng)對象文件作為seg_new的對象文件;
3)seg 屬性 RC=RC-1, SV=SV+1 ;
4)ino 弓 I用 seg_new。
4.根據(jù)權(quán)利要求1所述的分布式文件系統(tǒng)中支持快照的元數(shù)據(jù)信息管理方法,其特征在于:所述步驟2包括以下步驟: 步驟2-1:設(shè)ino表示文件快照源,ino_snap表示需創(chuàng)建的快照文件,則元數(shù)據(jù)服務(wù)器創(chuàng)建文件快照過程如下: 1)拷貝ino中所有段資源引用信息給ino_snap; 2)設(shè)置ino引用的所有段資源RC屬性:RC=RC+1。 步驟2-2:創(chuàng)建文件快照完成后,對文件快照的修改依據(jù)段資源管理進(jìn)行處理。
5.根據(jù)權(quán)利要求1所述的分布式文件系統(tǒng)中支持快照的元數(shù)據(jù)信息管理方法,其特征在于:所述步驟3中,所述iNode資源的基本屬性包括引用計(jì)數(shù)RC和分裂版本SV ;步驟3具體包括以下步驟: 步驟3-1:當(dāng)客戶端需要修改指定路徑的文件/目錄時(shí),客戶端將從根目錄開始,向元數(shù)據(jù)服務(wù)器逐級(jí)獲取該路徑上各目錄項(xiàng)的iNode資源;若遇目錄項(xiàng)的iNode資源屬性RC>1,則需要從該目錄項(xiàng)開始,執(zhí)行iNode資源的分裂處理,直到路徑上最后一級(jí)目錄項(xiàng)的iNode資源完成; 步驟3-2:當(dāng)客戶端刪除指定路徑的目錄時(shí),元數(shù)據(jù)服務(wù)器執(zhí)行刪除目錄流程;步驟3-3:如果客戶端刪除指定路徑的文件時(shí),依據(jù)修改目錄處理流程,完成文件所在目錄的分裂處理;然后依據(jù)段資源管理中刪除文件的處理流程,完成刪除處理。
6.根據(jù)權(quán)利要求5所述的分布式文件系統(tǒng)中支持快照的元數(shù)據(jù)信息管理方法,其特征在于:所述步驟3-1中,設(shè)ino表示當(dāng)前目錄項(xiàng)的iNode資源,ino_parent表示父目錄項(xiàng)的iNode資源,元數(shù)據(jù)服務(wù)器對ino進(jìn)行分裂的過程如下:
1)設(shè)置ino 屬性 RC=RC-1, SV=SV+1 ; 2)拷貝ino資源信息給新iNode資源ino_new,并設(shè)置ino_new屬性RC=I,SV=O ;
3)ino_parent 弓丨用 ino_new ; 4)由于ino_new與ino引用相同的資源,如果ino是文件類型,則所有引用的段資源屬性RC=RC+1 ;如果ino是目錄類型,則所有引用的iNode資源屬性RC=RC+1。
7.根據(jù)權(quán)利要求5所述的分布式文件系統(tǒng)中支持快照的元數(shù)據(jù)信息管理方法,其特征在于:所述步驟3-2包括以下步驟: 1)依據(jù)修改目錄處理流程,完成分裂處理;設(shè)ino_parent表示帶刪除目錄項(xiàng)父目錄項(xiàng)的iNode資源; 2)刪除ino_parent中對應(yīng)ino的目錄項(xiàng),并設(shè)置ino屬性RC=RC-1; 3)若RC值為0,則從iNode管理器中回收ino。
8.根據(jù)權(quán)利要求1所述的分布式文件系統(tǒng)中支持快照的元數(shù)據(jù)信息管理方法,其特征在于:所述4包括以下步驟: 步驟4-1:設(shè)ino表示目錄快照源,ino_snap_parent表示目錄快照的父目錄,則元數(shù)據(jù)服務(wù)器創(chuàng)建目錄快照過程如下: 1)在ino_snap_parent中增加目錄項(xiàng),目錄項(xiàng)名稱為目錄快照名稱,目錄項(xiàng)的iNode引用 ino ; 2)設(shè)置ino 屬性 RC=RC+1 ; 步驟4-2:創(chuàng)建目錄快照完成后,對目錄快照的修改依據(jù)iNode資源管理進(jìn)行處理。
【文檔編號(hào)】G06F11/14GK103678715SQ201310752681
【公開日】2014年3月26日 申請日期:2013年12月31日 優(yōu)先權(quán)日:2013年12月31日
【發(fā)明者】季旻, 郭照斌, 付根希, 李博, 苗艷超 申請人:無錫城市云計(jì)算中心有限公司