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