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