輕量級分散式檔案系統fastDFS
FastDFS主要解決了大容量的檔案(主要是圖片、視訊、音訊等小檔案 512M以內最好)儲存和高併發訪問的問題,並在檔案存取時實現了負載均衡。
FastDFS的結構比較簡單,主要由Client、Tracker server和Storage server三部分組成。Client通過Tracker server得到Storage server的資訊,然後直接與Storage server通訊訪問檔案,避免了Tracker server成為瓶頸。容易構建叢集和解決高併發,高可用問題。
Tracker server
Tracker server類似於GFS中的Master或TFS中的Name server,但與他們很不同的一點是,Tracker server的主要作用是負載均衡和排程,而不負責檔案索引和對映。Tracker server在記憶體中記錄分組和Storage server的狀態等資訊,不記錄檔案索引資訊,其佔用的記憶體量也很少。Tracker server可以只有一個,也可以有多個組成Tracker cluster,這樣的好處是可以提高對使用者的響應能力和增加容災性,此時各Tracker server相互對等,冗餘備份,由應用端來輪流選擇進行訪問。
Storage server
Storage server完成檔案管理的所有功能:儲存、同步和提供存取介面,檔案和metadata都儲存在其上。Storage server類似於GFS中的Chunk server或TFS中的Data server,通常一個Storage server即一臺機器,Storage server可以動態新增和刪除。FastDFS的儲存部分即Storage cluster,分為多個Volume,每個Volume中包括多個Storage server。同一Volume內的各Storage server之間是對等的,儲存的內容相同,起冗餘容錯的作用。檔案上傳、下載、刪除等操作可在Volume內任意一臺 Storage server上進行。一個Volume的儲存容量取決於該Volume內最小的Storage server的容量,因此Volume內各Storage server的軟硬體配置最好是一致的。採用這種分Volume的儲存方式的好處是靈活、可控性較強。比如上傳檔案時,可以由客戶端直接指定上傳到哪個Volume。當某個Volume的訪問壓力較大時,可以在該Volume內增加Storage server來擴充服務能力(縱向擴容)。當系統總容量不足時,可以增加Volume來擴充儲存容量(橫向擴容)。
Storage server直接利用OS的檔案系統儲存檔案。FastDFS不會對檔案進行分塊儲存,客戶端上傳的檔案和Storage server上的檔案一一對應。
關於Storage server的同步,不同Volume的Storage server之間不會相互通訊,同Volume內的Storage server之間會相互連線進行檔案同步。檔案同步採用push方式,接受更新操作的檔案稱為原始檔,其所在server稱為源伺服器,其它檔案稱為備份檔案,其它server稱為目標伺服器。當檔案更新操作發生時,源伺服器向目標伺服器發起同步,對所有備份檔案進行更新。當有新Storage server加入本Volume時,由已有的一臺 Storage server將其上的所有檔案同步給該新增伺服器。具體的同步實現在Storage server中由專門執行緒根據binlog進行,binlog記錄了檔案上傳、刪除等更新操作。為了最大程度地避免相互影響以及出於系統簡潔性考慮,Storage server對同Volume內除自己以外的每臺伺服器都會啟動一個執行緒來負責檔案同步。
這種非同步的同步方式帶來了一致性問題,當原始檔尚未來得及將所有備份檔案同步更新時,訪問這些備份檔案將引發錯誤。檔案的訪問主要分為更新和下載兩種情況:FastDFS規定更新操作只能對原始檔進行,從而避免了同時對不同的備份檔案進行更新導致的衝突;檔案下載時,Tracker server記錄了各Storage server中各檔案的同步情況,會向Client提供同步後的檔案所在的Storage server。
FastDFS 叢集構建:
http://www.2cto.com/kf/201611/560911.html
相關文章
- FastDFS分散式檔案系統AST分散式
- FastDFS-分散式檔案系統AST分散式
- 分散式檔案系統之 FastDFS分散式AST
- 01_FastDFS分散式檔案系統AST分散式
- 分散式檔案系統(FastDFS)叢集分散式AST
- 分散式檔案系統FastDFS詳解分散式AST
- 分散式檔案系統(FastDFS)安裝 配置分散式AST
- 分散式檔案系統之FastDFS安裝部署分散式AST
- FASTDFS開源分散式檔案系統介紹AST分散式
- 分散式檔案系統fastdfs_搭建和基本使用分散式AST
- 最簡單的分散式檔案系統 go-fastdfs分散式GoAST
- 分散式檔案系統fastdfs安裝以及python呼叫分散式ASTPython
- 分散式檔案儲存FastDFS(三)FastDFS配置分散式AST
- 分散式檔案儲存FastDFS(七)FastDFS配置檔案詳解分散式AST
- 一文搞定FastDFS分散式檔案系統配置與部署AST分散式
- 分散式檔案儲存系統 fastdfs 的 Composer 包釋出!分散式AST
- 【Python】輕量級分散式任務排程系統-RQPython分散式
- 【FastDFS】FastDFS 分散式檔案系統的安裝與使用,看這一篇就夠了!!AST分散式
- 分散式檔案系統分散式
- 使用 Redis 實現分散式系統輕量級協調技術Redis分散式
- 伺服器後端開發系列——《實戰FastDFS分散式檔案系統》伺服器後端AST分散式
- Dubbo分散式架構實戰--FastDFS分散式檔案系統的安裝與使用(單節點)分散式架構AST
- HDFS分散式檔案系統分散式
- 分散式檔案系統-HDFS分散式
- 分散式檔案系統---GlusterFS分散式
- Ceph:一個 Linux PB 級分散式檔案系統Linux分散式
- cephFS分散式檔案系統操作分散式
- FastDFS和Nginx實現分散式檔案伺服器ASTNginx分散式伺服器
- 【FastDFS】如何打造一款高可用的分散式檔案系統?這次我明白了!!AST分散式
- 分散式檔案系統(HDFS)與 linux系統檔案系統 對比分散式Linux
- 部署GPS分散式檔案系統分散式
- GFS分散式檔案系統部署解析分散式
- 分散式檔案系統FastDFS在CentOS7上的安裝及與Springboot的整合分散式ASTCentOSSpring Boot
- 大資料 | 分散式檔案系統 HDFS大資料分散式
- 雲端儲存及其分散式檔案系統分散式
- 輕量級線上CRM系統有哪些
- Hadoop 系列(一)—— 分散式檔案系統 HDFSHadoop分散式
- AspNetCore分散式檔案上傳系統NetCore分散式