更新時間:2021-06-08 16:12:28 來源:動力節(jié)點 瀏覽2830次
FastDFS是一個以C語言開發(fā)的開源的輕量級分布式文件系統(tǒng),它對文件進行管理,功能包括:文件存儲、文件同步、文件訪問(文件上傳、文件下載)等,解決了大容量存儲和負(fù)載均衡的問題。特別適合以中小文件(建議范圍:4KB < file_size <500MB),如相冊網(wǎng)站、視頻網(wǎng)站等等。
FastDFS為互聯(lián)網(wǎng)量身定制,充分考慮了冗余備份、負(fù)載均衡、線性擴容等機制,并注重高可用、高性能等指標(biāo),使用FastDFS很容易搭建一套高性能的文件服務(wù)器集群提供文件上傳、下載等服務(wù)。
FastDFS由跟蹤服務(wù)器(Tracker Server)、存儲服務(wù)器(Storage Server)和客戶端(Client)構(gòu)成。
主要作用是負(fù)載均衡和資源調(diào)度。
追蹤服務(wù)器負(fù)責(zé)接收客戶端的請求,選擇合適的組合storage server,tracker server與storage server之間也會用心跳機制來檢測對方是否活著。
Tracker需要管理的信息也都放在內(nèi)存中,并且里面所有的Tracker都是對等的(每個節(jié)點地位相等),很容易擴展。
客戶端訪問集群的時候會隨機分配一個Tracker來和客戶端交互。
實際存儲數(shù)據(jù),分成若干個組(group),實際traker就是管理的storage中的組,而組內(nèi)機器中則存儲數(shù)據(jù),group可以隔離不同應(yīng)用的數(shù)據(jù),不同的應(yīng)用的數(shù)據(jù)放在不同group里面。
優(yōu)點:海量的存儲:主從型分布式存儲,存儲空間方便拓展,且集群的實現(xiàn)也使系統(tǒng)不存在單點故障問題,用戶不會因為服務(wù)器宕機而無法訪問文件資源。fastDFS對文件內(nèi)容做hash處理,避免出現(xiàn)重復(fù)文件,然后fastDFS結(jié)合Nginx集成,提供網(wǎng)站效率。
主要是上傳下載數(shù)據(jù)的服務(wù)器,也就是我們自己的項目所部署在的服務(wù)器。每個客戶端服務(wù)器都需要安裝Nginx。

文件上傳:Client會先向Tracker詢問存儲地址,Tracker查詢到存儲地址后返回給Client,Client拿著地址直接和對應(yīng)的Storage通訊,將文件上傳至改Storage。
storage會將他所掛載的所有數(shù)據(jù)存儲目錄的底下都創(chuàng)建2級子目錄,每一級256個總共65536個,新寫的文件會以hash的方式被路由到其中某個子目錄下,然后將文件數(shù)據(jù)作為本地文件存儲到該目錄中。

文件下載:當(dāng)客戶端向Tracker發(fā)起下載請求時,并不會直接下載,而是先查詢storage server(檢測同步狀態(tài)),返回storage server的ip和端口,然后客戶端會帶著文件信息(組名,路徑,文件名),去訪問相關(guān)的storage,然后下載文件。

以上就是動力節(jié)點小編介紹的"FastDFS的原理及詳解",希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為您服務(wù)。