CentOS7.3搭建FastDFS V5.11(一)

風靈使發表於2018-04-03

1.緒論

最近要用到fastDFS,所以自己研究了一下,在搭建FastDFS的過程中遇到過很多的問題,為了能幫忙到以後搭建FastDFS的同學,少走彎路,與大家分享一下。FastDFS的作者淘寶資深架構餘慶,這個優秀的輕量及的分散式檔案系統的開源沒多久,立馬就火了。由於篇幅較大,本博文共四篇,第一篇主要介紹FastDFS,下載相關軟體包,為搭建做好準備。第二篇會講到在CentOS下搭建FastDFS的詳細過程。第三篇,會講到整合nginx詳細內容。第四篇主要講FastDFS在怎麼用fastdfs-client-java連線,並結合例項。

2.應用場景

FastDFS是為網際網路應用量身定做的一套分散式檔案儲存系統,非常適合用來儲存使用者圖片、視訊、文件等檔案。對於網際網路應用,和其他分散式檔案系統相比,優勢非常明顯。其中有好幾家是做網盤的公司。其中儲存量最大的一家,叢集中儲存group數有400個,儲存伺服器超過800臺,儲存容量達到6PB,檔案數超過1億,Group持續增長中。
以下是使用FastDFS的使用者列表:

UC (http://www.uc.cn/,儲存容量超過10TB) 
支付寶(http://www.alipay.com/) 
京東商城(http://www.360buy.com/) 
淘淘搜(http://www.taotaosou.com/) 
飛信(http://feixin.1008.cn/) 
趕集網(http://www.ganji.com/) 
淘米網(http://www.61.com/) 
迅雷(http://www.xunlei.com/) 
螞蜂窩(http://www.mafengwo.cn/) 
丫丫網(http://www.iyaya.com/) 
虹網(http://3g.ahong.com5173(http://www.5173.com/) 
華夏原創網(http://www.yuanchuang.com/) 
華師京城教育雲平臺(http://www.hsjdy.com.cn/) 
視友網(http://www.cuctv.com/) 
搜道網(http://www.sodao.com/) 
58同城(http://www.58.com/) 
商務聯盟網(http://www.biz72.com/) 
中青網(http://www.youth.cn/) 
繽麗網 (http://www.binliy.com/) 
飛視雲視訊(http://www.freeovp.com/) 
夢芭莎(http://www.moonbasa.com/) 
活動幫(http://www.eventsboom.com51CTO(http://www.51cto.com/) 
搜房網(http://www.soufun.com/)

3.詳細介紹

FastDFS是一個開源的分散式檔案系統,她對檔案進行管理,功能包括:檔案儲存、檔案同步、檔案訪問(檔案上傳、檔案下載)等,解決了大容量儲存和負載均衡的問題。特別適合以檔案為載體的線上服務,如相簿網站、視訊網站等等。

FastDFS服務端有兩個角色:跟蹤器(tracker)儲存節點(storage)。跟蹤器主要做排程工作,在訪問上起負載均衡的作用。

儲存節點儲存檔案,完成檔案管理的所有功能:儲存、同步和提供存取介面,FastDFS同時對檔案的meta data進行管理。所謂檔案的meta data就是檔案的相關屬性,以鍵值對(key value pair)方式表示,如:width=1024,其中的key為width,value為1024。檔案meta data是檔案屬性列表,可以包含多個鍵值對。

FastDFS系統結構如下圖所示:

這裡寫圖片描述

跟蹤器和儲存節點都可以由一臺多臺伺服器構成。跟蹤器和儲存節點中的伺服器均可以隨時增加或下線而不會影響線上服務。其中跟蹤器中的所有伺服器都是對等的,可以根據伺服器的壓力情況隨時增加或減少。

為了支援大容量,儲存節點(伺服器)採用了分卷(或分組)的組織方式。儲存系統由一個或多個卷組成,卷與卷之間的檔案是相互獨立的,所有卷 的檔案容量累加就是整個儲存系統中的檔案容量。一個卷可以由一臺或多臺儲存伺服器組成,一個卷下的儲存伺服器中的檔案都是相同的,卷中的多臺儲存伺服器起 到了冗餘備份和負載均衡的作用。

在卷中增加伺服器時,同步已有的檔案由系統自動完成,同步完成後,系統自動將新增伺服器切換到線上提供服務。

當儲存空間不足或即將耗盡時,可以動態新增捲。只需要增加一臺或多臺伺服器,並將它們配置為一個新的卷,這樣就擴大了儲存系統的容量。
FastDFS中的檔案標識分為兩個部分:卷名和檔名,者缺一不可。

3.1 上傳檔案互動過程:

  1. client詢問tracker上傳到的storage,不需要附加引數;
  2. tracker返回一臺可用的storage;
  3. client直接和storage通訊完成檔案上傳

這裡寫圖片描述

3.2 下載檔案互動過程:

  1. client詢問tracker下載檔案的storage,引數為檔案標識(卷名和檔名);
  2. tracker返回一臺可用的storage;
  3. client直接和storage通訊完成檔案下載。

4.FastDFS搭建工具下載

這次搭建的所有工具,都可以在上面下載到。我搭建的是目前最新版本Version 5.11 2017-05-26。作者還有一個5.10的發行版本,你如果沒有下載最近的,到時候整合nginx的時候可能會遇到:

local/fastdfs-nginx-module/src/common.c:1245: 錯誤:‘FDFSHTTPParams’沒有名為‘support_multi_range’的成員
make[1]: *** [objs/addon/src/ngx_http_fastdfs_module.o] 錯誤 1
make[1]: Leaving directory `/usr/local/nginx-1.10.1'

遇到這個錯誤的原因是,在fastdfs-nginx-moduleHISTORY中你可以到:
這裡寫圖片描述

整合的時候,fastdfs-nginx-module中的support_multi_rangeVersion 5.10中找不到。

Version 5.11對應的fastdfs-nginx-moduleVersion 1.20 
Version 5.10對應的fastdfs-nginx-moduleVersion 1.19

之所以在安裝前寫了這麼一段話,是因為這個很重要,版本不對應會給接下來的安裝帶來各種問題。
這裡寫圖片描述

把原始碼下載下來3個zip包,再去下個nginx:
這裡寫圖片描述

相關文章