FastDFS(一)什麼是FastDFS

FastDFS

在這裏插入圖片描述
FastDFS是一個開源的輕量級分佈式文件系統,它對文件進行管理,功能包括:文件存儲、文件同步、文件訪問(文件上傳、文件下載)等,解決了大容量存儲和負載均衡的問題。特別適合以文件爲載體的在線服務,如相冊網站、視頻網站等等
FastDFS爲互聯網量身定製,充分考慮了冗餘備份、負載均衡、線性擴容等機制,並注重高可用、高性能等指標,使用FastDFS很容易搭建一套高性能的文件服務器集羣提供文件上傳、下載等服務。


FastDFS服務端有兩個角色:跟蹤器(tracker)存儲節點(storage)
跟蹤器主要做調度工作,在訪問上起負載均衡的作用。
存儲節點存儲文件,完成文件管理的所有功能:就是這樣的存儲、同步和提供存取接口,FastDFS同時對文件的metadata進行管理。

所謂文件的meta data就是文件的相關屬性,以鍵值對(key valuepair)方式表示,如:width=1024,其中的key爲width,value爲1024。文件metadata是文件屬性列表,可以包含多個鍵值對。
**跟蹤器和存儲節點都可以由一臺或多臺服務器構成。**跟蹤器和存儲節點中的服務器均可以隨時增加或下線而不會影響線上服務。其中跟蹤器中的所有服務器都是對等的,可以根據服務器的壓力情況隨時增加或減少。
爲了支持大容量,**存儲節點(服務器)採用了分卷(或分組)的組織方式。**存儲系統由一個或多個卷組成,卷與卷之間的文件是相互獨立的,所有卷的文件容量累加就是整個存儲系統中的文件容量。一個卷可以由一臺或多臺存儲服務器組成,一個卷下的存儲服務器中的文件都是相同的,卷中的多臺存儲服務器起到了冗餘備份和負載均衡的作用。
在卷中增加服務器時,同步已有的文件由系統自動完成,同步完成後,系統自動將新增服務器切換到線上提供服務。
當存儲空間不足或即將耗盡時,可以動態添加捲。只需要增加一臺或多臺服務器,並將它們配置爲一個新的卷,這樣就擴大了存儲系統的容量。
FastDFS中的文件標識分爲兩個部分:卷名和文件名,二者缺一不可。


上傳交互過程

client 詢問 tracker 上傳到的 storage,不需要附加參數
tracker 返回一臺可用的 storage
client 直接和 storage 通訊完成文件上傳

下載交互過程

client 詢問 tracker 下載文件的 storage,參數爲文件標識(卷名和文件名)
tracker 返回一臺可用的 storage
client 直接和 storage 通訊完成文件下載

需要說明的是
client 爲使用 FastDFS 服務的調用方,client 也應該是一臺服務器,它對 tracker 和 storage 的調用均爲服務器間的調用。


FastDFS 爲什麼要結合 Nginx?

追蹤器,只是一個簡單的Nginx服務器。
我們在使用 FastDFS 部署一個分佈式文件系統的時候,通過 FastDFS 的客戶端 API 來進行文件的上傳、下載、刪除等操作。同時通過 FastDFS 的 HTTP 服務器來提供 HTTP 服務。但是 FastDFS 的 HTTP 服務較爲簡單,無法提供負載均衡等高性能的服務,我們使用 FastDFS 的 Nginx 模塊來彌補這一缺陷。
FastDFS 通過 Tracker 服務器,將文件放在 Storage 服務器存儲,但是同組之間的服務器需要複製文件,有延遲的問題.假設 Tracker 服務器將文件上傳到了 192.168.1.80,文件ID已經返回客戶端,這時,後臺會將這個文件複製到 192.168.1.30,如果複製沒有完成,客戶端就用這個 ID 在 192.168.1.30 取文件,肯定會出現錯誤。這個 fastdfs-nginx-module 可以重定向連接到源服務器取文件,避免客戶端由於複製延遲的問題,出現錯誤。

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