簡介
FastDFS服務端有兩個角色:跟蹤器(tracker)和存儲節點(storage)。跟蹤器主要做調度工作,在訪問上起負載均衡的作用。存儲節點存儲檔案,完成檔案管理的所有功能:就是這樣的存儲、同步和提供存取接口,FastDFS同時對檔案的metadata進行管理。所謂檔案的metadata就是檔案的相關屬性,以鍵值對(keyvalue)方式表示,如:width=1024,其中的key為width,value為1024。檔案metadata是檔案屬性列表,可以包含多個鍵值對。
跟蹤器和存儲節點都可以由一台或多台伺服器構成。跟蹤器和存儲節點中的伺服器均可以隨時增加或下線而不會影響線上服務。其中跟蹤器中的所有伺服器都是對等的,可以根據伺服器的壓力情況隨時增加或減少。
為了支持大容量,存儲節點(伺服器)採用了分卷(或分組)的組織方式。存儲系統由一個或多個卷組成,卷與卷之間的檔案是相互獨立的,所有卷的檔案容量累加就是整個存儲系統中的檔案容量。一個卷可以由一台或多台存儲伺服器組成,一個卷下的存儲伺服器中的檔案都是相同的,卷中的多台存儲伺服器起到了冗餘備份和負載均衡的作用。
在卷中增加伺服器時,同步已有的檔案由系統自動完成,同步完成後,系統自動將新增伺服器切換到線上提供服務。
當存儲空間不足或即將耗盡時,可以動態添加卷。只需要增加一台或多台伺服器,並將它們配置為一個新的卷,這樣就擴大了存儲系統的容量。
FastDFS中的檔案標識分為兩個部分:卷名和檔案名稱,二者缺一不可。
上傳互動過程
1.client詢問tracker上傳到的storage,不需要附加參數;2.tracker返回一台可用的storage;
3.client直接和storage通訊完成檔案上傳。
下載互動過程
1.client詢問tracker下載檔案的storage,參數為檔案標識(卷名和檔案名稱);2.tracker返回一台可用的storage;
3.client直接和storage通訊完成檔案下載。
需要說明的是,client為使用FastDFS服務的調用方,client也應該是一台伺服器,它對tracker和storage的調用均為伺服器間的調用。