分散式檔案儲存-FastDFS之個人記錄
阿新 • • 發佈:2020-10-12
FastDFS
- 對於一個專案來說尤其是大型專案,它裡面儲存很多的檔案,比如:圖片、文件、報表…,如果使用傳統方式把這些資源儲存在某一臺的機器磁碟的話,可想而知其容量是不足夠支撐,這些海量檔案的,因此使用FastDFS分散式檔案儲存的解決方案來進行解決
- 阿里開源的輕量級的分散式檔案系統
FastDFS的功能
- 分散式檔案儲存、檔案同步、檔案訪問(檔案上傳、下載)等…
- 還支援冗餘備份、負載均衡、線性擴容
- FastDFS它注重高可用、高效能優點
FastDFS內部架構的主要兩個角色
Tracker Server和Storage Server
流程:
- 首先客戶端需要先來請求到Tracker Server
- 然後 tracker server根據自己內部的資訊來決定當前的檔案最終儲存到哪一個Storage Server中
Tracker Server:主要是負載均衡和排程
- 1:接收使用者的請求向用戶傳送響應
- 2:收集Storage 中的資訊,根據這些資訊來決定當前使用者上傳的檔案儲存到那個Storage Server中
Storage Server:就是用來進行檔案的儲存,它採用的是線性擴容的形式來進行檔案儲存,理論的情況下它的儲存容量是無上限的
FastDFS架構圖
上傳流程圖(自己畫的,不太好看)
File_id
客戶端上傳檔案後儲存伺服器將檔案ID返回給客戶端,此檔案ID用於以後訪問該資料夾的索引資訊。
檔案索引資訊包括:組名,虛擬磁碟路徑,資料兩級目錄,檔名。
例如:
組名
檔案上傳後所在storage組名稱,在檔案上傳成功後由storage伺服器返回,需要客戶端自行儲存
虛擬磁碟路徑
storage配置的虛擬路徑,與磁碟選項store_path* 對應。如果配置了store_path0則是M00,如果配置了store_path1,則是M01,以此類推。
資料兩級目錄
storage伺服器在每個虛擬磁碟路徑下建立的兩級目錄用於儲存資料檔案
檔名
與檔案上傳時不同。是由儲存伺服器根據特定的資訊生成;檔名包含:源儲存伺服器ip地址、檔案建立時間戳、檔案大小、隨機數和檔案拓展名等資訊