1. 程式人生 > >各種分散式檔案系統簡介

各種分散式檔案系統簡介

  常見的分散式檔案系統有,GFS、HDFS、Lustre 、Ceph 、GridFS 、mogileFS、TFS、FastDFS等。各自適用於不同的領域。它們都不是系統級的分散式檔案系統,而是應用級的分散式檔案儲存服務。

Google學術論文,這是眾多分散式檔案系統的起源

==================================

Google File System(大規模分散檔案系統) MapReduce (大規模分散FrameWork) BigTable(大規模分散資料庫) Chubby(分散鎖服務) 一般你搜索Google_三大論文中文版(Bigtable、 GFS、 Google MapReduce)就有了。

做箇中文版下載源:http://dl.iteye.com/topics/download/38db9a29-3e17-3dce-bc93-df9286081126

做個原版地址連結:

http://labs.google.com/papers/gfs.html

http://labs.google.com/papers/bigtable.html

http://labs.google.com/papers/mapreduce.html

GFS(Google File System) -------------------------------------- Google公司為了滿足本公司需求而開發的基於Linux的專有分散式檔案系統。。儘管Google公佈了該系統的一些技術細節,但Google並沒有將該系統的軟體部分作為開源軟體釋出。 下面分散式檔案系統都是類 GFS的產品。 HDFS --------------------------------------
Hadoop 實現了一個分散式檔案系統(Hadoop Distributed File System),簡稱HDFS。 Hadoop是Apache Lucene創始人Doug Cutting開發的使用廣泛的文字搜尋庫。它起源於Apache Nutch,後者是一個開源的網路搜尋引擎,本身也是Luene專案的一部分。Aapche Hadoop架構是MapReduce演算法的一種開源應用,是Google開創其帝國的重要基石。 Ceph --------------------------------------- 是加州大學聖克魯茲分校的Sage weil攻讀博士時開發的分散式檔案系統。並使用Ceph完成了他的論文。 說 ceph 效能最高,C++編寫的程式碼,支援Fuse,並且沒有單點故障依賴, 於是下載安裝, 由於 ceph 使用 btrfs 檔案系統, 而btrfs 檔案系統需要 Linux 2.6.34 以上的核心才支援。 可是ceph太不成熟了,它基於的btrfs本身就不成熟,它的官方網站上也明確指出不要把ceph用在生產環境中。
Lustre --------------------------------------- Lustre是一個大規模的、安全可靠的,具備高可用性的叢集檔案系統,它是由SUN公司開發和維護的。 該專案主要的目的就是開發下一代的叢集檔案系統,可以支援超過10000個節點,數以PB的資料量儲存系統。 目前Lustre已經運用在一些領域,例如HP SFS產品等。
MogileFS --------------------------------------- 由memcahed的開發公司danga一款perl開發的產品,目前國內使用mogielFS的有圖片託管網站yupoo等。 MogileFS是一套高效的檔案自動備份元件,由Six Apart開發,廣泛應用在包括LiveJournal等web2.0站點上。 MogileFS由3個部分組成:   第1個部分是server端,包括mogilefsd和mogstored兩個程式。前者即是 mogilefsd的tracker,它將一些全域性資訊儲存在資料庫裡,例如站點domain,class,host等。後者即是儲存節點(store node),它其實是個HTTP Daemon,預設偵聽在7500埠,接受客戶端的檔案備份請求。在安裝完後,要執行mogadm工具將所有的store node註冊到mogilefsd的資料庫裡,mogilefsd會對這些節點進行管理和監控。   第2個部分是utils(工具集),主要是MogileFS的一些管理工具,例如mogadm等。   第3個部分是客戶端API,目前只有Perl API(MogileFS.pm)、PHP,用這個模組可以編寫客戶端程式,實現檔案的備份管理功能。 mooseFS --------------------------------------- 持FUSE,相對比較輕量級,對master伺服器有單點依賴,用perl編寫,效能相對較差,國內用的人比較多 FastDFS --------------------------------------- 是一款類似Google FS的開源分散式檔案系統,是純C語言開發的。 FastDFS是一個開源的輕量級分散式檔案系統,它對檔案進行管理,功能包括:檔案儲存、檔案同步、檔案訪問(檔案上傳、檔案下載)等,解決了大容量儲存和負載均衡的問題。特別適合以檔案為載體的線上服務,如相簿網站、視訊網站等等。 FastDfs google Code     http://code.google.com/p/fastdfs/ 分散式檔案系統FastDFS架構剖析   http://www.programmer.com.cn/4380/ TFS ------------------------------------- TFS(Taobao !FileSystem)是一個高可擴充套件、高可用、高效能、面向網際網路服務的分散式檔案系統,主要針對海量的非結構化資料,它構築在普通的Linux機器 叢集上,可為外部提供高可靠和高併發的儲存訪問。TFS為淘寶提供海量小檔案儲存,通常檔案大小不超過1M,滿足了淘寶對小檔案儲存的需求,被廣泛地應用 在淘寶各項應用中。它採用了HA架構和平滑擴容,保證了整個檔案系統的可用性和擴充套件性。同時扁平化的資料組織結構,可將檔名對映到檔案的實體地址,簡化 了檔案的訪問流程,一定程度上為TFS提供了良好的讀寫效能。 GridFS檔案系統 -------------------------------------
MongoDB是一種知名的NoSql資料庫,GridFS是MongoDB的一個內建功能,它提供一組檔案操作的API以利用MongoDB儲存檔案,GridFS的基本原理是將檔案儲存在兩個Collection中,一個儲存檔案索引,一個儲存檔案內容,檔案內容按一定大小分成若干塊,每一塊存在一個Document中,這種方法不僅提供了檔案儲存,還提供了對檔案相關的一些附加屬性(比如MD5值,檔名等等)的儲存。檔案在GridFS中會按4MB為單位進行分塊儲存。

MongoDB GridFS 資料讀取效率 benchmark
http://blog.nosqlfan.com/html/730.html nginx + gridfs 實現圖片的分散式儲存  安裝(一年後出問題了) http://www.cnblogs.com/zhangmiao-chp/archive/2011/05/05/2038285.html 基於MongoDB GridFS的圖片儲存  http://liut.cc/blog/2010/12/about-imsto_my-first-open-source-project.html nginx+mongodb-gridfs+squid http://1008305.blog.51cto.com/998305/885340