天天看點

FastFDS 分布式檔案系統FastFDS 分布式檔案系統

FastFDS 分布式檔案系統

底下附伺服器搭建

介紹

FastDFS是一個開源的輕量級分布式檔案系統。它解決了大資料量存儲和負載均衡等問題。特别适合以中小檔案(建議範圍:4KB < file_size <500MB)為載體的線上服務,如相冊網站、視訊網站等等。在UC基于FastDFS開發向使用者提供了:網盤,社群,廣告和應用下載下傳等業務的存儲服務。

FastDFS是一款開源的輕量級分布式檔案系統純C實作,支援Linux、FreeBSD等UNIX系統類google FS,不是通用的檔案系統,隻能通過專有API通路,目前提供了C、Java和PHP API為網際網路應用量身定做,解決大容量檔案存儲問題,追求高性能和高擴充性FastDFS可以看做是基于檔案的key value pair存儲系統,稱作分布式檔案存儲服務更為合适。

FastDFS特性:

  • 檔案不分塊存儲,上傳的檔案和OS檔案系統中的檔案一一對應
  • 支援相同内容的檔案隻儲存一份,節約磁盤空間
  • 下載下傳檔案支援HTTP協定,可以使用内置Web Server,也可以和其他Web Server配合使用
  • 支援線上擴容
  • 支援主從檔案
  • 存儲伺服器上可以儲存檔案屬性(meta-data)V2.0網絡通信采用libevent,支援大并發通路,整體性能更好

伺服器:

FastFDS 分布式檔案系統FastFDS 分布式檔案系統
Tracker相當于FastDFS的大腦,不論是上傳還是下載下傳都是通過tracker來配置設定資源;用戶端一般可以使用ngnix等靜态伺服器來調用或者做一部分的緩存;存儲伺服器内部分為卷(或者叫做組),卷于卷之間是平行的關系,可以根據資源的使用情況随時增加,卷内伺服器檔案互相同步備份,以達到容災的目的。

流程

上傳:

FastFDS 分布式檔案系統FastFDS 分布式檔案系統

下載下傳:

FastFDS 分布式檔案系統FastFDS 分布式檔案系統

精巧的檔案ID-FID

說到下載下傳就不得不提檔案索引(又稱:FID)的精巧設計了。檔案索引結構如下圖,是用戶端上傳檔案後存儲伺服器傳回給用戶端,用于以後通路該檔案的索引資訊。檔案索引資訊包括:組名,虛拟磁盤路徑,資料兩級目錄,檔案名:

group1/M00/nn/mm/xxx.jpg

  • 組名:檔案上傳後所在的存儲組名稱,在檔案上傳成功後有存儲伺服器傳回,需要用戶端自行儲存。
  • 虛拟磁盤路徑:存儲伺服器配置的虛拟路徑,與磁盤選項store_path*對應。
  • 資料兩級目錄:存儲伺服器在每個虛拟磁盤路徑下建立的兩級目錄,用于存儲資料檔案。
  • 檔案名:與檔案上傳時不同。是由存儲伺服器根據特定資訊生成,檔案名包含:源存儲伺服器IP位址、檔案建立時間戳、檔案大小、随機數和檔案拓展名等資訊。

快速定位檔案

知道FastDFS FID的組成後,我們來看看FastDFS是如何通過這個精巧的FID定位到需要通路的檔案。

  • 1、通過組名tracker能夠很快的定位到用戶端需要通路的存儲伺服器組,并将選擇合适的存儲伺服器提供用戶端通路;
  • 2、存儲伺服器根據“檔案存儲虛拟磁盤路徑”和“資料檔案兩級目錄”可以很快定位到檔案所在目錄,并根據檔案名找到用戶端需要通路的檔案。
    FastFDS 分布式檔案系統FastFDS 分布式檔案系統
點選伺服器搭建

繼續閱讀