fastdfs簡介
•fastdfs是乙個輕量級的開源分布式檔案系統
•fastdfs主要解決了大容量的檔案儲存和高併發訪問的問題,檔案訪問時實現了負載均衡
•fastdfs實現了軟體方式的raid,可以使用廉價的ide硬碟進行儲存
•支援相同內容的檔案只儲存乙份,節約磁碟空間
•fastdfs只能通過clientapi訪問,不支援posix訪問方式
系統架構-架構圖
系統架構-上傳檔案流程圖
• 1. client詢問tracker上傳到的storage,不需要附加引數;
• 2. tracker返回一台可用的storage;
• 3. client直接和storage通訊完成檔案上傳。
• 2. tracker返回一台可用的storage;
相關術語
• tracker server:跟蹤伺服器,主要做排程工作,在訪問上起負載均衡的作用。記錄storage server的狀態,是連線client和storageserver的樞紐。
• storage server:儲存伺服器,檔案和meta data都儲存到儲存伺服器上
• group:組,也可稱為卷。同組內伺服器上的檔案是完全相同的
• 檔案標識:包括兩部分:組名和檔名(包含路徑)
同步機制
•同一組內的storageserver之間是對等的,檔案上傳、刪除等操作可以在任意一台storage server上進行;
•檔案同步只在同組內的storage server之間進行,採用push方式,即源伺服器同步給目標伺服器;
•源頭資料才需要同步,備份資料不需要再次同步,否則就構成環路了;
•上述第二條規則有個例外,就是新增加一台storage server時,由已有的一台storageserver將已有的所有資料(包括源頭資料和備份資料)同步給該新增伺服器。
通訊協議
• 協議包由兩部分組成:header和body
• header共10位元組,格式如下:
– 8 bytes body length
– 1 byte command
– 1 byte status
• body資料報格式由取決於具體的命令,body可以為空
執行時目錄結構-tracker server
• $|__data
| |__storage_groups.dat:儲存分組資訊
| |__storage_servers.dat:儲存伺服器列表
|__logs
|__trackerd.log:trackerserver日誌檔案
執行時目錄結構-storage server
• $|__data
| |__.data_init_flag:當前storageserver初始化資訊
| |__storage_stat.dat:當前storage server統計資訊
| | |__binlog.index:當前的binlog檔案索引號
| | |__binlog.###:存放更新操作記錄(日誌)
| | |__$_$.mark:存放同步的完成情況
| |__一級目錄:256個存放資料檔案的目錄,如:00, 1f
| |__二級目錄:256個存放資料檔案的目錄
|__logs
|__storaged.log:storageserver日誌檔案
安裝和執行
fastdfs和集中儲存方式對比
• fastdfs中文:www.csource.org/
• fastdfs英文:code.google.com/p/fastdfs/
官網資料,分享給大家學習
願意了解框架技術或者原始碼的朋友直接求求:2042849237
更多詳細原始碼參考**
FastDFS分布式檔案系統
服務端兩個角色 tracker 管理集群,tracker 也可以實現集群。每個 tracker 節點地位平等。收集 storage 集群的狀態。storage 實際儲存檔案,storage 分為多個組,每個組之間儲存的檔案是不同的。每 個組內部可以有多個成員,組成員內部儲存的內容是一樣的,組成員的地...
FastDFS分布式檔案系統
fastdfs服務有三個角色 跟蹤伺服器 tracker server 儲存伺服器 storage server 和客戶端 client 總結 1.高可靠性 無單點故障 2.高吞吐性 只要group足夠多,資料流量是足夠分散的 group 中 storage 儲存依賴本地檔案系統,storage 可...
分布式檔案系統FastDFS
分布式檔案系統fastdfs 檔案上傳流程 client 客戶端,發起上傳請求 tracker 相當於路由 tracker 獲取檔案上傳的所在位置!storage 真正的儲存檔案的!會自動生產乙個檔案id,並且將檔案寫入磁碟!返回檔案上傳的位置!使用步驟 實現 1.配置檔案tracker.conf ...