文件存儲方案 FastDFS


FastDFS 介紹

  • c語言編寫的一款開源的輕量級分布式文件系統。
  • 功能包括:文件存儲、文件訪問(文件上傳、文件下載)、文件同步等,解決了大容量存儲和負載均衡的問題。特別適合以文件為載體的在線服務,如相冊網站、視頻網站等等。
  • 為互聯網量身定制,充分考慮了冗余備份、負載均衡、線性擴容等機制,並注重高可用、高性能等指標。
  • 可以幫助我們搭建一套高性能的文件服務器集群,並提供文件上傳、下載等服務。

 

 

  • FastDFS 架構 包括ClientTracker serverStorage server
    • Client請求Tracker進行文件上傳、下載,Tracker再調度Storage完成文件上傳和下載。
  • Client: 客戶端,業務請求的發起方,通過專有接口,使用 TCP/IP 協議與TrackerStorage進行數據交互。FastDFS 提供了 uploaddownloaddelete等接口供客戶端使用。
  • Tracker server:跟蹤服務器,主要做調度工作,起負載均衡的作用。在內存中記錄集群中所有存儲組和存儲服務器的狀態信息,是客戶端和數據服務器交互的樞紐。
  • Storage server:存儲服務器(存儲節點或數據服務器),文件和文件屬性都保存到存儲服務器上。Storage server 直接利用 OS 的文件系統調用管理文件。
    • Storage 群中的橫向可以擴容,縱向可以備份。

FastDFS 上傳和下載流程

 

 

 

FastDFS 文件索引

 

 FastDFS 上傳和下載流程 可以看出都涉及到一個數據叫文件索引( file_id )。

  • 文件索引( file_id )是客戶端上傳文件后Storage返回給客戶端的一個字符串,是以后訪問該文件的索引信息

 文件索引( file_id )信息包括:組名、虛擬磁盤路徑、數據兩級目錄、文件名等信息。

  • 組名:文件上傳后所在的 Storage 組名稱。
  • 虛擬磁盤路徑:Storage 配置的虛擬路徑,與磁盤選項store_path*對應。如果配置了store_path0則是M00,如果配置了store_path1則是M01,以此類推。
  • 數據兩級目錄:Storage 服務器在每個虛擬磁盤路徑下創建的兩級目錄,用於存儲數據文件。
  • 文件名:由存儲服務器根據特定信息生成,文件名包含:源存儲服務器IP地址、文件創建時間戳、文件大小、隨機數和文件拓展名等信息。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM