P2P存儲(chǔ)是基于P2P(Peer-to-Peer)技術(shù)實(shí)現(xiàn)的一種網(wǎng)絡(luò)存儲(chǔ),將很多機(jī)器用對(duì)等的方式組織起來共同為用戶提供超大容量的數(shù)據(jù)存儲(chǔ)服務(wù)1。
P2P介紹P2P 的全稱是 Peer-To-Peer,其字面的意思是:對(duì)等、點(diǎn)到點(diǎn)的意思。P2P 是一種網(wǎng)絡(luò)模型:一種架構(gòu)。
在互聯(lián)網(wǎng)上的網(wǎng)絡(luò)技術(shù)。它是計(jì)算機(jī)網(wǎng)絡(luò)和分布式系統(tǒng)結(jié)合的產(chǎn)物,核心思想是去掉了中央服務(wù)器的概念,將互聯(lián)網(wǎng)建立在對(duì)等互聯(lián)的基礎(chǔ)上,實(shí)現(xiàn)最大程度的資源共享。
除了字面理解 P2P 的意思,還可以給出更嚴(yán)格的定義:
① P2P 網(wǎng)絡(luò)以互聯(lián)網(wǎng)為基礎(chǔ),并具有互聯(lián)網(wǎng)的所有基本性質(zhì)。
② P2P 網(wǎng)絡(luò)中有兩種基本的行為:一種提供資源;另一種是消費(fèi)資源(接受
資源)。
③ 組成 P2P 網(wǎng)絡(luò)的所有結(jié)點(diǎn)之間的關(guān)系都是對(duì)等的,且同時(shí)都具備(2)中
的兩種行為。
④ P2P 網(wǎng)絡(luò)依賴于節(jié)點(diǎn)的存在,且節(jié)點(diǎn)可以自由地加入或退出。
⑤ 當(dāng)有 Peer 加入或退出時(shí),P2P 網(wǎng)絡(luò)仍保持上面 4 種性質(zhì)。
一個(gè)完整的 P2P網(wǎng)絡(luò)模型如下圖1 所示。
P2P 的分類根據(jù)拓?fù)浣Y(jié)構(gòu)的不同??梢詫?P2P 網(wǎng)絡(luò)分為集中式 P2P 網(wǎng)絡(luò)、全分布式 P2P 網(wǎng)絡(luò)和混合式 P2P 網(wǎng)絡(luò)。
① 集中式 P2P 網(wǎng)絡(luò)
集中式 P2P 網(wǎng)絡(luò)不是完全意義上的 P2P 網(wǎng)絡(luò),它有一個(gè)中央服務(wù)器,掌握著整個(gè)網(wǎng)絡(luò)的節(jié)點(diǎn)信息和文件信息。當(dāng)某個(gè)節(jié)點(diǎn) A 想要加入到網(wǎng)絡(luò)中來時(shí),它會(huì)向中央服務(wù)器發(fā)送一個(gè)注冊(cè)信息,包括了節(jié)點(diǎn)本身的信息和節(jié)點(diǎn)上的文件信息。如果另外一個(gè)節(jié)點(diǎn) D 想要訪問 A 上的某個(gè)文件時(shí),D 就向服務(wù)器發(fā)送請(qǐng)求信息,中央服務(wù)器就給 D 返回 A 注冊(cè)時(shí)的信息 M。然后 D 就根據(jù)信息 M 與 A 通話。這種結(jié)構(gòu)的 P2P 網(wǎng)絡(luò)有一個(gè)明顯的缺點(diǎn),就是如果服務(wù)器的性能不夠好,那面對(duì)大量的訪問,一旦服務(wù)器出現(xiàn)故障,整個(gè)系統(tǒng)也就陷入癱瘓。典型的集中式 P2P
網(wǎng)絡(luò)是 Napster。
② 全分布式 P2P 網(wǎng)絡(luò)
全分布式 P2P 網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都既充當(dāng)服務(wù)器又充當(dāng)客戶端。根據(jù)節(jié)點(diǎn)的組成結(jié)構(gòu)不同,可以分為結(jié)構(gòu)化 P2P 網(wǎng)絡(luò)和非結(jié)構(gòu)化 P2P 網(wǎng)絡(luò)兩種。
1) 全分布式結(jié)構(gòu)化 P2P 網(wǎng)絡(luò)全分布式結(jié)構(gòu)化 P2P 網(wǎng)絡(luò)是一種基于分布式散列表(Distributed Hash Table,
簡(jiǎn)稱 DHT)技術(shù)來組建的網(wǎng)絡(luò),可將大量的結(jié)點(diǎn)信息組織起來,形成一個(gè)巨大的散列表。網(wǎng)絡(luò)中的所有結(jié)點(diǎn)共同維護(hù)這個(gè)表,每個(gè)結(jié)點(diǎn)維護(hù)表的一小片區(qū)域。DHT把文件的信息和存儲(chǔ)文件節(jié)點(diǎn)的信息形成一個(gè)鍵值對(duì),在全分布式結(jié)構(gòu)化 P2P 網(wǎng)絡(luò)中可以很方便地尋找出自己想要的資源。缺點(diǎn)是在網(wǎng)絡(luò)中節(jié)點(diǎn)高頻率地加入和退出的時(shí)候,系統(tǒng)需要花費(fèi)很大的開銷來維護(hù) DHT。
2) 全分布式非結(jié)構(gòu)化 P2P 網(wǎng)絡(luò)在非結(jié)構(gòu)化 P2P 網(wǎng)絡(luò)中,信息定位不嚴(yán)格,文件自由地存儲(chǔ)在節(jié)點(diǎn)上。這種結(jié)構(gòu)的網(wǎng)絡(luò)構(gòu)建也比較簡(jiǎn)單,是基于完全隨機(jī)圖。與結(jié)構(gòu)化 P2P 網(wǎng)絡(luò)相比,非結(jié)構(gòu)化 P2P 網(wǎng)絡(luò)的優(yōu)點(diǎn)就是能夠適應(yīng)網(wǎng)絡(luò)中的動(dòng)態(tài)變化。非結(jié)構(gòu)化 P2P 網(wǎng)絡(luò)采用的是洪泛機(jī)制搜索文件[13,14],缺點(diǎn)就是當(dāng)網(wǎng)絡(luò)中的結(jié)點(diǎn)不斷增加,將造成網(wǎng)絡(luò)流量增加,造成網(wǎng)絡(luò)性能急劇下降。
③ 混合式 P2P 網(wǎng)絡(luò)混合式 P2P 網(wǎng)絡(luò)中,按節(jié)點(diǎn)能力不同區(qū)分為超級(jí)節(jié)點(diǎn)和普通節(jié)點(diǎn)。超級(jí)節(jié)點(diǎn)具有更高性能,把它周圍的普通節(jié)點(diǎn)聚集形成一個(gè)小區(qū)域,可看成是一個(gè)小型的集中式 P2P 網(wǎng)絡(luò)。另外,可根據(jù)超級(jí)節(jié)點(diǎn)的性能的不同。,選擇超級(jí)節(jié)點(diǎn)中性能更優(yōu)的節(jié)點(diǎn)超級(jí)節(jié)點(diǎn)的“超級(jí)節(jié)點(diǎn)”?;旌鲜?P2P 網(wǎng)絡(luò)結(jié)構(gòu)如圖3 所示。KaZaa 就是一種混合式 P2P 網(wǎng)絡(luò)。
P2P存儲(chǔ)對(duì)于傳統(tǒng)的分布式系統(tǒng),無非是在不同的區(qū)域搭建一些服務(wù)器,然后再在這些服務(wù)器上存儲(chǔ)數(shù)據(jù)。它解決了一些集中式存儲(chǔ)的問題,但是也存在著比如服務(wù)器成為瓶頸、由于帶寬而帶來的訪問不便等問題。因此,p2p分布式存儲(chǔ)應(yīng)運(yùn)而生!
p2p分布式存儲(chǔ),他的總體思想就是讓客戶也成為服務(wù)器,當(dāng)你在存儲(chǔ)數(shù)據(jù)的同時(shí),也提供空間讓別人來存儲(chǔ)。這就很好的解決了由于服務(wù)器很少而產(chǎn)生的瓶頸,也能在速度上加以改進(jìn)。但是同樣它也帶來了很多的問題:(1)數(shù)據(jù)穩(wěn)定性、(2)數(shù)據(jù)的一致性、(3)數(shù)據(jù)的安全性和隱私性、(4)數(shù)據(jù)的防攻擊性。當(dāng)然還有技術(shù)上的難題,比如覆蓋網(wǎng)絡(luò)和節(jié)點(diǎn)信息收集算法,數(shù)據(jù)的放置與組織,復(fù)制管理,負(fù)載平衡,數(shù)據(jù)遷移,數(shù)據(jù)索引,公平性維護(hù)。
現(xiàn)有的p2p分布式存儲(chǔ)主要分為兩種類型:p2p存儲(chǔ)服務(wù)系統(tǒng),主要是采用許多服務(wù)器用對(duì)等的方式整合起來,來提供服務(wù)的一類存儲(chǔ)系統(tǒng),比如現(xiàn)有的OceanStore,PAST,CFS,Tangler,Granary。還有一類便是p2p存儲(chǔ)交換系統(tǒng),主要構(gòu)架是純p2p的模式,用以實(shí)現(xiàn)數(shù)據(jù)的備份,當(dāng)然用戶得付出一些代價(jià)?,F(xiàn)有的系統(tǒng)如Freenet, Nations, Pastiche, FARSITE.
p2p存儲(chǔ)系統(tǒng)體系結(jié)構(gòu).無論是p2p存儲(chǔ)服務(wù)系統(tǒng)還是p2p存儲(chǔ)交換系統(tǒng),他們的基本體系結(jié)構(gòu)都是相同的,主要是一下的5個(gè)層次:覆蓋網(wǎng)和信息收集,基本數(shù)據(jù)放置和組織,數(shù)據(jù)放置和組織優(yōu)化,基本的系統(tǒng)映像和系統(tǒng)映像的轉(zhuǎn)換與上層應(yīng)用。
優(yōu)點(diǎn)對(duì)等結(jié)構(gòu)(P2P)從用戶的使用方式來看,系統(tǒng)中每個(gè)用戶既向其他用戶提供資源,也從其他用戶那里獲取資源。從體系結(jié)構(gòu)來看,無中心結(jié)構(gòu),結(jié)點(diǎn)之間對(duì)等,通過互相合作來完成用戶任務(wù)。P2P結(jié)構(gòu)的優(yōu)點(diǎn)表現(xiàn)在:沒有中心結(jié)點(diǎn),不易形成系統(tǒng)瓶頸、不易受攻擊,可擴(kuò)展性好,自組織性好。
P2P存儲(chǔ)系統(tǒng)介紹現(xiàn)有的許多p2p分布式存儲(chǔ)系統(tǒng)比較。首先是最早的分布式存儲(chǔ)系統(tǒng)OceanStore,它利用Tapestry路由機(jī)制,支持對(duì)大量復(fù)制的移動(dòng)數(shù)據(jù)的串行化更行策略,提供了專門的存儲(chǔ),在架構(gòu)上采取了自己的專用服務(wù)器,來保證數(shù)據(jù)的穩(wěn)定性,一致性與安全性,在很多策略上都值得我們借鑒,但是是需要客戶付費(fèi),而且設(shè)計(jì)很復(fù)雜。然后我們介紹另外一種分布式存儲(chǔ)系統(tǒng)PAST,它也是基于存儲(chǔ)服務(wù)的,它與OceanStore最大的不同就是設(shè)計(jì)是一切從簡(jiǎn)的。它采用Pastry提供的路由機(jī)制,試圖利用網(wǎng)絡(luò)中限制的存儲(chǔ)節(jié)點(diǎn)建立一個(gè)更為完善的存儲(chǔ)語義。主要是向用戶提供了一組key-value對(duì)的數(shù)據(jù)存儲(chǔ),在解決負(fù)載均衡方面也有其獨(dú)道之處。最重要的是它不支持并發(fā)訪問,即它只提供個(gè)人存儲(chǔ),不提供共享。最后我們討論一下基于p2p存儲(chǔ)交換系統(tǒng)——Pastiche,它主要用來進(jìn)行備份操作系統(tǒng)。由于該系統(tǒng)不提供服務(wù)器存儲(chǔ),所以用戶提供了一定的空間但不一定他能享受同樣大小的空間,比如一個(gè)用戶提供了1G空間,但最后他可能只能享受500M或者更小,因?yàn)槠溆嗟目臻g需要進(jìn)行復(fù)制策略。但是由于操作系統(tǒng)的文件重復(fù)率很高,所以在復(fù)制時(shí)可以減少一定的冗余量。
本詞條內(nèi)容貢獻(xiàn)者為:
李嘉騫 - 博士 - 同濟(jì)大學(xué)