最近一段時間,由于開題,我們系統(tǒng)的研究了存儲系統(tǒng)。從傳統(tǒng)的分布式存儲到現(xiàn)在比較流行的p2p分布式存儲都有了一些新的認(rèn)識。
下面我來總結(jié)一下這幾天的成效:
首先,對于傳統(tǒng)的分布式系統(tǒng),無非是在不同的區(qū)域搭建一些服務(wù)器,然后再在這些服務(wù)器上存儲數(shù)據(jù)。它解決了一些集中式存儲的問題,但是也存在著比如服務(wù)器成為瓶頸、由于帶寬而帶來的訪問不便等問題。因此,p2p分布式存儲應(yīng)運而生!
我們再來分析p2p分布式存儲,他的總體思想就是讓客戶也成為服務(wù)器,當(dāng)你在存儲數(shù)據(jù)的同時,也提供空間讓別人來存儲。這就很好的解決了由于服務(wù)器很少而產(chǎn)生的瓶頸,也能在速度上加以改進。但是同樣它也帶來了很多的問題:(1)數(shù)據(jù)穩(wěn)定性、(2)數(shù)據(jù)的一致性、(3)數(shù)據(jù)的安全性和隱私性、(4)數(shù)據(jù)的防攻擊性。當(dāng)然還有技術(shù)上的難題,比如覆蓋網(wǎng)絡(luò)和節(jié)點信息收集算法,數(shù)據(jù)的放置與組織,復(fù)制管理,負(fù)載平衡,數(shù)據(jù)遷移,數(shù)據(jù)索引,公平性維護。。。
現(xiàn)有的p2p分布式存儲主要分為兩種類型:p2p存儲服務(wù)系統(tǒng),主要是采用許多服務(wù)器用對等的方式整合起來,來提供服務(wù)的一類存儲系統(tǒng),比如現(xiàn)有的OceanStore,PAST,CFS,Tangler,Granary。還有一類便是p2p存儲交換系統(tǒng),主要構(gòu)架是純p2p的模式,用以實現(xiàn)數(shù)據(jù)的備份,當(dāng)然用戶得付出一些代價。現(xiàn)有的系統(tǒng)如Freenet, Nations, Pastiche, FARSITE.
p2p存儲系統(tǒng)體系結(jié)構(gòu).無論是p2p存儲服務(wù)系統(tǒng)還是p2p存儲交換系統(tǒng),他們的基本體系結(jié)構(gòu)都是相同的,主要是一下的5個層次:覆蓋網(wǎng)和信息收集,基本數(shù)據(jù)放置和組織,數(shù)據(jù)放置和組織優(yōu)化,基本的系統(tǒng)映像和系統(tǒng)映像的轉(zhuǎn)換與上層應(yīng)用。
現(xiàn)有的許多p2p分布式存儲系統(tǒng)比較。首先是最早的分布式存儲系統(tǒng)OceanStore,它利用Tapestry路由機制,支持對大量復(fù)制的移動數(shù)據(jù)的串行化更行策略,提供了專門的存儲,在架構(gòu)上采取了自己的專用服務(wù)器,來保證數(shù)據(jù)的穩(wěn)定性,一致性與安全性,在很多策略上都值得我們借鑒,但是是需要客戶付費,而且設(shè)計很復(fù)雜。然后我們介紹另外一種分布式存儲系統(tǒng)PAST,它也是基于存儲服務(wù)的,它與OceanStore最大的不同就是設(shè)計是一切從簡的。它采用Pastry提供的路由機制,試圖利用網(wǎng)絡(luò)中限制的存儲節(jié)點建立一個更為完善的存儲語義。主要是向用戶提供了一組key-value對的數(shù)據(jù)存儲,在解決負(fù)載均衡方面也有其獨道之處。最重要的是它不支持并發(fā)訪問,即它只提供個人存儲,不提供共享。最后我們討論一下基于p2p存儲交換系統(tǒng)——Pastiche,它主要用來進行備份操作系統(tǒng)。由于該系統(tǒng)不提供服務(wù)器存儲,所以用戶提供了一定的空間但不一定他能享受同樣大小的空間,比如一個用戶提供了1G空間,但最后他可能只能享受500M或者更小,因為其余的空間需要進行復(fù)制策略。但是由于操作系統(tǒng)的文件重復(fù)率很高,所以在復(fù)制時可以減少一定的冗余量。(如有需要了解更多的關(guān)于這些系統(tǒng)的細節(jié),可以聯(lián)系我)。
現(xiàn)在我想介紹一下最近幾年比較流行的Hadoop Distributed File System。由于其開源性,當(dāng)你需要進行深入研究和想繼續(xù)改進功能與性能時,可以好好學(xué)習(xí)一下。HDFS是基于大數(shù)據(jù)集的存儲系統(tǒng)。該系統(tǒng)中擁有一個名字節(jié)點(NameNode)和多個數(shù)據(jù)節(jié)點(DataNode)。一個文件被分割為一個或者多個數(shù)據(jù)塊,這些數(shù)據(jù)塊存儲在一組數(shù)據(jù)節(jié)點中。名字結(jié)點執(zhí)行文件系統(tǒng)的名字空間操作,比如打開、關(guān)閉、重命名文件或目錄,還決定數(shù)據(jù)塊從數(shù)據(jù)結(jié)點的映射。數(shù)據(jù)結(jié)點負(fù)責(zé)提供客戶的讀寫請求。數(shù)據(jù)結(jié)點還依照名字結(jié)點的指令執(zhí)行數(shù)據(jù)塊的創(chuàng)建、刪除復(fù)制工作。
最后我介紹一下我們的想法:我們是在利用教育網(wǎng)的網(wǎng)絡(luò)條件下,產(chǎn)生一個新系統(tǒng),來完成以下三個方面的功能與應(yīng)用,首先是數(shù)據(jù)的遷移,其應(yīng)用場景如當(dāng)你需要傳送大文件時,就現(xiàn)在的一些網(wǎng)絡(luò)和軟件,還沒有完全很好的方法,還有如你在需要打印東西時,當(dāng)你沒有優(yōu)盤時,也可以采用我們的系統(tǒng);其次是數(shù)據(jù)的共享,其應(yīng)用場景如當(dāng)你想共享你的一些mp3或者其他的資料時,可以很方便的上載上去;最后是空間的優(yōu)化,我們想實現(xiàn)用戶在系統(tǒng)中運用的空間比他提供給該系統(tǒng)的空間一樣或者更多,而且采用“激勵機制”,讓用戶的使用空間還可以有少量的增加,但我們不收取費用。