FastDFS文件系統(二) fastdfs和其他文件系統區別
一、概述
普通存儲方案:Rsync、DAS(IDE/SATA/SAS/SCSI等塊)、NAS(NFS、CIFS、SAMBA等文件系統)、SAN(FibreChannel, iSCSI, FoE存儲網絡塊),Openfiler、FreeNas(ZFS快照復制)由於生產環境中往往由於對存儲數據量很大,而SAN存儲價格又比較昂貴,因此大多會選擇分布式
存儲來解決一下問題:
- 海量數據存儲問題
- 數據高可用問題(冗余備份)問題
- 較高的讀寫性能和負載均衡問題
- 支持多平台多語言問題
- 高並發問題
主要對別指標 csdn這表格太難用了,我還是word整理后搬到這兒來的。
指標 |
適合類型 |
文件分布 |
系統性能 |
復雜度 |
FUSE |
POSIX |
備份機制 |
通訊協議接口 |
社區支持 |
去重 |
開發語言 |
FastDFS |
4KB~500MB |
小文件合並存儲不分片處理 |
很高 |
簡單 |
不支持 |
不支持 |
組內冗余備份 |
Api HTTP |
國內用戶群 |
|
C語言 |
TFS |
所有文件 |
小文件合並,以block組織分片 |
|
復雜 |
不支持 |
不支持 |
Block存儲多份,主輔災備 |
API http |
少 |
|
C++ |
MFS |
大於64K |
分片存儲 |
Master占內存多 |
|
支持 |
支持 |
多點備份動態冗余 |
使用fuse掛在 |
較多 |
|
Perl |
HDFS |
大文件 |
大文件分片分塊存儲 |
|
簡單 |
支持 |
支持 |
多副本 |
原生api |
較多 |
|
|
Ceph |
對象文件塊 |
OSD一主多從 |
|
復雜 |
支持 |
支持 |
多副本 |
原生api |
較少 |
|
C++ |
MogileFS |
海量小圖片 |
|
高 |
復雜 |
可以支持 |
不支持 |
動態冗余 |
原生api |
文檔少 |
|
Perl |
ClusterFS |
大文件 |
|
|
簡單 |
支持 |
支持 |
鏡像 |
|
多 |
|
C |
二、常用的分布式文件系統
常見的分布式文件系統有FastDFS,GFS、HDFS、Ceph 、GridFS 、mogileFS、TFS等。各自適用於不同的領域。它們都不是系統級的分布式文件系統,而是應用級的分布式文件存儲服務。
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開創其帝國的重要基石。
MongoDB是一種知名的NoSql數據庫,GridFS是MongoDB的一個內置功能,它提供一組文件操作的API以利用MongoDB存儲文件,GridFS的基本原理是將文件保存在兩個Collection中,一個保存文件索引,一個保存文件內容,文件內容按一定大小分成若干塊,每一塊存在一個Document中,這種方法不僅提供了文件存儲,還提供了對文件相關的一些附加屬性(比如MD5值,文件名等等)的存儲。文件在GridFS中會按4MB為單位進行分塊存儲。
MogileFS
Hadoop 實現了一個分布式文件系統,主要用於大數據計算存儲,簡稱HDFS。 Hadoop是Apache Lucene創始人Doug Cutting開發的使用廣泛的文本搜索庫。它起源於Apache Nutch,后者是一個開源的網絡搜索引擎,本身也是Luene項目的一部分。Aapche Hadoop架構是MapReduce算法的一種開源應用,是Google開創其帝國的重要基石。
Ceph(
https://github.com/ceph/ceph)
=======================
是加州大學聖克魯茲分校的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提供了良好的讀寫性能。
http://blog.csdn.net/wk313753744/article/details/49943835