專利名稱:一種建立基于p2p的大規(guī)模分布式文件系統(tǒng)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種建立基于P2P的大規(guī)模分布式文件系統(tǒng)的方法。
背景技術(shù):
今天,Internet越來越成為人們生活的重要部分。大多數(shù)計算 機技術(shù)被轉(zhuǎn)移到Internet平臺。文件系統(tǒng)為所有分布式系統(tǒng)的重要 的組成部分。大規(guī)模分布式文件系統(tǒng)非常重要。這種大規(guī)模分布式文 件系統(tǒng)將所有計算機連接起來形成巨量虛擬文件存儲和透明的虛擬 文件操作。
目前,己有一些分布式文件系統(tǒng)hadoop , openAFS , Google 公司的Google file system 以及利用P2P技術(shù)的IgorFs等。然 而,以上系統(tǒng)還不能簡單透明地將所有計算機存儲連接起來。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題為一種建立基于P2P的大規(guī)模分布 式文件系統(tǒng)的方法,采用融合多倍的虛擬樹型結(jié)構(gòu)化網(wǎng)絡和隨機緩存 的非結(jié)構(gòu)網(wǎng)絡來構(gòu)建P2P覆蓋網(wǎng)絡,文件命名采用全局目錄加本地目 錄的方式,計算機根據(jù)其全局目錄加入多倍的虛擬樹型結(jié)構(gòu)化的P2P 覆蓋網(wǎng)絡。
為了解決上述技術(shù)問題,本發(fā)明采用以下技術(shù)方案 一種建立基于P2P的大規(guī)模分布式文件系統(tǒng)的方法,包括構(gòu)建全
局目錄的步驟、構(gòu)建新文件的步驟、文件打開的步驟,其特征在于其
中構(gòu)建全局目錄步驟具體包括
11)建立全局目錄1 la)網(wǎng)絡起始節(jié)點設(shè)置其路由表內(nèi)容,并建立初始全局目錄以及相關(guān) 虛擬組,路由表內(nèi)容主要包括節(jié)點實體信息,所述實體信息包含節(jié)點 ID和IP地址,其中節(jié)點10為節(jié)點計算機名@全局目錄; llb)節(jié)點A按加入的全局目錄尋找到與此全局目錄共享最大路徑的 虛擬組,加入此虛擬組;若此虛擬組路徑小于加入的全局目錄,節(jié)點 A創(chuàng)建剩余路徑的全局子目錄;
llc)節(jié)點A向此虛擬組中的一個節(jié)點發(fā)送包含節(jié)點A實體信息的加入 消息,此節(jié)點向該虛擬組所有其他節(jié)點轉(zhuǎn)發(fā)該加入消息; lld)虛擬組每個節(jié)點將節(jié)點A的實體信息增加到自己的路由表中,同 時向節(jié)點A發(fā)送包含自身節(jié)點實體信息的確認消息,節(jié)點A將虛擬組 每個節(jié)點的實體信息增加到自己的路由表中;
lie)判斷是否是根虛擬組或虛擬組中己有N個節(jié)點加入上層虛擬組, 若判斷結(jié)果是,則建立全局目錄步驟結(jié)束,若判斷結(jié)果否,則找到上 一層虛擬組,并重復步驟11c) lle); 12)刪除全局目錄
12a)離開節(jié)點B尋找到自己加入的最頂層虛擬組;
12b)離開節(jié)點B向此虛擬組的一個節(jié)點發(fā)送包含節(jié)點B實體信息的離
開消息;此節(jié)點向虛擬組所有其他節(jié)點轉(zhuǎn)發(fā)該離開消息;
12c)虛擬組每個節(jié)點從自己的路由表中將節(jié)點B實體信息刪除,同時
向離開節(jié)點B發(fā)送確認消息;
12d)判斷是否是最底層虛擬組,若判斷結(jié)果是,則刪除全局目錄步驟 結(jié)束,若判斷結(jié)果否,則找到下一層虛擬組,并重復步驟12b) 12d)。 其中構(gòu)建新文件的步驟具體包括
21)建立新文件
21a)用戶確定新建文件名,文件名格式全局目錄@用戶計算機名/ 本地目錄名,將新建文件名放入請求消息中,解析出新建文件名中的全局目錄為目標虛擬組V1;
2lb)用戶節(jié)點iffil查矛媒自身路由表,轉(zhuǎn)發(fā)請求消BiiM^目標M^且vi 鵬斷節(jié)點;
21c)鄰近節(jié)點通過査找其自身路由表,轉(zhuǎn)發(fā)請求消息到更接近目標
虛擬組V1的節(jié)點;
21d)重復步驟21c),直至找到目標虛擬組V1;
21e)目標虛擬組VI —節(jié)點C對目標虛擬組VI所有節(jié)點廣播請求消 息;
21f)和請求消息中文件名所包含的用戶計算機名相配匹的節(jié)點創(chuàng)建
本地目錄和文件;
22)刪除新文件
22a)用戶確定要刪除的文件名,將刪除文件名放入請求消息中,解 析出文件名中的全局目錄為目標虛擬組V2;
22b)用戶節(jié)點JM:査矛媒自身路由表,轉(zhuǎn)對青求糧iiJ^fi目標MM V2
辦斷節(jié)點;
22c)鄰近節(jié)點通過査找其自身路由表,轉(zhuǎn)發(fā)請求消息到更接近目標 虛擬組V2的節(jié)點;
22d)重復步驟22c),直至找到目標虛擬組V2;
22e)目標虛擬組V2 —節(jié)點D對目標虛擬組V2所有節(jié)點廣播請求消
息;
22f)和請求消息中文件名所包含的用戶計算機名相配匹的節(jié)點刪除 本地目錄和文件。
其中文件打開的步驟具體包括 3a)用戶確定要打開的文件名,將打開文件名放入請求消息中,解析 出打開文件名中的全局目錄為目標虛擬組V3;3b)用戶所M點jffil查手媒自身路由表,轉(zhuǎn)發(fā)請求糧歸lj^a目標虛傻且 V3鵬隨節(jié)點;
3c)鄰近節(jié)點通過查找其自身路由表,轉(zhuǎn)發(fā)請求消息到更接近目標虛
擬組V3的節(jié)點;
3d)重復步驟3c),直至找到目標虛擬組V3;
3e)目標虛擬組V3 —節(jié)點E對目標虛擬組V3所有節(jié)點廣播請求消息; 3f)和請求消息中文件名所包含的計算機名相配匹的節(jié)點創(chuàng)建打開本 地文件的句柄,并將此句柄返回到用戶所在節(jié)點。
它還包括以下步驟 4a)用戶遠程打開文件,獲得打開文件句柄和文件節(jié)點IP地址;
4b)用戶倉犍包^M^M和打開文件繊em^M乍附青求消息,并微鵬
凝抆件所棘點
4c)文件所鄉(xiāng)點細鵬乍請求消息中角科斤出衝鄉(xiāng)稱丁開文件^m 4d)文件所抓蘇卿匕^ 改件進行鵬^^糊 ^彌乍。
本發(fā)明與現(xiàn)有技術(shù)相比具有以下有益效果本發(fā)明采用融合多倍 的虛擬樹型結(jié)構(gòu)化網(wǎng)絡和隨機緩存的非結(jié)構(gòu)網(wǎng)絡來構(gòu)建P2P覆蓋網(wǎng) 絡,文件命名采用全局目錄加本地目錄的方式,計算機根據(jù)其全局目 錄加入多倍的虛擬樹型結(jié)構(gòu)化的P2P覆蓋網(wǎng)絡。本發(fā)明具有簡單透明 地將Internet所有計算機連接成巨大的分布式文件存儲的優(yōu)點。
圖1為本發(fā)明構(gòu)建全局目錄的流程圖2為本發(fā)明建立新文件的流程圖3為本發(fā)明刪除新文件的流程圖4為本發(fā)明文件打開的流程圖5為本發(fā)明其他文件操作的流程圖。
具體實施例方式
8相關(guān)術(shù)語
全局目錄為在Internet范圍內(nèi)全局唯一的目錄。全局目錄由 所有參與分布式文件系統(tǒng)的計算機虛擬構(gòu)建。全局目錄的表示方式采 用域名方式,與域名系統(tǒng)(DNS)的格式一致。
節(jié)點節(jié)點為參與多個虛擬分層組的計算機,它具有路由表。
節(jié)點ID (PeerID):為全局目錄加機器名,表示格式計算機名@ 全局目錄,例如Alice@music. popular. Britney。
節(jié)點實體(PNE):節(jié)點實體指明節(jié)點ID (PeerID) , IP地址等。
路由表由許多節(jié)點實體組成。
網(wǎng)關(guān)角色具有路由角色的節(jié)點擔任幾個不同層次的虛擬組的網(wǎng) 關(guān)功能。
網(wǎng)關(guān)最上層(GUL):網(wǎng)關(guān)角色中最上層虛擬組在虛擬樹中的位置。
虛擬組由節(jié)點組成。上層虛擬組由具有網(wǎng)關(guān)角色的節(jié)點組成。 N倍虛擬組樹由虛擬組形成的樹。高層虛擬組由低層具有網(wǎng)關(guān)
角色的每組N個節(jié)點組成。重復此過程,以形成虛擬樹。
加入消息加入節(jié)點發(fā)送的消息,必須包括加入節(jié)點的實體信息。 離開消息離開節(jié)點發(fā)送的消息,必須包括離開節(jié)點的實體信息。 請求消息用戶請求操作時發(fā)送的消息。
參見圖1, 一種建立基于P2P的大規(guī)模分布式文件系統(tǒng)的方法, 包括構(gòu)建全局目錄的步驟、構(gòu)建新文件的步驟、文件打開的步驟,其 中構(gòu)建全局目錄步驟具體包括 11)建立全局目錄
lla)網(wǎng)絡起始節(jié)點設(shè)置其路由表內(nèi)容,并建立初始全局目錄以及相關(guān) 虛擬組,路由表內(nèi)容主要包括節(jié)點實體信息,實體信息包含節(jié)點ID和IP地址,其中節(jié)點10為節(jié)點計算機名@全局目錄;
llb)節(jié)點A按加入的全局目錄尋找到與此全局目錄共享最大路徑的 虛擬組,加入此虛擬組;若此虛擬組路徑小于加入的全局目錄,節(jié)點 A創(chuàng)建剩余路徑的全局子目錄;
llc)節(jié)點A向此虛擬組中的一個節(jié)點發(fā)送包含節(jié)點A實體信息的加入 消息,此節(jié)點向該虛擬組所有其他節(jié)點轉(zhuǎn)發(fā)該加入消息; lld)虛擬組每個節(jié)點將節(jié)點A的實體信息增加到自己的路由表中,同 時向節(jié)點A發(fā)送包含自身節(jié)點實體信息的確認消息,節(jié)點A將虛擬組 每個節(jié)點的實體信息增加到自己的路由表中;
lie)判斷是否是根虛擬組或虛擬組中已有N個節(jié)點加入上層虛擬組, 若判斷結(jié)果是,則建立全局目錄步驟結(jié)束,若判斷結(jié)果否,則找到上 一層虛擬組,并重復步驟11c) lle); 12)刪除全局目錄
12a)離開節(jié)點B尋找到自己加入的最頂層虛擬組;
12b)離開節(jié)點B向此虛擬組的一個節(jié)點發(fā)送包含節(jié)點B實體信息的離
開消息;此節(jié)點向虛擬組所有其他節(jié)點轉(zhuǎn)發(fā)該離開消息;
12c)虛擬組每個節(jié)點從自己的路由表中將節(jié)點B實體信息刪除,同時
向離開節(jié)點B發(fā)送確認消息;
12d)判斷是否是最底層虛擬組,若判斷結(jié)果是,則刪除全局目錄步驟 結(jié)束,若判斷結(jié)果否,則找到下一層虛擬組,并重復步驟12b) 12d)。
參見圖2和圖3,其中構(gòu)建新文件的步驟具體包括 21)建立新文件-
21a)用戶確定新建文件名,文件名格式全局目錄@用戶計算機名/ 本地目錄名(Global-directory " @,, computerName " /,, local-d irectory),全局目錄(Global-directory)采用域名表示形式,例 如biology, bioinformatics; 用戶計算機名 (computerName), 例
10如alice;節(jié)點計算機的本地目錄名(local-directory),例如/to 。ls/blast。
示例biology. bioinformatics@alice/tools/blast, 新建文件名確定后,將新建文件名放入請求消息中,解析出新建文件 名中的全局目錄為目標虛擬組VI;
2ib)用戶節(jié)點M^J騏自身路由表,轉(zhuǎn)對青求撒能U^e目標MMvi
點
21c)鄰近節(jié)點通過査找其自身路由表,轉(zhuǎn)發(fā)請求消息到更接近目標 虛擬組V1的節(jié)點;
21d)重復步驟21c),直至找到目標虛擬組V1;
21e)目標虛擬組VI —節(jié)點C對目標虛擬組VI所有節(jié)點廣播請求消 息;
21f)和請求消息中文件名所包含的用戶計算機名相配匹的節(jié)點創(chuàng)建
本地目錄和文件;
22)刪除新文件
22a)用戶確定要刪除的文件名,將刪除文件名放入請求消息中,解 析出文件名中的全局目錄為目標虛擬組V2;
22b)用戶節(jié)點Jffil查矛媒自身路由表,轉(zhuǎn)發(fā)請求撒能IJ^E目標M^且V2 鵬販節(jié)點;
22c)鄰近節(jié)點通過查找其自身路由表,轉(zhuǎn)發(fā)請求消息到更接近目標 虛擬組V2的節(jié)點;
22d)重復步驟22c),直至找到目標虛擬組V2;
22e)目標虛擬組V2 —節(jié)點D對目標虛擬組V2所有節(jié)點廣播請求消
息;
22f)和請求消息中文件名所包含的用戶計算機名相配匹的節(jié)點刪除 本地目錄和文件。參見圖4,其中文件打開的步驟具體包括
3a)用戶確定要打開的文件名,將打開文件名放入請求消息中,解析 出打開文件名中的全局目錄為目標虛擬組V3; 3b)用戶所鄉(xiāng)點JM;查矛媒自身路由表,轉(zhuǎn)對青求瓶能1」^£目標 ^且 V3鵬販節(jié)點;
3c)鄰近節(jié)點通過査找其路由表,轉(zhuǎn)發(fā)請求消息到更接近目標虛擬組 V3的節(jié)點;
3d)重復步驟3c),直至找到目標虛擬組V3;
3e)目標虛擬組V3 —節(jié)點E對目標虛擬組V3所有節(jié)點廣播請求消息; 3f)和請求消息中文件名所包含的計算機名相配匹的節(jié)點創(chuàng)建打開本 地文件的句柄,并將此句柄返回到用戶所在節(jié)點。
其他文件操作的方法如果文件為本地文件,則按普通文件操 作方法,如果是遠程節(jié)點,則按圖5方法。其他文件操作的方法包括
以下步驟
4a)用戶遠程打開文件,獲得打開文件句柄和文件節(jié)點IP地址; 4b)用戶粒包娜^^和打開文件娜麒鵬作附青求消息,并鄉(xiāng)鵬 鍋文件所鄉(xiāng)點;
4c)文件所肺點從期鵬請求消息中解斤出衝鄉(xiāng)稱丁開文件6^; 4d)文件所蹄點禾卿匕^W此文件進行鵬鄉(xiāng)糊^K糊乍。
下面以實例詳細說明構(gòu)建分布式文件系統(tǒng)的過程 構(gòu)建全球范圍計算機參與的分布式文件系統(tǒng)。
假設(shè)有用戶小李全局目錄為LiuHuan. Popular. Music,計算機 名XiaoLi,其節(jié)點ID為XiaoLi@ LiuHuan. Popular. Music。所用 的電腦IP地址為1 0.20.2.26;
老王全局目錄為LiuHuan. Popular. Music,計算機名OldWang, 其節(jié)點ID為01dWang@ LiuHuan. Popular. Music。所用的電腦IP地址為1 0 . 8 8 . 5. 1 5 ;
老張全局目錄為Beethoven. Classic. Music,計算機名OldZha ng,其節(jié)點ID為01dZhang@ Beethoven. Classic. Music。所用的電 腦IP地址為200.10.121.150;
小趙全局目錄為Brittney. Popular. Music,計算機名XiaoZha o,其節(jié)點ID為XiaoZhao@ Brittney. Popular. Music。所用的電腦I P地址為150.100.69.1 12;
未來音像公司全局目錄為LiuHuan. Popular. Music,計算機名 Future,其節(jié)點ID為Future齓iuH腿.Popular. Music。所用的電腦 IP地址為26.109.12.123;
假設(shè)老王為建立網(wǎng)絡的第一人。按圖l,老王電腦為網(wǎng)絡起始節(jié) 點,設(shè)置其路由表內(nèi)容為其節(jié)點實體(節(jié)點ID: 01dWang@ LiuHuan. Popular. Music, IP地址10.88.5.15);建立LiuHuan虛擬 組,上層的Popular虛擬組和Music根虛擬組,同時建立LiuHuan. P opular. Music全局目錄。
小李加入網(wǎng)絡。小李按全局目錄LiuHuan. Popular. Music,確定 要加入的虛擬組為LiuHuan. Popular. Music,并找到已加入LiuHuan. Popular. Music的一個節(jié)點老王。小李節(jié)點向老王節(jié)點發(fā)送包含小李 實體信息(節(jié)點ID: XiaoLi@ LiuHuan. Popular. Music, IP地址1 0. 20.2.26 )的加入消息;老王節(jié)點向LiuHuan. Popular. Music虛擬 組所有其他節(jié)點轉(zhuǎn)發(fā)該加入消息(因此時只有老王本身一個節(jié)點,故 不轉(zhuǎn)發(fā));LiuHuan. Popular. Music每個節(jié)點(此時只有老王一個節(jié) 點)將小李節(jié)點的實體信息(節(jié)點ID: XiaoLi@ LiuHuan. Popular. M usic,IP地址1 0.20.2.26)增加到自己的路由表中,同時向小李 節(jié)點發(fā)送確認消息。小李節(jié)點將虛擬組每個節(jié)點實體信息(節(jié)點ID: 01dWang@ LiuHuan. Popular. Music, IP地址10.88.5.15)增加到自己的路由表中。假設(shè)N為1,因已有1個節(jié)點加入上層虛 擬組(老王節(jié)點),節(jié)點加入結(jié)束。
老張加入網(wǎng)絡。老張按全局目錄Beethoven. Classic. Music,確 定要加入的虛擬組為Beethoven. Classic. Music,尋找到與此全局目 錄共享最大路徑的虛擬組--Music,加入此虛擬組;因此虛擬組路徑 小于加入的全局目錄,老張節(jié)點創(chuàng)建剩余路徑的全局子目錄 Beethoven. Classic并建立下層Beethoven禾口 Classic虛擬組。老張 節(jié)點向老王節(jié)點發(fā)送加入消息(包含老張的實體信息);老王節(jié)點向 Music虛擬組所有其他節(jié)點轉(zhuǎn)發(fā)加入消息(因此時只有一個節(jié)點,故 不轉(zhuǎn)發(fā));Music組每個節(jié)點(老王)將老張節(jié)點的實體信息(節(jié)點 ID: 01dZhang@ Beethoven. Classic, Music, IP地址2 0 0.1 0.
12 1.15 0)增加到自己的路由表中,同時向老張節(jié)點發(fā)送確認 消息(包含自身的節(jié)點信息,此時只有老王一個節(jié)點信息)。老張節(jié) 點將虛擬組每個節(jié)點實體信息(節(jié)點ID: 01dWang@ LiuHuan. Popular. Music, IP地址10.88.5.15)增加到自己 的路由表中,節(jié)點加入結(jié)束。
小趙加入網(wǎng)絡。小趙按全局目錄Brittney. Popular. Music,確 定要加入的虛擬組為Brittney. Popular. Music,尋找到與此全局目 錄共享最大路徑的虛擬組一Popular. Music,加入此虛擬組;因此虛 擬組路徑小于加入的全局目錄,小趙節(jié)點創(chuàng)建剩余路徑的全局子目錄 Brittney并建立下層Brittney虛擬組。小趙節(jié)點向老王節(jié)點發(fā)送加 入消息(包含小趙的實體信息);老王節(jié)點向Popular. Music虛擬組 所有其他節(jié)點轉(zhuǎn)發(fā)加入消息(因此時只有一個節(jié)點,故不轉(zhuǎn)發(fā));M usic組每個節(jié)點(老王)將小趙節(jié)點的實體信息(節(jié)點ID: XiaoZh ao@ Brittney. Popular. Music, IP地址150.100.69.11
2)增加到自己的路由表中,同時向小趙節(jié)點發(fā)送確認消息。小趙節(jié)
14點將虛擬組每個節(jié)點實體信息(節(jié)點ID: 01dWang@ LiuHuan. Popula r.Music, IP地址10.88.5.15)增加到自己的路由表中,假 設(shè)N為1,結(jié)束。
未來音像公司加入網(wǎng)絡。未來音像公司按全局目錄LiuHuan. Pop ular. Music,確定要加入的虛擬組為LiuHuan. Popular. Music,并找 到已加入LiuHuan. Popupar. Music虛擬組的一個節(jié)點小李。未來音像 公司向小李節(jié)點發(fā)送加入消息(包含未來音像公司的實體信息); 小李節(jié)點向LiuHuan. Popular. Music虛擬組所有其他節(jié)點轉(zhuǎn)發(fā)加入 消息(此時向老王節(jié)點轉(zhuǎn)發(fā));LiuHuan. Popular. Music虛擬組每 個節(jié)點(小李和老王)將未來音像公司節(jié)點的實體信息(節(jié)點ID: F uture亂iuH,. Popular. Music, IP地址26.109.12.12 3 )增加到自己的路由表中,同時向未來音像公司節(jié)點發(fā)送確認消息。 未來音像公司節(jié)點將虛擬組每個節(jié)點實體信息(節(jié)點ID: 01dWang@ LiuHuan. Popular. Music, IP地址:10.88.5.15和XiaoLi@ LiuHuan. Popular. Music, IP地址1 0 . 20. 2. 26 )增加到自己的路 由表中。假設(shè)N為1,結(jié)束。
小趙離開網(wǎng)絡。A)小趙節(jié)點尋找到自己加入的最頂層虛擬組(此 時為Popular. Music)的一個節(jié)點(老王)。小趙節(jié)點向此(老王) 節(jié)點發(fā)送離開消息(包含小趙的實體信息);B)此節(jié)點向虛擬組所 有其他節(jié)點轉(zhuǎn)發(fā)離開消息(此時,無其他節(jié)點,故不轉(zhuǎn)發(fā))。C)虛 擬組每個節(jié)點(老王)從自己的路由表中將離開節(jié)點小趙實體信息(節(jié) 點ID:為XiaoZhao@ Brittney. Popular. Music, IP地址15 0.1 0 0.6 9.1 1 2 )刪除,同時向離開節(jié)點小趙發(fā)送確認消息。由于 不是最底層虛擬組,虛擬組織指向下層虛擬組Brittney,轉(zhuǎn)向步驟 B),循環(huán)一次后,是最底層虛擬組,因Brittney. Popular. Music虛 擬組只有小趙節(jié)點,Brittney全局子目錄自動刪除,結(jié)束。建立新文件方法-
如果文件為本地文件,則按普通新建文件方法,如果是遠程節(jié)點,
則按圖2方法。
未來音像公司在老王節(jié)點上建立songs /2008 /You&Me. wav文 件。文件名LiuHuan. Popular. Music@01dWang/songs /2008 /You& Me. wav,將新建文件名放入請求消息中,請求消息包括CreateFil 6 LiuHuan. Popular. Music@01dWang/songs /2008 /You&Me. wav。解 析出新建文件名中的全局目錄為LiuHuan. Popular. Music目標虛擬 組。
未來音像公司節(jié)點通過查找其路由表,轉(zhuǎn)發(fā)請求消息到更接近目 標虛擬組域名的鄰近節(jié)點小李。此時,小李就是目標虛擬組 LiuHuan. Popular. Music的一個節(jié)點。小李節(jié)點對目標虛擬組所有節(jié) 點(包括小李和老王)廣播請求消息。目標虛擬組所有節(jié)點(包括老 王、小李)檢查自己的節(jié)點ID,和請求消息中文件名所包含的用戶 計算機名01dWang相配匹的節(jié)點創(chuàng)建本地目錄和文件;在此,只有老 王符合,老王建立songs /2008 /You&Me. wav本地文件,并將文件 句柄返回給未來音像公司節(jié)點。
刪除文件方法
如果文件為本地文件,則按普通刪除文件方法,如果是遠程節(jié)點,
則按圖3方法。
未來音像公司在老王節(jié)點上刪除songs /2008 /You&Me. wav文 件。文件名LiuHuan. Popular. Music@01dWang/songs /2008 /You& Me. wav,請求消息包括DeleteFile LiuHuan. Popular. Music@01dW ang/songs /2008 /You&Me. wav ?!?br>
未來音像公司節(jié)點通過查找其路由表,轉(zhuǎn)發(fā)請求消息到更接近目 標虛擬組域名的鄰近節(jié)點小李。此時,小李就是目標虛擬組LiuHuan,Popular. Music的一個節(jié)點。小李節(jié)點對目標虛擬組所有節(jié)點(包括 小李和老王)廣播請求消息。目標虛擬組所有節(jié)點(包括老王、小李 )檢査自己的節(jié)點ID。和請求消息中文件名所包含的用戶計算機名 OldWang相配匹的節(jié)點刪除本地目錄和文件;在此,只有老王符合, 老王刪除songs /2008 /You&Me. wav本地文件,并將結(jié)果返回給未 來音像公司節(jié)點。 文件打開方法
如果文件為本地文件,則按普通打開文件方法,如果是遠程節(jié)點, 則按圖4方法。
未來音像公司在老王節(jié)點上打開songs /2008 /You&Me. wav文 件。文件名LiuHuan. Popular. Music@01dWang/songs /2008 /You& Me. wav,創(chuàng)建打開文件的請求消息包括OpenFile LiuHuan. Popula r.Music@01dWang/songs /2008 /You&Me. wav。
未來音像公司節(jié)點通過查找其路由表,轉(zhuǎn)發(fā)請求消息到更接近目 標虛擬組域名的鄰近節(jié)點小李。此時,小李就是目標虛擬組 LiuHuan. Popular. Music的一個節(jié)點。小李節(jié)點對目標虛擬組所有節(jié) 點(包括小李和老王)廣播請求消息。目標虛擬組所有節(jié)點(包括老 王、小李)檢查自己的節(jié)點ID。和請求消息中文件名所包含的計算 機名01dWang相配匹的節(jié)點創(chuàng)建打開本地文件的句柄,在此,只有老 王符合,老王打開songs /2008 /You&Me. wav本地文件,并將打開 文件句柄返回給未來音像公司節(jié)點。
其他文件操作的方法-
如果文件為本地文件,則按普通文件操作方法,如果是遠程節(jié)點, 則按圖5方法。
未來音像公司在老王節(jié)點上讀songs /2008 /You&Me. wav文件。 創(chuàng)建其他文件操作請求消息,請求消息格式為OperateFile opemtetype全局目錄@計算機名文件句柄,其中Operatetype為read file(讀文件),writefile(寫文件)操作等。
未來音像公司節(jié)點先打開LiuHuan. Popular. Music@01dWang/son gs /2008 /You&Me.wav文件。打開文件的請求消息包括0penFile LiuHuan. Popular. Music@01dWang/songs /2008 /You&Me. wav。未來 音像公司節(jié)點通過査找其路由表,轉(zhuǎn)發(fā)査詢消息到更接近目標虛擬組 域名的鄰近節(jié)點小李。此時,小李就是目標虛擬組LiuHuan. Popular. Music的一個節(jié)點。小李節(jié)點對目標虛擬組所有節(jié)點(包括小李和老 王)廣播查詢消息。目標虛擬組所有節(jié)點(包括老王、小李)檢査 自己的節(jié)點ID。和請求消息中文件名所包含的用戶計算機名OldWan g相配匹的節(jié)點創(chuàng)建本地目錄和文件;在此,只有老王符合,老王打 開songs /2008 /You&Me. wav本地文件,并將打開文件句柄返回給 未來音像公司節(jié)點。
未來音像公司節(jié)點將讀文件操作請求消息(其中包括OperateFi le readfile LiuHuan. Popular. Music@01dWang 句柄)發(fā)送到老王 節(jié)點。老王節(jié)點解析出請求消息中的操作類型為讀文件操作,句柄 為文件打開的句柄。老王節(jié)點利用此句柄對此文件進行代理讀文件操 作。
權(quán)利要求
1、一種建立基于P2P的大規(guī)模分布式文件系統(tǒng)的方法,包括構(gòu)建全局目錄的步驟、構(gòu)建新文件的步驟、文件打開的步驟,其特征在于其中構(gòu)建全局目錄步驟具體包括11)建立全局目錄11a)網(wǎng)絡起始節(jié)點設(shè)置其路由表內(nèi)容,并建立初始全局目錄以及相關(guān)虛擬組,路由表內(nèi)容主要包括節(jié)點實體信息,所述實體信息包含節(jié)點ID和IP地址,其中節(jié)點ID為節(jié)點計算機名@全局目錄;11b)節(jié)點A按加入的全局目錄尋找到與此全局目錄共享最大路徑的虛擬組,加入此虛擬組;若此虛擬組路徑小于加入的全局目錄,節(jié)點A創(chuàng)建剩余路徑的全局子目錄;11c)節(jié)點A向此虛擬組中的一個節(jié)點發(fā)送包含節(jié)點A實體信息的加入消息,此節(jié)點向該虛擬組所有其他節(jié)點轉(zhuǎn)發(fā)該加入消息;11d)虛擬組每個節(jié)點將節(jié)點A的實體信息增加到自己的路由表中,同時向節(jié)點A發(fā)送包含自身節(jié)點實體信息的確認消息,節(jié)點A將虛擬組每個節(jié)點的實體信息增加到自己的路由表中;11e)判斷是否是根虛擬組或虛擬組中已有N個節(jié)點加入上層虛擬組,若判斷結(jié)果是,則建立全局目錄步驟結(jié)束,若判斷結(jié)果否,則找到上一層虛擬組,并重復步驟11c)~11e);12)刪除全局目錄12a)離開節(jié)點B尋找到自己加入的最頂層虛擬組;12b)離開節(jié)點B向此虛擬組的一個節(jié)點發(fā)送包含節(jié)點B實體信息的離開消息;此節(jié)點向虛擬組所有其他節(jié)點轉(zhuǎn)發(fā)該離開消息;12c)虛擬組每個節(jié)點從自己的路由表中將節(jié)點B實體信息刪除,同時向離開節(jié)點B發(fā)送確認消息;12d)判斷是否是最底層虛擬組,若判斷結(jié)果是,則刪除全局目錄步驟結(jié)束,若判斷結(jié)果否,則找到下一層虛擬組,并重復步驟12b)~12d)。
2、如權(quán)利要求1的一種建立基于P2P的大規(guī)模分布式文件系統(tǒng)的方 法,其特征在于其中構(gòu)建新文件的步驟具體包括-(21) 建立新文件-(21a)用戶確定新建文件名,文件名格式全局目錄@用戶計算機名/ 本地目錄名,將新建文件名放入請求消息中,解析出新建文件名中的 全局目錄為目標虛擬組V1;(21b)用戶節(jié)點3ffil查J媒自身路由表,轉(zhuǎn)發(fā)請求浪歸U^fi目標齒^且VI 鵬販節(jié)點;(21c)鄰近節(jié)點通過査找其自身路由表,轉(zhuǎn)發(fā)請求消息到更接近目標 虛擬組V1的節(jié)點;(21d)重復步驟21c),直至找到目標虛擬組V1;(21e)目標虛擬組VI —節(jié)點C對目標虛擬組VI所有節(jié)點廣播請求消息;(21f)和請求消息中文件名所包含的用戶計算機名相配匹的節(jié)點創(chuàng)建 本地目錄和文件;(22) 刪除新文件(22a)用戶確定要刪除的文件名,將刪除文件名放入請求消息中,解 析出文件名中的全局目錄為目標虛擬組V2;(22b)用戶節(jié)點M:査,錤自身路由表,轉(zhuǎn)對青求徵能y^5目標戯辦且V2,近節(jié)點;(22c)鄰近節(jié)點通過査找其自身路由表,轉(zhuǎn)發(fā)請求消息到更接近目標 虛擬組V2的節(jié)點;922d)重復步驟22c),直至找到目標虛擬組V2;(22e)目標虛擬組V2 —節(jié)點D對目標虛擬組V2所有節(jié)點廣播請求消 息;(22f)和請求消息中文件名所包含的用戶計算機名相配匹的節(jié)點刪除 本地目錄和文件。
3、 如權(quán)利要求2所述的一種建立基于P2P的大規(guī)模分布式文件系統(tǒng) 的方法,其特征在于其中文件打開的步驟具體包括3a)用戶確定要打開的文件名,將打開文件名放入請求消息中,解析 出打開文件名中的全局目錄為目標虛擬組V3;3b)用戶所肺點jM:查手媒自身路由表,轉(zhuǎn)發(fā)請求消肩剖;^E目標齒傻且V3辦斷節(jié)點;3c)鄰近節(jié)點通過查找其自身路由表,轉(zhuǎn)發(fā)請求消息到更接近目標虛 擬組V3的節(jié)點;3d)重復步驟3c),直至找到目標虛擬組V3;3e)目標虛擬組V3—節(jié)點E對目標虛擬組V3所有節(jié)點廣播請求消息; 3f)和請求消息中文件名所包含的計算機名相配匹的節(jié)點創(chuàng)建打開本 地文件的句柄,并將此句柄返回到用戶所在節(jié)點。
4、 如權(quán)利要求3所述的一種建立基于P2P的大規(guī)模分布式文件系統(tǒng) 的方法,其特征在于它還包括以下步驟4a)用戶遠程打開文件,獲得打開文件句柄和文件節(jié)點IP地址;4b)用戶倉i健包^M^^口打開文件娜^^t^作附青求消息,并mtb消魅忟件所肺點;4c)文件所肺點從謝鵬作請求消息中麟斤出衝^^稱丁開文件6^; 4d)文件所抓蘇卿匕^W雌牛進行鵬^^JfW^f彌乍。
全文摘要
本發(fā)明涉及一種建立基于P2P的大規(guī)模分布式文件系統(tǒng)的方法,包括構(gòu)建全局目錄的步驟、構(gòu)建新文件的步驟、文件打開的步驟,其中構(gòu)建全局目錄步驟具體包括建立全局目錄和刪除全局目錄,其中構(gòu)建新文件的步驟具體包括建立新文件和刪除新文件。本發(fā)明與現(xiàn)有技術(shù)相比具有以下有益效果本發(fā)明采用融合多倍的虛擬樹型結(jié)構(gòu)化網(wǎng)絡和隨機緩存的非結(jié)構(gòu)網(wǎng)絡來構(gòu)建P2P覆蓋網(wǎng)絡,文件命名采用全局目錄加本地目錄的方式,計算機根據(jù)其全局目錄加入多倍的虛擬樹型結(jié)構(gòu)化的P2P覆蓋網(wǎng)絡。本發(fā)明具有簡單透明地將Internet所有計算機連接成巨大的分布式文件存儲的優(yōu)點。
文檔編號G06F17/30GK101539945SQ20091009765
公開日2009年9月23日 申請日期2009年4月16日 優(yōu)先權(quán)日2009年4月16日
發(fā)明者黃理燦 申請人:浙江理工大學