FastDFS教程
FastDFS環境搭建
分布式文件系統FastDFS的HTTP訪問
FastDFS在Java項目中開發示例
FastDFS在web項目中的應用
FastDFS分布式文件系統集群

FastDFS教程

分布式文件系統

分布式文件系統 (Distributed File System) 是一個軟件/軟件服務器,這個軟件可以用來管理文件。但這個軟件所管理的文件通常不是在一個服務器節點上,而是在多個服務器節點上,這些服務器節點通過網絡相連構成一個龐大的文件存儲服務器集群,這些服務器都用于存儲文件資源,通過分布式文件系統來管理這些服務器上的文件。

常見的分布式文件系統有:FastDFS、GFS、HDFS、Lustre 、Ceph 、GridFS 、mogileFS、TFS等。

分布式文件系統與傳統文件系統對比

傳統方式弊端

● 如果用戶數量多,IO操作比較多,對磁盤訪問壓力很大

● 如果磁盤發生故障,會造成數據丟失

● 存儲容量有限

FastDFS簡介

FastDFS是一個開源的輕量級分布式文件系統,為互聯網應用量身定做,簡單、靈活、高效,采用C語言開發,由阿里巴巴開發并開源。

FastDFS對文件進行管理,功能包括:文件存儲、文件同步、文件訪問(文件上傳、文件下載、文件刪除)等,解決了大容量文件存儲的問題,特別適合以文件為載體的在線服務,如相冊網站、文檔網站、圖片網站、視頻網站等等。

FastDFS充分考慮了冗余備份、線性擴容等機制,并注重高可用、高性能等指標,使用FastDFS很容易搭建一套高性能的文件服務器集群提供文件上傳、下載等服務。

FastDFS發展歷史

2008年4月項目啟動,7月發布第一個版本V1.00,兩年時間內持續升級到V1.29

2010年8月推出V2.00

2011年6月推出V3.00

2012年10月推出V4.0.0

2013年12月推出V5.0.0

截止目前最新版是V5.11(2017年6月發布)

FastDFS系統架構從第一個版本發布后一直沒有大的調整,高版本完全兼容低版本的數據,可以做到平滑升級,推薦更新升級到最新版本

FastDFS代碼托管在github上:https://github.com/happyfish100/fastdfs

FastDFS整體架構

FastDFS文件系統由兩大部分構成,一個是客戶端,一個是服務端

客戶端通常指我們的程序,比如我們的Java程序去連接FastDFS、操作FastDFS,那我們的Java程序就是一個客戶端,FastDFS提供專有API訪問,目前提供了C、Java和PHP幾種編程語言的API,用來訪問FastDFS文件系統。

服務端由兩個部分構成:一個是跟蹤器(tracker),一個是存儲節點(storage)

跟蹤器(tracker)主要做調度工作,在內存中記錄集群中存儲節點storage的狀態信息,是前端Client和后端存儲節點storage的樞紐。因為相關信息全部在內存中,Tracker server的性能非常高,一個較大的集群(比如上百個group)中有3臺就足夠了。

存儲節點(storage)用于存儲文件,包括文件和文件屬性(meta data)都保存到存儲服務器磁盤上,完成文件管理的所有功能:文件存儲、文件同步和提供文件訪問等。

FastDFS線上使用者

UC (http://www.uc.cn/ ,存儲容量超過10TB)

支付寶(http://www.alipay.com/)

京東商城(http://www.jd.com/)

淘淘搜(http://www.taotaosou.com/)

飛信(http://feixin.10086.cn/)

趕集網(http://www.ganji.com/)

淘米網(http://www.61.com/)

迅雷(http://www.xunlei.com/)

螞蜂窩(http://www.mafengwo.cn/)

5173(http://www.5173.com/)

華師京城教育云平臺(http://www.hsjdy.com.cn/)

視友網(http://www.cuctv.com/)

搜道網(http://www.sodao.com/)

58同城(http://www.58.com/)

商務聯盟網(http://www.biz72.com/)

中青網(http://www.youth.cn/)

保利威視(http://www.freeovp.com/)

夢芭莎(http://www.moonbasa.com/)

51CTO(http://www.51cto.com/)

搜房網(http://www.soufun.com/)

全部教程