最近一段時(shí)間,由于開題,我們系統(tǒng)的研究了存儲(chǔ)系統(tǒng)。從傳統(tǒng)的分布式存儲(chǔ)到現(xiàn)在比較流行的p2p分布式存儲(chǔ)都有了一些新的認(rèn)識(shí)。
下面我來總結(jié)一下這幾天的成效:
首先,對(duì)于傳統(tǒng)的分布式系統(tǒng),無(wú)非是在不同的區(qū)域搭建一些服務(wù)器,然后再在這些服務(wù)器上存儲(chǔ)數(shù)據(jù)。它解決了一些集中式存儲(chǔ)的問題,但是也存在著比如服務(wù)器成為瓶頸、由于帶寬而帶來的訪問不便等問題。因此,p2p分布式存儲(chǔ)應(yīng)運(yùn)而生!
我們?cè)賮矸治鰌2p分布式存儲(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).無(wú)論是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)用。
現(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ǔ)語(yǔ)義。主要是向用戶提供了一組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í)可以減少一定的冗余量。(如有需要了解更多的關(guān)于這些系統(tǒng)的細(xì)節(jié),可以聯(lián)系我)。
現(xiàn)在我想介紹一下最近幾年比較流行的Hadoop Distributed File System。由于其開源性,當(dāng)你需要進(jìn)行深入研究和想繼續(xù)改進(jìn)功能與性能時(shí),可以好好學(xué)習(xí)一下。HDFS是基于大數(shù)據(jù)集的存儲(chǔ)系統(tǒng)。該系統(tǒng)中擁有一個(gè)名字節(jié)點(diǎn)(NameNode)和多個(gè)數(shù)據(jù)節(jié)點(diǎn)(DataNode)。一個(gè)文件被分割為一個(gè)或者多個(gè)數(shù)據(jù)塊,這些數(shù)據(jù)塊存儲(chǔ)在一組數(shù)據(jù)節(jié)點(diǎn)中。名字結(jié)點(diǎn)執(zhí)行文件系統(tǒng)的名字空間操作,比如打開、關(guān)閉、重命名文件或目錄,還決定數(shù)據(jù)塊從數(shù)據(jù)結(jié)點(diǎn)的映射。數(shù)據(jù)結(jié)點(diǎn)負(fù)責(zé)提供客戶的讀寫請(qǐng)求。數(shù)據(jù)結(jié)點(diǎn)還依照名字結(jié)點(diǎn)的指令執(zhí)行數(shù)據(jù)塊的創(chuàng)建、刪除復(fù)制工作。
最后我介紹一下我們的想法:我們是在利用教育網(wǎng)的網(wǎng)絡(luò)條件下,產(chǎn)生一個(gè)新系統(tǒng),來完成以下三個(gè)方面的功能與應(yīng)用,首先是數(shù)據(jù)的遷移,其應(yīng)用場(chǎng)景如當(dāng)你需要傳送大文件時(shí),就現(xiàn)在的一些網(wǎng)絡(luò)和軟件,還沒有完全很好的方法,還有如你在需要打印東西時(shí),當(dāng)你沒有優(yōu)盤時(shí),也可以采用我們的系統(tǒng);其次是數(shù)據(jù)的共享,其應(yīng)用場(chǎng)景如當(dāng)你想共享你的一些mp3或者其他的資料時(shí),可以很方便的上載上去;最后是空間的優(yōu)化,我們想實(shí)現(xiàn)用戶在系統(tǒng)中運(yùn)用的空間比他提供給該系統(tǒng)的空間一樣或者更多,而且采用“激勵(lì)機(jī)制”,讓用戶的使用空間還可以有少量的增加,但我們不收取費(fèi)用。