FastDFS分布式檔案系統

2021-09-11 13:59:47 字數 2621 閱讀 9393

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 ...