FastDFS文件系統簡介與架構原理

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. 服務端與客戶端之間的通訊協議(自定義的通訊協議)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章