分佈式文件系統比較

1、概述java

普通存儲方案:Rsync、DAS(IDE/SATA/SAS/SCSI等塊)、NAS(NFS、CIFS、SAMBA等文件系統)、SAN(FibreChannel, iSCSI, FoE存儲網絡塊),Openfiler、FreeNas(ZFS快照複製)因爲生產環境中每每因爲對存儲數據量很大,而SAN存儲價格又比較昂貴,所以大多會選擇分佈式
存儲來解決一下問題:
  1. 海量數據存儲問題
  2. 數據高可用問題(冗餘備份)問題
  3. 較高的讀寫性能和負載均衡問題
  4. 支持多平臺多語言問題
  5. 高併發問題

主要對別指標 csdn這表格太難用了,我仍是word整理後搬到這兒來的。node

 

指標git

適合類型github

文件分佈web

系統性能算法

複雜度數據庫

FUSEapi

POSIX網絡

備份機制架構

通信協議接口

社區支持

去重

開發語言

FastDFS

4KB~500MB

小文件合併存儲不分片處理

很高

簡單

不支持

不支持

組內冗餘備份

Api

HTTP

國內用戶羣

 

C語言

TFS

全部文件

小文件合併,以block組織分片

 

複雜

不支持

不支持

Block存儲多份,主輔災備

API

http

 

C++

MFS

大於64K

分片存儲

Master佔內存多

 

支持

支持

多點備份動態冗餘

使用fuse掛在

較多

 

Perl

HDFS

大文件

大文件分片分塊存儲

 

簡單

支持

支持

多副本

原生api

較多

 

java

Ceph

對象文件塊

OSD一主多從

 

複雜

支持

支持

多副本

原生api

較少

 

C++

MogileFS

海量小圖片

 

複雜

能夠支持

不支持

動態冗餘

原生api

文檔少

 

Perl

ClusterFS

大文件

 

 

簡單

支持

支持

鏡像

 

 

C

 

 

2、經常使用的分佈式文件系統

常見的分佈式文件系統有FastDFS,GFS、HDFS、Ceph 、GridFS 、mogileFS、TFS等。各自適用於不一樣的領域。它們都不是系統級的分佈式文件系統,而是應用級的分佈式文件存儲服務。

FastDFS介紹

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

請參照FastDFS文件系統(一) fastdfs是什麼? 

 

GFS(Google File System)

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

 

Google公司爲了知足本公司需求而開發的基於Linux的專有分佈式文件系統。。儘管Google公佈了該系統的一些技術細節,但Google並無將該系統的軟件部分做爲開源軟件發佈。
下面分佈式文件系統都是類 GFS的產品。

HDFS(Hadoop Distributed File System)
=======================
Hadoop 實現了一個分佈式文件系統,主要用於大數據計算存儲,簡稱HDFS。 Hadoop是Apache Lucene創始人Doug Cutting開發的使用普遍的文本搜索庫。它起源於Apache Nutch,後者是一個開源的網絡搜索引擎,自己也是Luene項目的一部分。Aapche Hadoop架構是MapReduce算法的一種開源應用,是Google開創其帝國的重要基石。

=======================
是加州大學聖克魯茲分校的Sage weil攻讀博士時開發的分佈式文件系統。Ceph可以在維護 POSIX 兼容性的同時加入了複製和容錯功能。Sage weil並使用Ceph完成了他的論文。說 ceph 性能最高,C++編寫的代碼,支持Fuse,而且沒有單點故障依賴, 因而下載安裝, 因爲 ceph 使用 btrfs 文件系統, 而btrfs 文件系統須要 Linux 2.6.34 以上的內核才支持。

GridFS文件系統
=======================
MongoDB是一種知名的NoSql數據庫,GridFS是MongoDB的一個內置功能,它提供一組文件操做的API以利用MongoDB存儲文件,GridFS的基本原理是將文件保存在兩個Collection中,一個保存文件索引,一個保存文件內容,文件內容按必定大小分紅若干塊,每一塊存在一個Document中,這種方法不只提供了文件存儲,還提供了對文件相關的一些附加屬性(好比MD5值,文件名等等)的存儲。文件在GridFS中會按4MB爲單位進行分塊存儲。

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,用這個模塊能夠編寫客戶端程序,實現文件的備份管理功能。


TFS
-------------------------------------
TFS(Taobao !FileSystem)是一個高可擴展、高可用、高性能、面向互聯網服務的分佈式文件系統,主要針對海量的非結構化數據,它構築在普通的Linux機器 集羣上,可爲外部提供高可靠和高併發的存儲訪問。TFS爲淘寶提供海量小文件存儲,一般文件大小不超過1M,知足了淘寶對小文件存儲的需求,被普遍地應用 在淘寶各項應用中。它採用了HA架構和平滑擴容,保證了整個文件系統的可用性和擴展性。同時扁平化的數據組織結構,可將文件名映射到文件的物理地址,簡化 了文件的訪問流程,必定程度上爲TFS提供了良好的讀寫性能。
相關文章
相關標籤/搜索