FastDFS分佈式文件系統概述
概述
- FastDFS是一個輕量級的開源分佈式文件系統
- FastDFS主要解決了大容量的文件存儲和高併發訪問的問題,文件存取時實現了負載均衡
- FastDFS實現了軟件方式的RAID,可以使用廉價的IDE硬盤進行存儲
- 支持存儲服務器在線擴容
- 支持相同內容的文件只保存一份,節約磁盤空間
- FastDFS只能通過Client API訪問,不支持POSIX訪問方式
- FastDFS特別適合大中型網站使用,用來存儲資源文件(如:圖片、文檔、音頻、視頻等等)
FastDFS與集中存儲方案的對比
FastDFS架構原理
如圖所示,FastDFS總體架構由三個部分構成
- 客戶端(Client)
- 訪問服務器(TrackerServer)
- 存儲服務器(StorageServer)
1. 客戶端(Client)
客戶端指的是訪問FastDFS分佈式存儲的客戶端設備,通常是應用服務器。
2. 訪問服務器(TrackerServer)
TrackerServer是訪問(或者翻譯爲跟蹤)服務器,是Client訪問StorageServer的入口。
TrackerServer起到幾個作用:
-
【服務註冊】管理StorageServer存儲集羣,StorageServer啓動時,會把自己註冊到TrackerServer上,並且定期報告自身狀態信息,包括磁盤剩餘空間、文件同步狀況、文件上傳下載次數等統計信息
-
【服務發現】Client訪問StorageServer之前,必須先訪問TrackerServer,動態獲取到StorageServer的連接信息
2.1 TrackerServer高可用
爲了保證高可用,一個FastDFS集羣當中可以有多個TrackerServer節點,由集羣自動選舉一個leader節點。
3. 存儲服務器(StorageServer)
StorageServer是數據存儲服務器,文件和meta data都保存到存儲服務器上。
-
可採用高可用的方式進行數據存儲
-
FastDFS集羣當中StorageServer按組(Group/volume)提供服務,不同組的StorageServer之間不會相互通信,同組內的StorageServer之間會相互連接進行文件同步
-
Storage server採用binlog文件記錄文件上傳、刪除等更新操作。binlog中只記錄文件名,不記錄文件內容
-
文件同步只在同組內的Storage server之間進行,採用push方式,即源頭服務器同步給目標服務器
4. 文件存儲
與大多數分佈式文件系統類似,FastDFS可以將文件以及相關的描述信息(MetaData)保存到StorageServer當中。
文件存儲以後將返回唯一的“文件標識”,“文件標識”由"組名"和"文件名"兩部分構成
MetaData是文件的描述信息,如 width=1024,heigth=768
其他篇章文章
1. FastDFS文件系統簡介與架構原理
2. 文件上傳原理
3. 文件下載原理
4. FastDFS文件同步原理與文件目錄簡介
5. 服務端與客戶端之間的通訊協議(自定義的通訊協議)