目錄
•FastDFS簡介
• 系統架構
• 相關術語
• 同步機制
• 通信協議
• 目錄結構
• 安裝和運行
• 和其他系統對
FastDFS簡介
開源的輕量級分佈式文件存儲系統
擁有負載均衡,可以解決大容量的文件存儲和高併發訪問的問題
磁盤陣列(RAID)的軟件方式實現,利用廉價的I硬盤進行文件存儲
輕易實現存儲服務器在線擴容 功能
支持相同內容的文件只保存一份,節約磁盤空間
只可以通過Client API訪問,不支持通過POSIX訪問方式
適用場景為大中型網站,一般用來存儲資源文件(圖片、視頻等等)
系統架構
整體架構圖
文件上傳流程示意圖
具體過程描述:
1. client客戶端詢問tracker上傳到的storage,此時不需要附加參數;
2. tracker會返回一個可供使用的storage;
3. client客戶端直接和可用的storage通訊,這樣就完成了文件的上傳。
文件下載流程示意圖
1. client客戶端詢問tracker下載文件的storage,參數為文件標識(組名和文件名);
2. tracker馬上提供一臺可用的storage;
3. client客戶端和storage通訊,直接完成文件的下載。
相關術語
•Tracker Server:跟蹤服務器,負責調度,在訪問上起負載均衡的作用。記錄storage server的狀態,是連接Client和Storage server的橋樑。
• Storage Server:存儲服務器,文件和meta data都保存到存儲服務器上
• group:組,也可稱為卷。同組內服務器上的文件是完全相同的
• 文件標識:包括兩部分:組名和文件名(包含路徑)
• meta data:文件相關屬性,鍵值對(Key Value Pair)方式,如:width=1024,heigth=768
同步機制
•同一組內的storage server之間是對等的,文件上傳、刪除等操作可以在任意一臺storage server上進行;
•文件同步只在同組內的storage server之間進行,採用push方式,即源服務器同步給目標服務器;
•源頭數據才需要同步,備份數據不需要再次同步,否則就構成環路了;
•上述第二條規則有個例外,就是新增加一臺storage server時,由已有的一臺storage server將已有的所有數據(包括源頭數據和備份數據)同步給該新增服務器。
通信協議
•協議包由兩部分組成:header以及body
• header共10字節,格式如下: –8 bytes body length – 1 byte command – 1 byte status
• body數據包格式由具體的命令的決定,body可以為空
運行時目錄結構
1.tracker server
2.storage server
安裝和運行命令
FastDFS和傳統的集中存儲方式的對比
FastDFS和mogileFS的全面對比
閱讀更多 程序碼上說 的文章