欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種分布式文件系統(tǒng)動態(tài)元數(shù)據(jù)管理方法及系統(tǒng)的制作方法

文檔序號:7719774閱讀:168來源:國知局
專利名稱:一種分布式文件系統(tǒng)動態(tài)元數(shù)據(jù)管理方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種分布式文件系統(tǒng)動態(tài)元數(shù)據(jù)管理方法及系統(tǒng),屬于分布式存儲系
統(tǒng)體系結(jié)構(gòu)技術(shù)領(lǐng)域。
背景技術(shù)
現(xiàn)有的分布式文件系統(tǒng)通常包括兩個部分元數(shù)據(jù)服務(wù)器和智能存儲節(jié)點。元數(shù) 據(jù)服務(wù)器負(fù)責(zé)處理元數(shù)據(jù)相關(guān)的請求和權(quán)限管理。元數(shù)據(jù)服務(wù)器的設(shè)計從系統(tǒng)架構(gòu)上可以 分為兩類集中式和分布式。對于多元數(shù)據(jù)服務(wù)器架構(gòu),元數(shù)據(jù)在這些服務(wù)器上的組織和劃 分是決定元數(shù)據(jù)服務(wù)性能和擴展性的重要因素?,F(xiàn)有的多元數(shù)據(jù)服務(wù)器一般采用三種方式 來組織元數(shù)據(jù)。 靜態(tài)子樹劃分該方法將不同的目錄子樹固定地劃分到不同的元數(shù)據(jù)服務(wù)器進行 處理。由于元數(shù)據(jù)服務(wù)器間維護的目錄子樹沒有交叉性,可以方便的進行擴展和一致性的 維護,但不能根據(jù)負(fù)載變化來對動態(tài)調(diào)整元數(shù)據(jù)的分布,也無法處理熱點目錄的訪問問題。
基于hash的劃分該方法根據(jù)文件路徑將文件的元數(shù)據(jù)劃歸到相應(yīng)的元數(shù)據(jù)服 務(wù)器進行管理。通過精心設(shè)計的hash函數(shù),系統(tǒng)的請求被均勻分散到各元數(shù)據(jù)服務(wù)器上。 另外,因為同一目錄下的文件可能被hash到不同的元數(shù)據(jù)服務(wù)器,所以對某一目錄下文件 的反復(fù)操作不會造成單個元數(shù)據(jù)服務(wù)器的性能瓶頸。但hash方法在擴展性和利用文件數(shù) 據(jù)的局部性方面還有許多問題,當(dāng)元數(shù)據(jù)服務(wù)器數(shù)量變化時,為了保證元數(shù)據(jù)的均勻分布, 將涉及到大量的元數(shù)據(jù)的遷移。由于同一目錄下的文件元數(shù)據(jù)分布在不同地方,文件局部 性也不能得到充分的利用,對于熱點文件的訪問同樣無法良好應(yīng)對。 動態(tài)子樹劃分該方法將不同的目錄子樹劃分到不同的元數(shù)據(jù)服務(wù)器進行維護, 但元數(shù)據(jù)是保存在共享的存儲空間中,元數(shù)據(jù)服務(wù)器僅緩存劃分到其上的目錄子樹信息, 并對其進行維護。目錄子樹在元數(shù)據(jù)服務(wù)器上的劃分不是固定的,可以根據(jù)需要動態(tài)調(diào)整 元數(shù)據(jù)服務(wù)器緩存的目錄子樹的內(nèi)容。當(dāng)元數(shù)據(jù)服務(wù)器數(shù)量發(fā)生變化時,需要遷移的數(shù)據(jù) 只是緩存的內(nèi)容,極大地減少了傳輸?shù)臄?shù)據(jù)量,通過遷移亦可以方便的進行負(fù)載均衡。故動 態(tài)子樹劃分方法對系統(tǒng)的性能和擴展性都有很大的提高。但由于對某一文件的請求仍是全 部集中到同一臺服務(wù)器,故現(xiàn)有的動態(tài)子樹劃分算法對熱點文件的訪問問題仍不能良好應(yīng) 對。 因此,在現(xiàn)有的元數(shù)據(jù)管理方法中存在不能根據(jù)負(fù)載變化來對動態(tài)調(diào)整元數(shù)據(jù)的 分布、不能對元數(shù)據(jù)服務(wù)器平滑擴展、無法處理熱點目錄的訪問、不能良好應(yīng)對單個熱點文 件的訪問的問題。

發(fā)明內(nèi)容
本發(fā)明提供了一種分布式文件系統(tǒng)動態(tài)元數(shù)據(jù)管理方法及系統(tǒng),以解決在現(xiàn)有的 元數(shù)據(jù)管理方法中存在不能根據(jù)負(fù)載變化來對動態(tài)調(diào)整元數(shù)據(jù)的分布、不能對元數(shù)據(jù)服務(wù) 器平滑擴展、無法處理熱點目錄的訪問、不能良好應(yīng)對單個熱點文件的訪問的問題。
—種分布式文件系統(tǒng)動態(tài)元數(shù)據(jù)管理方法,包括 A.元數(shù)據(jù)服務(wù)器根據(jù)元數(shù)據(jù)的訪問情況對元數(shù)據(jù)在各元數(shù)據(jù)服務(wù)器上的分布進 行動態(tài)劃分; B.元數(shù)據(jù)服務(wù)器根據(jù)客戶端的操作請求,對元數(shù)據(jù)進行管理。
所述步驟A還進一步包括 元數(shù)據(jù)服務(wù)器定時更新并向班長元數(shù)據(jù)服務(wù)器上報當(dāng)前元數(shù)據(jù)服務(wù)器的整體負(fù) 載信息; 班長元數(shù)據(jù)服務(wù)器根據(jù)接收到的負(fù)載信息,向負(fù)載大于全局平均負(fù)載的過載元數(shù) 據(jù)服務(wù)器發(fā)送轉(zhuǎn)移請求; 過載元數(shù)據(jù)服務(wù)器根據(jù)所述轉(zhuǎn)移請求,將預(yù)定數(shù)量的負(fù)載量發(fā)送給輕載元數(shù)據(jù)服 務(wù)器; 輕載元數(shù)據(jù)服務(wù)器接收目錄子樹,并在接收完成后向過載元數(shù)據(jù)服務(wù)器發(fā)送接收 完成的確認(rèn)信息; 過載元數(shù)據(jù)服務(wù)器根據(jù)所述接收完成的確認(rèn)信息刪除相應(yīng)的目錄子樹并更新所 述目錄子樹的祖先節(jié)點的負(fù)載信息。
所述步驟B還進一步包括 客戶端將待創(chuàng)建、待讀取或待刪除的目錄信息,以及待創(chuàng)建、待打開、待關(guān)閉、待刪
除或待重命名的文件信息發(fā)送給通過預(yù)定的選擇函數(shù)確定的元數(shù)據(jù)服務(wù)器; 元數(shù)據(jù)服務(wù)器根據(jù)待創(chuàng)建、待讀取或待刪除的目錄信息,以及待創(chuàng)建、待打開、待
關(guān)閉、待刪除或待重命名的文件信息在緩存中創(chuàng)建所述待創(chuàng)建的目錄信息、讀取緩存中的
所述待讀取的目錄信息、從緩存中刪除所述待刪除的目錄信息、以及在緩存中創(chuàng)建所述待
創(chuàng)建的文件信息、打開所述待打開的文件信息、關(guān)閉所述待關(guān)閉的文件信息、從緩存中刪除
所述待刪除的文件信息、在緩存中創(chuàng)建所述待重命名文件的新路徑信息并刪除所述待重命
名文件的舊的路徑信息,并返回操作結(jié)果; 客戶端根據(jù)接收到的操作結(jié)果更新緩存,并向用戶返回結(jié)果。
—種分布式文件系統(tǒng)動態(tài)元數(shù)據(jù)管理系統(tǒng),包括 元數(shù)據(jù)服務(wù)器,用于定時更新并向班長元數(shù)據(jù)服務(wù)器上報當(dāng)前元數(shù)據(jù)服務(wù)器的整 體負(fù)載信息; 班長元數(shù)據(jù)服務(wù)器,用于根據(jù)接收到的負(fù)載信息,向負(fù)載大于全局平均負(fù)載的過 載元數(shù)據(jù)服務(wù)器發(fā)送轉(zhuǎn)移請求; 過載元數(shù)據(jù)服務(wù)器,用于根據(jù)所述轉(zhuǎn)移請求,將預(yù)定數(shù)量的負(fù)載量發(fā)送給輕載元 數(shù)據(jù)服務(wù)器,并根據(jù)所述接收完成的確認(rèn)信息刪除相應(yīng)的目錄子樹并更新所述目錄子樹的 祖先節(jié)點的負(fù)載信息; 輕載元數(shù)據(jù)服務(wù)器,用于接收目錄子樹,并在接收完成后向過載元數(shù)據(jù)服務(wù)器發(fā) 送接收完成的確認(rèn)信息。 本發(fā)明通過將過載的元數(shù)據(jù)服務(wù)器的部分目錄子樹遷移到輕載的元數(shù)據(jù)服務(wù)器, 實現(xiàn)了動態(tài)調(diào)整元數(shù)據(jù)的分布,能夠?qū)υ獢?shù)據(jù)服務(wù)器平滑擴展、有效的進行負(fù)載均衡,為熱 點目錄的訪問提供了高效的訪問策略;另外本發(fā)明還通過在主元數(shù)據(jù)服務(wù)器之外保存只讀 的元數(shù)據(jù)副本,可以應(yīng)對大規(guī)模的并發(fā)讀操作,解決熱點文件的訪問問題,對于元數(shù)據(jù)的寫操作則只能在主元數(shù)據(jù)服務(wù)器完成,可以保證系統(tǒng)良好的一致性。


圖1是本發(fā)明的具體實施方式
提供的通過元數(shù)據(jù)服務(wù)器執(zhí)行動態(tài)子樹劃分的流 程示意圖; 圖2是本發(fā)明的具體實施方式
提供的具體的動態(tài)子樹劃分方式的示意圖;
圖3是本發(fā)明的具體實施方式
提供的創(chuàng)建目錄的執(zhí)行流程示意圖;
圖4是本發(fā)明的具體實施方式
提供的元數(shù)據(jù)客戶端緩存的元數(shù)據(jù)分布示意圖;
圖5是本發(fā)明的具體實施方式
提供的一種分布式文件系統(tǒng)動態(tài)元數(shù)據(jù)管理系統(tǒng) 的結(jié)構(gòu)示意圖; 圖6是本發(fā)明的具體實施方式
提供的元數(shù)據(jù)管理系統(tǒng)的整體結(jié)構(gòu)示意圖;
圖7是本發(fā)明的具體實施方式
提供的元數(shù)據(jù)服務(wù)器內(nèi)部結(jié)構(gòu)示意圖。
具體實施例方式
本發(fā)明的具體實施方式
提供了一種分布式文件系統(tǒng)動態(tài)元數(shù)據(jù)管理方法,包括元 數(shù)據(jù)服務(wù)器根據(jù)元數(shù)據(jù)的訪問情況對元數(shù)據(jù)在各元數(shù)據(jù)服務(wù)器上的分布進行動態(tài)劃分以 及元數(shù)據(jù)服務(wù)器根據(jù)客戶端的操作請求,對元數(shù)據(jù)進行管理。 進一步地,對元數(shù)據(jù)的動態(tài)劃分還包括通過元數(shù)據(jù)服務(wù)器定時更新并向班長元數(shù) 據(jù)服務(wù)器上報當(dāng)前元數(shù)據(jù)服務(wù)器的整體負(fù)載信息的步驟;通過班長元數(shù)據(jù)服務(wù)器根據(jù)接收 到的負(fù)載信息,向負(fù)載大于全局平均負(fù)載的過載元數(shù)據(jù)服務(wù)器發(fā)送轉(zhuǎn)移請求的步驟;通過 過載元數(shù)據(jù)服務(wù)器根據(jù)所述轉(zhuǎn)移請求,將預(yù)定數(shù)量的負(fù)載量發(fā)送給輕載元數(shù)據(jù)服務(wù)器的步 驟;通過輕載元數(shù)據(jù)服務(wù)器接收目錄子樹,并在接收完成后向過載元數(shù)據(jù)服務(wù)器發(fā)送接收 完成的確認(rèn)信息的步驟;通過過載元數(shù)據(jù)服務(wù)器根據(jù)所述接收完成的確認(rèn)信息刪除相應(yīng)的
目錄子樹并更新所述目錄子樹的祖先節(jié)點的負(fù)載信息的步驟。 以及,對元數(shù)據(jù)管理還包括客戶端將待創(chuàng)建、待讀取、待刪除或待重命名的目錄信 息或文件信息發(fā)送給通過預(yù)定的選擇函數(shù)確定的元數(shù)據(jù)服務(wù)器;根據(jù)待創(chuàng)建、待讀取、待刪 除或待重命名的目錄信息或文件信息在緩存中創(chuàng)建所述待創(chuàng)建的目錄信息或文件信息、讀 取緩存中的所述待讀取目錄信息或文件信息、從緩存中刪除所述待刪除的目錄信息或文件 信息、以及在緩存中創(chuàng)建所述待重命名文件的新路徑信息并刪除所述待重命名文件的舊的 路徑信息,并返回操作結(jié)果。其中,在緩存中創(chuàng)建所述待創(chuàng)建的目錄信息或文件信息、讀取 緩存中的所述帶讀取目錄信息或文件信息、從緩存中刪除所述待刪除的目錄信息或文件信 息、以及在緩存中創(chuàng)建所述待重命名文件的新路徑信息并刪除所述待重命名文件的舊的路 徑信息,過程包括通過預(yù)定的查找函數(shù)確定待創(chuàng)建、待讀取、待刪除或待重命名的目錄信 息或文件信息對應(yīng)的目錄節(jié)點,若相應(yīng)的目錄節(jié)點對應(yīng)的主元數(shù)據(jù)服務(wù)器不是當(dāng)前元數(shù)據(jù) 服務(wù)器,則將創(chuàng)建、讀取、刪除或重命名目錄信息或文件信息的請求轉(zhuǎn)發(fā)到該目錄節(jié)點的主 元數(shù)據(jù)服務(wù)器;在相應(yīng)目錄節(jié)點的主元數(shù)據(jù)服務(wù)器的緩存中,創(chuàng)建,讀取,刪除或重命名要 操作的目錄或者文件;將創(chuàng)建、刪除或重命名的目錄信息或文件信息的操作更新到元數(shù)據(jù) 操作日志中;元數(shù)據(jù)服務(wù)器定期將日志中未寫入到存儲節(jié)點的內(nèi)容寫入到存儲節(jié)點。以及, 元數(shù)據(jù)客戶端請求打開或關(guān)閉某一文件,過程包括元數(shù)據(jù)客戶端將待打開或待關(guān)閉的文件信息發(fā)送給通過預(yù)定的選擇函數(shù)確定的元數(shù)據(jù)服務(wù)器;元數(shù)據(jù)服務(wù)器根據(jù)待打開或待關(guān) 閉的文件信息在緩存中查找到相應(yīng)的文件節(jié)點,按照客戶端的操作要求在緩存中更新的所 述待打開文件信息對應(yīng)的文件索引節(jié)點上鎖的狀態(tài)、記錄客戶端的會話信息、或者釋放客 戶端在所述待關(guān)閉文件信息對應(yīng)的索引節(jié)點上的權(quán)限,并返回操作結(jié)果。另外,在根據(jù)待打 開的文件信息更新緩存中的所述待打開文件信息對應(yīng)的文件索引節(jié)點上鎖的狀態(tài)的過程 中包括通過預(yù)定的查找函數(shù)確定待打開的文件信息對應(yīng)的索引節(jié)點,若文件信息對應(yīng)的 打開方式中涉及到文件信息的更新,且該節(jié)點的主元數(shù)據(jù)服務(wù)器不是當(dāng)前元數(shù)據(jù)服務(wù)器, 則將打開文件信息的請求轉(zhuǎn)發(fā)到主元數(shù)據(jù)服務(wù)器。 在本具體實施方式
中,如圖1所示,通過元數(shù)據(jù)服務(wù)器執(zhí)行動態(tài)子書劃分的過程 具體可以包括 步驟ll,元數(shù)據(jù)服務(wù)器根據(jù)元數(shù)據(jù)客戶端的操作更新并上報目錄子樹的負(fù)載信 息,并定時向班長元數(shù)據(jù)服務(wù)器上報元數(shù)據(jù)服務(wù)器的整體熱度; 步驟12,班長元數(shù)據(jù)服務(wù)器定期檢查所有元數(shù)據(jù)服務(wù)器集群的熱度分布情況,并 向熱度超出平均值的元數(shù)據(jù)服務(wù)器0發(fā)出遷移熱度為P的目錄子樹到另一熱度低于平均值 的元數(shù)據(jù)服務(wù)器U的請求; 步驟13,元數(shù)據(jù)服務(wù)器0根據(jù)班長元數(shù)據(jù)服務(wù)器發(fā)送的轉(zhuǎn)移請求,從其維護的目 錄子樹中選擇訪問量為P的目錄子樹S ; 步驟14,元數(shù)據(jù)服務(wù)器0將目錄子樹S打包并發(fā)送到目標(biāo)元數(shù)據(jù)服務(wù)器U ;
步驟15,目標(biāo)元數(shù)據(jù)服務(wù)器U將收到的數(shù)據(jù)包解包,加入到其維護的緩存中,并向 元數(shù)據(jù)服務(wù)器0發(fā)送確認(rèn)消息; 步驟16,元數(shù)據(jù)服務(wù)器0收到確認(rèn)消息,刪除目錄子樹S并更新目錄子樹S的祖先 節(jié)點的訪問量信息; 步驟17,目錄子樹S的根對應(yīng)的索引節(jié)點向其它元數(shù)據(jù)服務(wù)器發(fā)送緩存失效信 息,將目錄子樹S的根對應(yīng)的目錄的班長元數(shù)據(jù)服務(wù)器改為U。 進一步地,對于元數(shù)據(jù)的管理還可以包括創(chuàng)建、讀取和刪除目錄信息,創(chuàng)建、打開、 關(guān)閉、刪除文件信息,以及執(zhí)行重命名等操作,下面通過說明書附圖詳細(xì)說明操作的過程。
創(chuàng)建目錄信息具體可以包括 步驟21,在元數(shù)據(jù)客戶端輸入用戶希望創(chuàng)建的目錄信息,包括目錄路徑、目錄的模 式,通過元數(shù)據(jù)客戶端緩存,將目錄路徑轉(zhuǎn)化為絕對路徑,并讀取緩存的用戶ID和所在組
ID ; 步驟22,利用函數(shù)A選擇一臺元數(shù)據(jù)服務(wù)器,將目錄路徑、目錄模式、用戶ID和所 在組ID發(fā)往該元數(shù)據(jù)服務(wù)器; 步驟23,元數(shù)據(jù)服務(wù)器收到請求后,利用函數(shù)B找到該目錄所在的目錄節(jié)點,若該
節(jié)點的主元數(shù)據(jù)服務(wù)器不是當(dāng)前元數(shù)據(jù)服務(wù)器,則將請求轉(zhuǎn)發(fā)到主元數(shù)據(jù)服務(wù)器; 步驟24,主元數(shù)據(jù)服務(wù)器根據(jù)目錄路徑、目錄模式、用戶ID和所在組ID創(chuàng)建目錄
項、索引節(jié)點和目錄節(jié)點,并將新創(chuàng)建的元數(shù)據(jù)信息提交到更新日志中,更新日志會定期清
理將并其中的臟數(shù)據(jù)提交到元數(shù)據(jù)存儲節(jié)點; 步驟25,新創(chuàng)建的元數(shù)據(jù)提交到日志成功后,元數(shù)據(jù)服務(wù)器將新創(chuàng)建的目錄項、索 引節(jié)點和目錄節(jié)點加入到服務(wù)器緩存中,向元數(shù)據(jù)客戶端發(fā)送回復(fù)消息,回復(fù)消息包括從根節(jié)點到目錄節(jié)點經(jīng)過的文件節(jié)點信息,以及操作結(jié)果; 步驟26,元數(shù)據(jù)客戶端將經(jīng)過的路徑信息加入到緩存中,將操作結(jié)果返回給用戶。
讀取目錄信息具體可以包括 步驟31,在元數(shù)據(jù)客戶端輸入用戶希望讀取的目錄路徑,通過元數(shù)據(jù)客戶端緩存, 將目錄路徑轉(zhuǎn)化為絕對路徑,并讀取緩存的用戶ID和所在組ID ; 步驟32,利用函數(shù)A選擇一臺元數(shù)據(jù)服務(wù)器,將目錄路徑、用戶ID和所在組ID發(fā) 往該元數(shù)據(jù)服務(wù)器; 步驟33,元數(shù)據(jù)服務(wù)器收到請求后,利用函數(shù)B找到該目錄所在的目錄節(jié)點,若當(dāng) 前元數(shù)據(jù)服務(wù)器緩存的目錄內(nèi)容是完整的,則進入步驟34,否則若該節(jié)點的主元數(shù)據(jù)服務(wù) 器不是當(dāng)前元數(shù)據(jù)服務(wù)器,則將請求轉(zhuǎn)發(fā)到主元數(shù)據(jù)服務(wù)器并重新執(zhí)行步驟33 ;否則從元 數(shù)據(jù)存儲節(jié)點讀取相應(yīng)的目錄文件內(nèi)容,進入步驟34 ; 步驟34,元數(shù)據(jù)服務(wù)器向元數(shù)據(jù)客戶端發(fā)送回復(fù)消息,回復(fù)消息除了包含目錄文 件的內(nèi)容外,還包括從根節(jié)點到目錄節(jié)點經(jīng)過的文件節(jié)點信息; 步驟35,元數(shù)據(jù)客戶端將經(jīng)過的路徑信息加入到緩存中,將操作結(jié)果返回給客戶。
刪除目錄信息具體可以包括 步驟41,在元數(shù)據(jù)客戶端輸入用戶希望刪除的目錄路徑,通過元數(shù)據(jù)客戶端緩存, 將目錄路徑轉(zhuǎn)化為絕對路徑,讀取緩存的用戶ID和所在組ID ; 步驟42,利用函數(shù)A選擇一臺元數(shù)據(jù)服務(wù)器,將目錄路徑、用戶ID和所在組ID發(fā) 往該元數(shù)據(jù)服務(wù)器; 步驟43,元數(shù)據(jù)服務(wù)器收到請求后,利用函數(shù)B找到該目錄所在的目錄節(jié)點,若該 節(jié)點的主元數(shù)據(jù)服務(wù)器不是當(dāng)前元數(shù)據(jù)服務(wù)器,則將請求轉(zhuǎn)發(fā)到主元數(shù)據(jù)服務(wù)器并重新執(zhí) 行步驟43 ;否則進入步驟44 ; 步驟44,主元數(shù)據(jù)服務(wù)器對刪除目錄操作進行檢查,若無法刪除,則設(shè)置操作結(jié)果 為失敗,進入步驟45 ;否則向更新日志提交刪除操作,若提交成功,則從緩存中刪除相應(yīng)的 目錄節(jié)點,設(shè)置操作結(jié)果為成功,進入步驟45 ;否則設(shè)置操作結(jié)果為失敗,進入B步驟45 ;
步驟45,元數(shù)據(jù)服務(wù)器向元數(shù)據(jù)客戶端發(fā)送回復(fù)消息,回復(fù)消息除了包含操作結(jié) 果外,還包括從根節(jié)點到目錄節(jié)點經(jīng)過的文件節(jié)點信息; 步驟46,客戶端將經(jīng)過的路徑信息加入到緩存中,將操作結(jié)果返回給客戶。
創(chuàng)建文件信息具體可以包括 步驟51,在元數(shù)據(jù)客戶端輸入用戶希望創(chuàng)建的文件信息,包括文件路徑、文件的模 式,通過元數(shù)據(jù)客戶端緩存,將文件路徑轉(zhuǎn)化為絕對路徑,并讀取緩存的用戶ID和所在組
ID ; 步驟52,利用函數(shù)A選擇一臺元數(shù)據(jù)服務(wù)器,將文件路徑、文件模式、用戶ID和所 在組ID發(fā)往該元數(shù)據(jù)服務(wù)器; 步驟53,元數(shù)據(jù)服務(wù)器收到請求后,利用函數(shù)B找到該目標(biāo)文件所在的目錄節(jié)點, 若該節(jié)點的主元數(shù)據(jù)服務(wù)器不是當(dāng)前元數(shù)據(jù)服務(wù)器,則將請求轉(zhuǎn)發(fā)到主元數(shù)據(jù)服務(wù)器,重 新執(zhí)行步驟53 ;否則進入步驟54 ; 步驟54,主元數(shù)據(jù)服務(wù)器對創(chuàng)建文件操作進行檢查,若無法創(chuàng)建,則設(shè)置操作結(jié)果 為失敗,進入步驟55 ;否則向更新日志提交創(chuàng)建操作,若提交成功,則將新創(chuàng)建的文件節(jié)點和目錄項加入緩存中,設(shè)置操作結(jié)果為成功,進入步驟55 ;否則設(shè)置操作結(jié)果為失敗,進入 步驟55 ; 步驟55,元數(shù)據(jù)服務(wù)器向元數(shù)據(jù)客戶端發(fā)送回復(fù)消息,回復(fù)消息除了包含操作結(jié) 果外,還包括從根節(jié)點到目錄節(jié)點經(jīng)過的文件節(jié)點信息; 步驟56,元數(shù)據(jù)客戶端將經(jīng)過的路徑信息加入到緩存中,將操作結(jié)果返回給客戶。
打開文件信息具體可以包括 步驟61,在元數(shù)據(jù)客戶端輸入用戶希望打開的文件信息,包括文件路徑、打開文件 的方式、文件的模式,通過元數(shù)據(jù)客戶端緩存,將文件路徑轉(zhuǎn)化為絕對路徑,讀取緩存的用 戶ID和所在組ID ; 步驟62,利用函數(shù)A選擇一臺元數(shù)據(jù)服務(wù)器,將文件路徑、打開文件的方式、文件 模式、用戶ID和所在組ID發(fā)往該元數(shù)據(jù)服務(wù)器; 步驟63,元數(shù)據(jù)服務(wù)器收到請求后,利用函數(shù)B找到該文件所對應(yīng)的索引節(jié)點,若
文件的打開方式中涉及到對文件的更新,且該節(jié)點的主元數(shù)據(jù)服務(wù)器不是當(dāng)前元數(shù)據(jù)服務(wù)
器,則將請求轉(zhuǎn)發(fā)到主元數(shù)據(jù)服務(wù)器,重新執(zhí)行步驟63 ;否則進入步驟64 ; 步驟64,元數(shù)據(jù)服務(wù)器對打開文件操作進行檢查,若無法打開,則設(shè)置操作結(jié)果為
失敗,進入步驟65;否則在緩存中更新文件索引節(jié)點上鎖的狀態(tài),并記錄下客戶端的會話
信息,設(shè)置操作結(jié)果為成功,進入步驟65 ; 步驟65,元數(shù)據(jù)服務(wù)器向元數(shù)據(jù)客戶端發(fā)送回復(fù)消息,回復(fù)消息除了包含操作結(jié) 果以及相應(yīng)的文件鎖的狀態(tài)外,還包括從根節(jié)點到目錄節(jié)點經(jīng)過的文件節(jié)點信息;
步驟66,元數(shù)據(jù)客戶端將經(jīng)過的路徑信息加入到緩存中,將操作結(jié)果返回給客戶。
關(guān)閉文件信息具體可以包括 步驟71,在元數(shù)據(jù)客戶端輸入用戶希望關(guān)閉的文件描述字,通過元數(shù)據(jù)客戶端緩 存,將文件描述字轉(zhuǎn)化為絕對路徑,讀取緩存的用戶ID和所在組ID ; 步驟72,向所有元數(shù)據(jù)客戶端在其上的該文件節(jié)點有權(quán)限的元數(shù)據(jù)服務(wù)器發(fā)送請 求消息,請求消息包括文件路徑、用戶ID和所在組ID,以及要求關(guān)閉文件的操作;
步驟73,元數(shù)據(jù)服務(wù)器收到請求后,按照文件路徑依次解析找到該目標(biāo)文件所對 應(yīng)的索引節(jié)點; 步驟74,釋放元數(shù)據(jù)客戶端在該索引節(jié)點上的權(quán)限; 步驟75,元數(shù)據(jù)服務(wù)器向元數(shù)據(jù)客戶端發(fā)送回復(fù)消息,回復(fù)消息除了操作結(jié)果外, 還包括從根節(jié)點到目錄節(jié)點經(jīng)過的文件節(jié)點信息; 步驟76,元數(shù)據(jù)客戶端將經(jīng)過的路徑信息加入到緩存中,將操作結(jié)果返回給客戶。
刪除文件信息具體可以包括 步驟81,在元數(shù)據(jù)客戶端輸入用戶希望刪除的文件路徑,通過元數(shù)據(jù)客戶端緩存, 將文件路徑轉(zhuǎn)化為絕對路徑,讀取緩存的用戶ID和所在組ID ; 步驟82,利用函數(shù)A選擇一臺元數(shù)據(jù)服務(wù)器,將文件路徑、用戶ID和所在組ID發(fā) 往該元數(shù)據(jù)服務(wù)器; 步驟83,元數(shù)據(jù)服務(wù)器收到請求后,利用函數(shù)B找到該目標(biāo)目錄所在的目錄節(jié)點, 若該節(jié)點的主元數(shù)據(jù)服務(wù)器不是當(dāng)前元數(shù)據(jù)服務(wù)器,則將請求轉(zhuǎn)發(fā)到主元數(shù)據(jù)服務(wù)器;
步驟84,主元數(shù)據(jù)服務(wù)器對刪除文件操作進行檢查,若無法刪除,則設(shè)置操作結(jié)果為失敗,進入步驟85;否則向更新日志提交刪除操作,若提交成功,則刪除緩存中的文件節(jié)
點和目錄項,設(shè)置操作結(jié)果為成功,進入步驟85 ;否則設(shè)置操作結(jié)果為失敗,進入步驟85 ; 步驟85,元數(shù)據(jù)服務(wù)器向元數(shù)據(jù)客戶端發(fā)送回復(fù)消息,回復(fù)消息除了操作結(jié)果外, 還包括從根節(jié)點到目錄節(jié)點經(jīng)過的文件節(jié)點信息; 步驟86,元數(shù)據(jù)客戶端將經(jīng)過的路徑信息加入到緩存中,將操作結(jié)果返回給客戶。
執(zhí)行重命名操作具體可以包括 步驟91,在元數(shù)據(jù)客戶端輸入用戶希望重命名的文件路徑,以及新的文件路徑,通 過元數(shù)據(jù)客戶端緩存,將兩個文件路徑轉(zhuǎn)化為絕對路徑,讀取緩存的用戶ID和所在組ID ;
步驟92,利用函數(shù)A選擇一臺元數(shù)據(jù)服務(wù)器,將舊的文件路徑,新的文件路徑,用 戶ID和所在組ID發(fā)往該元數(shù)據(jù)服務(wù)器; 步驟93,元數(shù)據(jù)服務(wù)器收到請求后,利用函數(shù)B找到舊文件路徑所在的目錄節(jié)點, 若該節(jié)點的主元數(shù)據(jù)服務(wù)器不是當(dāng)前元數(shù)據(jù)服務(wù)器,則將請求轉(zhuǎn)發(fā)到該節(jié)點的主元數(shù)據(jù)服 務(wù)器; 步驟94,利用函數(shù)B找到舊文件路徑所在的目錄節(jié)點,若該節(jié)點的主元數(shù)據(jù)服務(wù) 器不是當(dāng)前元數(shù)據(jù)服務(wù)器,則將請求轉(zhuǎn)發(fā)到該節(jié)點的主元數(shù)據(jù)服務(wù)器; 步驟95,元數(shù)據(jù)服務(wù)器向目標(biāo)元數(shù)據(jù)服務(wù)器發(fā)出新增操作,目標(biāo)元數(shù)據(jù)服務(wù)器對 新增操作進行檢查,若無法新增,則向元數(shù)據(jù)服務(wù)器回復(fù)新增操作失敗,進入步驟96 ;否則 向更新日志提交新增操作,若提交成功,則在緩存中添加新創(chuàng)建的目錄項,向元數(shù)據(jù)服務(wù)器 回復(fù)新增成功,進入步驟96 ;否則向元數(shù)據(jù)服務(wù)器回復(fù)新增操作失敗,進入步驟96 ;
步驟96,元數(shù)據(jù)服務(wù)器處理目標(biāo)元數(shù)據(jù)服務(wù)器的回復(fù)消息,若消息為新增操作失 敗,則設(shè)置操作結(jié)果為失敗,進入步驟99;否則即新增操作成功,進入步驟97,對原有的文 件路徑進行刪除; 步驟97,元數(shù)據(jù)服務(wù)器對刪除操作進行檢查,若無法刪除,則設(shè)置操作結(jié)果為失 敗,進入步驟98 ;否則向更新日志提交刪除操作,若提交成功,則在緩存中刪除原有的目錄 項,設(shè)置操作結(jié)果為成功,進入步驟99 ;否則設(shè)置操作結(jié)果為失敗,進入步驟99 ;
步驟98,元數(shù)據(jù)服務(wù)器向目標(biāo)元數(shù)據(jù)服務(wù)器發(fā)出撤銷新增操作,目標(biāo)元數(shù)據(jù)服務(wù) 器取消步驟95執(zhí)行的新增操作,進入步驟99 ; 步驟99,元數(shù)據(jù)服務(wù)器向元數(shù)據(jù)客戶端發(fā)送回復(fù)消息,回復(fù)消息除了操作結(jié)果外, 還包括從根節(jié)點到目錄節(jié)點經(jīng)過的文件節(jié)點信息;元數(shù)據(jù)客戶端將經(jīng)過的路徑信息加入到 緩存中,將操作結(jié)果返回給客戶。 在上述操作中,相應(yīng)的函數(shù)A是根據(jù)元數(shù)據(jù)客戶端緩存和輸入的文件路徑選擇合 適的元數(shù)據(jù)服務(wù)器,其執(zhí)行以下操作 步驟A1,若元數(shù)據(jù)客戶端沒有緩存任何文件節(jié)點的信息,則隨機選擇一臺元數(shù)據(jù) 服務(wù)器,將該元數(shù)據(jù)服務(wù)器的標(biāo)識符返回; 步驟A2,從根路徑開始,在元數(shù)據(jù)客戶端緩存中逐層查找目標(biāo)路徑,若找到該目標(biāo) 路徑代表的文件節(jié)點,則將該文件節(jié)點所在的元數(shù)據(jù)服務(wù)器的標(biāo)識符返回;若沒找到該文 件路徑代表的文件節(jié)點,則將該路徑中已知的最長文件路徑所在的元數(shù)據(jù)服務(wù)器標(biāo)識符返 回。 相應(yīng)的函數(shù)B在元數(shù)據(jù)服務(wù)器上是根據(jù)輸入的文件路徑查找相應(yīng)的文件節(jié)點,其執(zhí)行以下操作 步驟B1,逐層解析輸入的文件路徑,若能找到目標(biāo)文件節(jié)點,則返回該文件節(jié)點; 步驟B2,若在解析的過程中,某一文件節(jié)點不在當(dāng)前元數(shù)據(jù)服務(wù)器緩存中,若當(dāng)前
元數(shù)據(jù)服務(wù)器為該文件節(jié)點的主元數(shù)據(jù)服務(wù)器,則從元數(shù)據(jù)存儲節(jié)點中讀取該文件節(jié)點的
信息,加入到緩存中,繼續(xù)解析;若當(dāng)前元數(shù)據(jù)服務(wù)器不是該文件節(jié)點的主元數(shù)據(jù)服務(wù)器,
則向主元數(shù)據(jù)服務(wù)器發(fā)出消息,請求解析路徑中剩余的節(jié)點信息,當(dāng)前元數(shù)據(jù)服務(wù)器將收
到的回復(fù)信息加入到緩存中,返回請求的文件節(jié)點。 本具體實施方式
提供的一種元數(shù)據(jù)管理方法,如圖2所示,采用動態(tài)子樹劃分的 方式來管理元數(shù)據(jù),每臺元數(shù)據(jù)服務(wù)器緩存并維護部分元數(shù)據(jù)信息,每臺元數(shù)據(jù)服務(wù)器維 護的元數(shù)據(jù)信息可以動態(tài)變化,可以有效的擴展和進行負(fù)載均衡;采用多可讀副本的方法, 可以有效的處理大規(guī)模訪問和熱點文件的問題;元數(shù)據(jù)副本只用于讀操作,對于元數(shù)據(jù)的 更新只能在主元數(shù)據(jù)服務(wù)器上進行,可以保證良好的數(shù)據(jù)一致性。 圖2是一種可能的動態(tài)子樹劃分方式,圖中兩臺元數(shù)據(jù)服務(wù)器維護不同的目錄子 樹而又有部分重疊。元數(shù)據(jù)服務(wù)器1是目錄/usr/test/的主元數(shù)據(jù)服務(wù)器,其負(fù)責(zé)以目 錄/usr/test/為根的子樹的維護。元數(shù)據(jù)服務(wù)器0則是其余目錄子樹的主元數(shù)據(jù)服務(wù)器。 在元數(shù)據(jù)服務(wù)器1上仍保留從根到/usr/test/中間經(jīng)過的節(jié)點的部分信息,用于加快到/ usr/test/的路徑的解析,中間節(jié)點上與/usr/test/無關(guān)的信息都沒有保存。例如元數(shù)據(jù) 服務(wù)器1上雖保留有根目錄的信息,但根目錄的目錄項只有/usr —項,/tmp則不在元數(shù)據(jù) 服務(wù)器1的緩存中。文件/usr/test/file0是一個熱點文件,故其在兩臺服務(wù)器上都保留 有副本,對該文件的讀操作可以在兩臺服務(wù)器上同時進行,有效解決了熱點文件的問題。
下面以元數(shù)據(jù)客戶端創(chuàng)建目錄的操作為例結(jié)合圖2、圖3和圖4,詳細(xì)的介紹本具 體實施方式提供的一種支持大規(guī)模并發(fā)訪問的分布式文件系統(tǒng)元數(shù)據(jù)管理方法及實現(xiàn),圖 2為某一時刻整體緩存的元數(shù)據(jù)分布,圖3為該時刻用戶輸入命令,圖4為該時刻某客戶端 緩存的元數(shù)據(jù)分布情況。創(chuàng)建目錄/usr/test/dir2時的執(zhí)行流程,包括以下步驟
步驟Sl,元數(shù)據(jù)客戶端根據(jù)緩存處理用戶輸入信息,向元數(shù)據(jù)服務(wù)器發(fā)送請求,由 于緩存的元數(shù)據(jù)分布中沒有/usr/test/的信息,所以請求將被發(fā)往/usr所在的元數(shù)據(jù)服 務(wù)器,/usr目錄在兩臺元數(shù)據(jù)服務(wù)器中都有緩存,但創(chuàng)建目錄操作需要對元數(shù)據(jù)更新,故選 擇/usr目錄的主元數(shù)據(jù)服務(wù)器——元數(shù)據(jù)服務(wù)器0 ; 步驟S2,元數(shù)據(jù)服務(wù)器0在緩存中找到/usr/test/對應(yīng)的目錄節(jié)點,發(fā)現(xiàn)本地緩 存的只是其副本,/usr/test/對應(yīng)的主元數(shù)據(jù)服務(wù)器為l,故將請求轉(zhuǎn)發(fā)到元數(shù)據(jù)服務(wù)器 1 ; 步驟S3,元數(shù)據(jù)服務(wù)器1在緩存中找到/usr/test/對應(yīng)的目錄節(jié)點,檢查新增操 作,在/usr/test/下生成新的目錄項dir2,相應(yīng)的索引節(jié)點和目錄節(jié)點,將更新提交到更 新日志(更新日志會定期清理將臟數(shù)據(jù)提交到元數(shù)據(jù)存儲節(jié)點); 步驟S4,向更新日志提交成功后,元數(shù)據(jù)服務(wù)器1將新增的目錄項,索引節(jié)點和目 錄節(jié)點加入到緩存的子樹結(jié)構(gòu)中,向客戶端發(fā)送操作成功的消息,發(fā)送的消息中包含/usr/ test/dir2/路徑中經(jīng)過的節(jié)點的信息; 步驟S5,客戶端根據(jù)操作結(jié)果,更新緩存,返回給用戶操作成功的標(biāo)志。 本具體實施方式
具有支持元數(shù)據(jù)服務(wù)器的平滑擴展和負(fù)載均衡的特點。元數(shù)據(jù)存儲在統(tǒng)一的存儲空間,當(dāng)增加或者減少元數(shù)據(jù)服務(wù)器的數(shù)量時,將不會有大量的數(shù)據(jù)遷移;
各元數(shù)據(jù)服務(wù)器維護的目錄子樹是動態(tài)劃分的,可以根據(jù)各子樹的訪問情況,在元數(shù)據(jù)服
務(wù)器間靈活的進行子樹的復(fù)制和遷移,有效的進行負(fù)載均衡;通過在主元數(shù)據(jù)服務(wù)器之外
保存只讀的元數(shù)據(jù)副本,可以應(yīng)對大規(guī)模的并發(fā)讀操作,解決熱點文件的訪問問題,對于元
數(shù)據(jù)的寫操作則只能在主元數(shù)據(jù)服務(wù)器完成,可以保證系統(tǒng)良好的一致性。 本發(fā)明的具體實施方式
還提供了一種分布式文件系統(tǒng)動態(tài)元數(shù)據(jù)管理系統(tǒng),如圖
5所示,具體可以包括 元數(shù)據(jù)服務(wù)器51,用于定時更新并向班長元數(shù)據(jù)服務(wù)器52上報當(dāng)前元數(shù)據(jù)服務(wù) 器的整體負(fù)載信息; 班長元數(shù)據(jù)服務(wù)器52,用于根據(jù)接收到的負(fù)載信息,向負(fù)載大于全局平均負(fù)載的 過載元數(shù)據(jù)服務(wù)器53發(fā)送轉(zhuǎn)移請求; 過載元數(shù)據(jù)服務(wù)器53,用于根據(jù)所述轉(zhuǎn)移請求,將預(yù)定數(shù)量的負(fù)載量發(fā)送給輕載 元數(shù)據(jù)服務(wù)器54,并根據(jù)所述接收完成的確認(rèn)信息刪除相應(yīng)的目錄子樹并更新所述目錄子 樹的祖先節(jié)點的負(fù)載信息; 輕載元數(shù)據(jù)服務(wù)器54,用于接收目錄子樹,并在接收完成后向過載元數(shù)據(jù)服務(wù)器 53發(fā)送接收完成的確認(rèn)信息。 本具體實施方式
提供的分布式文件系統(tǒng)動態(tài)元數(shù)據(jù)管理系統(tǒng)主要包括了實現(xiàn)對 負(fù)載進行動態(tài)劃分的功能單元,而包括了該功能單元的元數(shù)據(jù)管理系統(tǒng)的整體結(jié)構(gòu)如圖6 所示,具體可以包括 元數(shù)據(jù)客戶端該客戶端接受用戶的輸入,根據(jù)本地緩存將輸入轉(zhuǎn)換成用戶請求 發(fā)往元數(shù)據(jù)服務(wù)器,并根據(jù)收到的回復(fù)更新本地緩存并將請求的處理結(jié)果返回給用戶;
元數(shù)據(jù)服務(wù)器有一臺或者多臺,多臺服務(wù)器聯(lián)合起來將數(shù)據(jù)文件組織成統(tǒng)一的 文件系統(tǒng)視圖,每臺元數(shù)據(jù)服務(wù)器緩存一個或多個目錄子樹,根據(jù)元數(shù)據(jù)服務(wù)器客戶端的 請求對這些目錄子樹進行操作,將更新的元數(shù)據(jù)信息寫入到元數(shù)據(jù)存儲節(jié)點,并向元數(shù)據(jù) 服務(wù)器客戶端返回操作結(jié)果; 元數(shù)據(jù)存儲節(jié)點有一臺或者多臺,多臺元數(shù)據(jù)存儲節(jié)點聯(lián)合起來提供可靠高效
的統(tǒng)一元數(shù)據(jù)存儲空間。元數(shù)據(jù)存儲節(jié)點向元數(shù)據(jù)服務(wù)器提供基于對象的讀寫接口 ,屏蔽
了文件塊的操作,元數(shù)據(jù)存儲節(jié)點間的負(fù)載均衡與故障恢復(fù)亦由其自身完成。 在對訪問量動態(tài)劃分的過程中,班長元數(shù)據(jù)服務(wù)器,過載元數(shù)據(jù)服務(wù)器和輕載元
數(shù)據(jù)服務(wù)器都屬于元數(shù)據(jù)服務(wù)器的一種,都根據(jù)元數(shù)據(jù)客戶端的操作進行元數(shù)據(jù)管理。其
中班長元數(shù)據(jù)服務(wù)器負(fù)責(zé)收集負(fù)載信息和決策觸發(fā)動態(tài)劃分。所有的元數(shù)據(jù)服務(wù)器都要向
班長元數(shù)據(jù)服務(wù)器報告負(fù)載情況,班長元數(shù)據(jù)服務(wù)器可以指定或者動態(tài)選舉,過載元數(shù)據(jù)
服務(wù)器和輕載服務(wù)器是動態(tài)劃分過程中子樹遷移的源點和目標(biāo)節(jié)點。 其中的元數(shù)據(jù)服務(wù)器結(jié)構(gòu)如圖7所示,包括消息接口模塊,節(jié)點管理模塊,用戶請 求處理模塊,更新日志記錄模塊,遷移/復(fù)制決策模塊,子樹遷移模塊,子樹復(fù)制模塊,數(shù)據(jù) 備份模塊和事件記錄模塊9個部分,其中消息接口模塊負(fù)責(zé)網(wǎng)絡(luò)消息的傳輸;節(jié)點管理模 塊負(fù)責(zé)維護元數(shù)據(jù)服務(wù)器集群中各節(jié)點的活動情況,包括各節(jié)點的負(fù)載,心跳信息等;用戶 請求處理模塊負(fù)責(zé)根據(jù)用戶的操作請求,完成對目錄子樹的操作;更新日志記錄模塊負(fù)責(zé) 在元數(shù)據(jù)發(fā)生更改的時候,記錄對元數(shù)據(jù)進行的操作,以備用于故障恢復(fù);遷移/復(fù)制決策模塊負(fù)責(zé)根據(jù)元數(shù)據(jù)服務(wù)器集群的負(fù)載情況和目錄對象的訪問情況,來動態(tài)決定子樹的劃 分以及元數(shù)據(jù)副本的位置;子樹遷移模塊和子樹復(fù)制模塊根據(jù)遷移/復(fù)制決策模塊的決策 來完成相應(yīng)的操作;數(shù)據(jù)備份模塊用于根據(jù)系統(tǒng)的要求,定時備份元數(shù)據(jù)信息;事件記錄 模塊負(fù)責(zé)記錄元數(shù)據(jù)服務(wù)器的各種事件。 上述裝置中包含的各單元的處理功能的具體實現(xiàn)方式在之前的方法實施例中已 經(jīng)描述,在此不再重復(fù)描述。 以上所述,僅為本發(fā)明較佳的具體實施方式
,但本發(fā)明的保護范圍并不局限于此, 任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換, 都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)該以權(quán)利要求書的保護范 圍為準(zhǔn)。
權(quán)利要求
一種分布式文件系統(tǒng)動態(tài)元數(shù)據(jù)管理方法,其特征在于,包括A.元數(shù)據(jù)服務(wù)器根據(jù)元數(shù)據(jù)的訪問情況對元數(shù)據(jù)在各元數(shù)據(jù)服務(wù)器上的分布進行動態(tài)劃分;B.元數(shù)據(jù)服務(wù)器根據(jù)客戶端的操作請求,對元數(shù)據(jù)進行管理。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟A還進一步包括 元數(shù)據(jù)服務(wù)器定時更新并向班長元數(shù)據(jù)服務(wù)器上報當(dāng)前元數(shù)據(jù)服務(wù)器的整體負(fù)載信息;班長元數(shù)據(jù)服務(wù)器根據(jù)接收到的負(fù)載信息,向負(fù)載大于全局平均負(fù)載的過載元數(shù)據(jù)服 務(wù)器發(fā)送轉(zhuǎn)移請求;過載元數(shù)據(jù)服務(wù)器根據(jù)所述轉(zhuǎn)移請求,將預(yù)定數(shù)量的負(fù)載量發(fā)送給輕載元數(shù)據(jù)服務(wù)器;輕載元數(shù)據(jù)服務(wù)器接收目錄子樹,并在接收完成后向過載元數(shù)據(jù)服務(wù)器發(fā)送接收完成 的確認(rèn)信息;過載元數(shù)據(jù)服務(wù)器根據(jù)所述接收完成的確認(rèn)信息刪除相應(yīng)的目錄子樹并更新所述目 錄子樹的祖先節(jié)點的負(fù)載信息。
3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟B還進一步包括 客戶端將待創(chuàng)建、待讀取或待刪除的目錄信息,以及待創(chuàng)建、待打開、待關(guān)閉、待刪除或待重命名的文件信息發(fā)送給通過預(yù)定的選擇函數(shù)確定的元數(shù)據(jù)服務(wù)器;元數(shù)據(jù)服務(wù)器根據(jù)待創(chuàng)建、待讀取或待刪除的目錄信息,以及待創(chuàng)建、待打開、待關(guān)閉、 待刪除或待重命名的文件信息在緩存中創(chuàng)建所述待創(chuàng)建的目錄信息、讀取緩存中的所述待 讀取的目錄信息、從緩存中刪除所述待刪除的目錄信息、以及在緩存中創(chuàng)建所述待創(chuàng)建的 文件信息、打開所述待打開的文件信息、關(guān)閉所述待關(guān)閉的文件信息、從緩存中刪除所述待 刪除的文件信息、在緩存中創(chuàng)建所述待重命名文件的新路徑信息并刪除所述待重命名文件 的舊的路徑信息,并返回操作結(jié)果;客戶端根據(jù)接收到的操作結(jié)果更新緩存,并向用戶返回結(jié)果。
4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,在緩存中創(chuàng)建所述待創(chuàng)建的目錄信息或 文件信息、讀取緩存中的所述待讀取目錄信息或文件信息、從緩存中刪除所述待刪除的目 錄信息或文件信息、以及在緩存中創(chuàng)建所述待重命名文件的新路徑信息并刪除所述待重命 名文件的舊的路徑信息,過程包括通過預(yù)定的查找函數(shù)確定待創(chuàng)建、待讀取、待刪除或待重命名的目錄信息或文件信息 對應(yīng)的目錄節(jié)點,若相應(yīng)的目錄節(jié)點對應(yīng)的主元數(shù)據(jù)服務(wù)器不是當(dāng)前元數(shù)據(jù)服務(wù)器,則將 創(chuàng)建、讀取、刪除或重命名目錄信息或文件信息的請求轉(zhuǎn)發(fā)到該目錄節(jié)點的主元數(shù)據(jù)服務(wù) 器;在相應(yīng)目錄節(jié)點的主元數(shù)據(jù)服務(wù)器的緩存中,創(chuàng)建,讀取,刪除或重命名要操作的目錄 或者文件;將創(chuàng)建、刪除或重命名的目錄信息或文件信息的操作更新到元數(shù)據(jù)操作日志中; 元數(shù)據(jù)服務(wù)器定期將日志中未寫入到存儲節(jié)點的內(nèi)容寫入到存儲節(jié)點。
5. 根據(jù)權(quán)利要求3或4所述的方法,其特征在于,還包括元數(shù)據(jù)客戶端請求打開或關(guān)閉 某一文件,過程包括元數(shù)據(jù)客戶端將待打開或待關(guān)閉的文件信息發(fā)送給通過預(yù)定的選擇函數(shù)確定的元數(shù) 據(jù)服務(wù)器;元數(shù)據(jù)服務(wù)器根據(jù)待打開或待關(guān)閉的文件信息在緩存中查找到相應(yīng)的文件節(jié)點,按照 客戶端的操作要求在緩存中更新的所述待打開文件信息對應(yīng)的文件索引節(jié)點上鎖的狀態(tài)、 記錄客戶端的會話信息或者釋放客戶端在所述待關(guān)閉文件信息對應(yīng)的索引節(jié)點上的權(quán)限, 并返回操作結(jié)果。
6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,在根據(jù)待打開的文件信息更新緩存中的 所述待打開文件信息對應(yīng)的文件索引節(jié)點上鎖的狀態(tài)的過程中包括通過預(yù)定的查找函數(shù)確定待打開的文件信息對應(yīng)的索引節(jié)點,若文件信息對應(yīng)的打開 方式中涉及到文件信息的更新,且該節(jié)點的主元數(shù)據(jù)服務(wù)器不是當(dāng)前元數(shù)據(jù)服務(wù)器,則將 打開文件信息的請求轉(zhuǎn)發(fā)到班長元數(shù)據(jù)服務(wù)器。
7. —種分布式文件系統(tǒng)動態(tài)元數(shù)據(jù)管理系統(tǒng),其特征在于,包括元數(shù)據(jù)服務(wù)器,用于定時更新并向班長元數(shù)據(jù)服務(wù)器上報當(dāng)前元數(shù)據(jù)服務(wù)器的整體負(fù) 載信息;班長元數(shù)據(jù)服務(wù)器,用于根據(jù)接收到的負(fù)載信息,向負(fù)載大于全局平均負(fù)載的過載元 數(shù)據(jù)服務(wù)器發(fā)送轉(zhuǎn)移請求;過載元數(shù)據(jù)服務(wù)器,用于根據(jù)所述轉(zhuǎn)移請求,將預(yù)定數(shù)量的負(fù)載量發(fā)送給輕載元數(shù)據(jù) 服務(wù)器,并根據(jù)所述接收完成的確認(rèn)信息刪除相應(yīng)的目錄子樹并更新所述目錄子樹的祖先 節(jié)點的負(fù)載信息;輕載元數(shù)據(jù)服務(wù)器,用于接收目錄子樹,并在接收完成后向過載元數(shù)據(jù)服務(wù)器發(fā)送接 收完成的確認(rèn)信息。
8. 根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述元數(shù)據(jù)服務(wù)器包括用于根據(jù)待創(chuàng) 建、待讀取、待刪除或待重命名的目錄信息或文件信息在緩存中創(chuàng)建所述待創(chuàng)建的目錄信 息或文件信息、讀取緩存中的所述待讀取目錄信息或文件信息、從緩存中刪除所述待刪除 的目錄信息或文件信息、以及在緩存中創(chuàng)建所述待重命名的文件信息并刪除緩存中待重命 名文件的路徑信息,并返回操作結(jié)果;該系統(tǒng)還包括元數(shù)據(jù)客戶端,用于將待創(chuàng)建、待讀取、待刪除或待重命名的目錄信息 或文件信息發(fā)送給通過預(yù)定的選擇函數(shù)確定的元數(shù)據(jù)服務(wù)器,以及更新本地緩存并將處理 結(jié)果返回;元數(shù)據(jù)存儲節(jié)點,用于存儲元數(shù)據(jù),并為元數(shù)據(jù)服務(wù)器提供基于對象的讀寫接口。
9. 根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述元數(shù)據(jù)服務(wù)器還包括 主元數(shù)據(jù)服務(wù)器查找單元,用于通過預(yù)定的查找函數(shù)確定待創(chuàng)建、待讀取、待刪除或待重命名的目錄信息或文件信息對應(yīng)的目錄節(jié)點,若相應(yīng)的目錄節(jié)點對應(yīng)的主元數(shù)據(jù)服務(wù)器 不是當(dāng)前元數(shù)據(jù)服務(wù)器,則將創(chuàng)建、讀取、刪除或重命名目錄信息或文件信息的請求轉(zhuǎn)發(fā)到 主元數(shù)據(jù)服務(wù)器;日志更新單元,用于將創(chuàng)建、刪除或重命名的目錄信息或文件信息更新到元數(shù)據(jù)操作 日志中;更新主元數(shù)據(jù)服務(wù)器查找單元,用于通過預(yù)定的查找函數(shù)確定待打開的文件信息對 應(yīng)的索引節(jié)點,若文件信息對應(yīng)的打開方式中涉及到文件信息的更新,且該節(jié)點的主元數(shù)據(jù)服務(wù)器不是當(dāng)前元數(shù)據(jù)服務(wù)器,則將打開文件信息的請求轉(zhuǎn)發(fā)到該節(jié)點的主元數(shù)據(jù)服務(wù) 器。
10.根據(jù)權(quán)利要求8至9任意一項所述的系統(tǒng),其特征在于,所述元數(shù)據(jù)客戶端還包括 用于將待打開或待關(guān)閉的文件信息發(fā)送給通過預(yù)定的選擇函數(shù)確定的元數(shù)據(jù)服務(wù)器;所述 元數(shù)據(jù)服務(wù)器還包括打開關(guān)閉根據(jù)待打開或待關(guān)閉的文件信息更新緩存中的所述待打開 文件信息對應(yīng)的文件索引節(jié)點上鎖的狀態(tài)或釋放緩存中的所述待關(guān)閉文件信息對應(yīng)的索 引節(jié)點上的權(quán)限,并返回操作結(jié)果。
全文摘要
一種分布式文件系統(tǒng)動態(tài)元數(shù)據(jù)管理方法及系統(tǒng),以解決在元數(shù)據(jù)管理方法中存在不能根據(jù)負(fù)載變化來對動態(tài)調(diào)整元數(shù)據(jù)的分布、不能對元數(shù)據(jù)服務(wù)器平滑擴展、無法處理熱點目錄的訪問、不能良好應(yīng)對單個熱點文件的訪問的問題。本發(fā)明包括元數(shù)據(jù)服務(wù)器根據(jù)元數(shù)據(jù)的訪問情況對元數(shù)據(jù)在各元數(shù)據(jù)服務(wù)器上的分布進行動態(tài)劃分和根據(jù)客戶端的操作請求,對動態(tài)劃分后的元數(shù)據(jù)進行管理。通過動態(tài)劃分解決了元數(shù)據(jù)服務(wù)器的擴展性和負(fù)載均衡問題,對動態(tài)劃分后元數(shù)據(jù)的管理,解決了元數(shù)據(jù)的一致性問題。
文檔編號H04L29/08GK101697168SQ20091023645
公開日2010年4月21日 申請日期2009年10月22日 優(yōu)先權(quán)日2009年10月22日
發(fā)明者馮幼樂, 朱明 申請人:中國科學(xué)技術(shù)大學(xué);
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
汉沽区| 晋城| 寿宁县| 盱眙县| 老河口市| 太仓市| 岳阳县| 蓝山县| 博爱县| 广东省| 望江县| 宁德市| 龙州县| 大姚县| 二连浩特市| 榆中县| 德清县| 陆良县| 民权县| 吉安县| 社旗县| 张掖市| 屯昌县| 盐城市| 武定县| 顺昌县| 阳春市| 崇义县| 叙永县| 邢台市| 龙海市| 清远市| 内江市| 留坝县| 库伦旗| 如皋市| 嘉禾县| 大连市| 射阳县| 资溪县| 南岸区|