新聞中心
首先簡(jiǎn)單了解一下基礎(chǔ)概念,F(xiàn)astDFS是一個(gè)開源的輕量級(jí)分布式文件系統(tǒng),由跟蹤服務(wù)器(tracker server)、存儲(chǔ)服務(wù)器(storage server)和客戶端(client)三個(gè)部分組成,主要解決了海量數(shù)據(jù)存儲(chǔ)問題,特別適合以中小文件(建議范圍:4KB < file_size <500MB)為載體的在線服務(wù)。

創(chuàng)新互聯(lián)建站主營新泰網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP開發(fā),新泰h5成都微信小程序搭建,新泰網(wǎng)站營銷推廣歡迎新泰等地區(qū)企業(yè)咨詢
Tracker(跟蹤器)
Tracker主要做調(diào)度工作,相當(dāng)于mvc中的controller的角色,在訪問上起負(fù)載均衡的作用。跟蹤器和存儲(chǔ)節(jié)點(diǎn)都可以由一臺(tái)或多臺(tái)服務(wù)器構(gòu)成,跟蹤器和存儲(chǔ)節(jié)點(diǎn)中的服務(wù)器均可以隨時(shí)增加或下線而不會(huì)影響線上服務(wù),其中跟蹤器中的所有服務(wù)器都是對(duì)等的,可以根據(jù)服務(wù)器的壓力情況隨時(shí)增加或減少。Tracker負(fù)責(zé)管理所有的Storage和group,每個(gè)storage在啟動(dòng)后會(huì)連接Tracker,告知自己所屬的group等信息,并保持周期性的心跳,tracker根據(jù)storage的心跳信息,建立group==>[storage server list]的映射表,Tracker需要管理的元信息很少,會(huì)全部存儲(chǔ)在內(nèi)存中;另外tracker上的元信息都是由storage匯報(bào)的信息生成的,本身不需要持久化任何數(shù)據(jù),這樣使得tracker非常容易擴(kuò)展,直接增加tracker機(jī)器即可擴(kuò)展為tracker cluster來服務(wù),cluster里每個(gè)tracker之間是完全對(duì)等的,所有的tracker都接受stroage的心跳信息,生成元數(shù)據(jù)信息來提供讀寫服務(wù)。
Storage(存儲(chǔ)節(jié)點(diǎn))
Storage采用了分卷[Volume](或分組[group])的組織方式,存儲(chǔ)系統(tǒng)由一個(gè)或多個(gè)組組成,組與組之間的文件是相互獨(dú)立的,所有組的文件容量累加就是整個(gè)存儲(chǔ)系統(tǒng)中的文件容量。一個(gè)卷[Volume](組[group])可以由一臺(tái)或多臺(tái)存儲(chǔ)服務(wù)器組成,一個(gè)組中的存儲(chǔ)服務(wù)器中的文件都是相同的,組中的多臺(tái)存儲(chǔ)服務(wù)器起到了冗余備份和負(fù)載均衡的作用,數(shù)據(jù)互為備份,存儲(chǔ)空間以group內(nèi)容量最小的storage為準(zhǔn),所以建議group內(nèi)的多個(gè)storage盡量配置相同,以免造成存儲(chǔ)空間的浪費(fèi)。
相關(guān)資源
本次搭建要用的資源都在這里了:
到主機(jī)寶貝資源站下載:
具體下載目錄在 /2017年資料/5月/10日/CentOS 7下FastDFS分布式文件服務(wù)器搭建實(shí)戰(zhàn)/
安裝
libfastcommon
因?yàn)閘ibfastcommon使用C語言寫的,所以我們先要安裝gcc編譯器:
yum -y install gcc-c++
圖(1)
如果沒有裝解壓工具unzip可以通過以下yum命令進(jìn)行安裝后再解壓:
yum -y install unzip zip
解壓完成后就可以進(jìn)行編譯安裝了,分別執(zhí)行
./make.sh
沒有error信息的話就說明編譯成功了,最后再執(zhí)行
./make.sh install
進(jìn)行安裝。
ibfastcommon.so 默認(rèn)安裝到了/usr/lib64/libfastcommon.so,但是FastDFS主程序設(shè)置的lib目錄是/usr/local/lib,所以此處需要重新設(shè)置軟鏈接(類似于Windows的快捷方式):
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
設(shè)置完畢后就可以開始安裝fastdfs了。
FastDFS
第一步依然是解壓:
tar -zxvf fastdfs-5.05.tar.gz
解壓完成后進(jìn)入目錄fastdfs-5.05,依次執(zhí)行./make.sh和./make.sh install:
./make.sh
./make.sh install
圖(2)
圖(3)
沒錯(cuò),正是安裝到了/etc/fdfs中,安裝成功后就會(huì)生成如上的3個(gè).sample文件(示例配置文件),我們?cè)俜謩e拷貝出3個(gè)后面用的正式的配置文件:
cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf
圖(4)
至此FastDFS已經(jīng)安裝完畢,接下來的工作就是依次配置Tracker和Storage了。
Tracker
在配置Tracker之前,首先需要?jiǎng)?chuàng)建Tracker服務(wù)器的文件路徑,即用于存儲(chǔ)Tracker的數(shù)據(jù)文件和日志文件等,我這里選擇在/opt目錄下創(chuàng)建一個(gè)fastdfs_tracker目錄用于存放Tracker服務(wù)器的相關(guān)文件:
mkdir /opt/fastdfs_tracker
接下來就要重新編輯上一步準(zhǔn)備好的/etc/fdfs目錄下的tracker.conf配置文件,打開文件后依次做以下修改:
disabled=false #啟用配置文件(默認(rèn)啟用)
port=22122 #設(shè)置tracker的端口號(hào),通常采用22122這個(gè)默認(rèn)端口
base_path=/opt/fastdfs_tracker #設(shè)置tracker的數(shù)據(jù)文件和日志目錄
http.server_port=6666 #設(shè)置http端口號(hào),默認(rèn)為8080
配置完成后就可以啟動(dòng)Tracker服務(wù)器了,但首先依然要為啟動(dòng)腳本創(chuàng)建軟引用,因?yàn)閒dfs_trackerd等命令在/usr/local/bin中并沒有,而是在/usr/bin路徑下:
ln -s /usr/bin/fdfs_trackerd /usr/local/bin
ln -s /usr/bin/stop.sh /usr/local/bin
ln -s /usr/bin/restart.sh /usr/local/bin
最后通過命令啟動(dòng)Tracker服務(wù)器:
service fdfs_trackerd start
如果啟動(dòng)命令執(zhí)行成功,那么同時(shí)在剛才創(chuàng)建的tracker文件目錄/opt/fastdfs_tracker中就可以看到啟動(dòng)后新生成的data和logs目錄,tracker服務(wù)的端口也應(yīng)當(dāng)被正常監(jiān)聽,最后再通過netstat命令查看一下端口監(jiān)聽情況:
netstat -unltp|grep fdfs
可以看到tracker服務(wù)運(yùn)行的22122端口正常被監(jiān)聽。
確認(rèn)tracker正常啟動(dòng)后可以將tracker設(shè)置為開機(jī)啟動(dòng),打開/etc/rc.d/rc.local并在其中加入以下配置:
service fdfs_trackerd start
圖(5)
Tracker至此就配置好了,接下來就可以配置FastDFS的另一核心——Storage。
Storage
步驟基本與配置Tracker一致,首先是創(chuàng)建Storage服務(wù)器的文件目錄,需要注意的是同Tracker相比我多建了一個(gè)目錄,因?yàn)镾torage還需要一個(gè)文件存儲(chǔ)路徑,用于存放接收的文件:
mkdir /opt/fastdfs_storage
mkdir /opt/fastdfs_storage_data
接下來修改/etc/fdfs目錄下的storage.conf配置文件,打開文件后依次做以下修改:
disabled=false #啟用配置文件(默認(rèn)啟用)
group_name=group1 #組名,根據(jù)實(shí)際情況修改
port=23000 #設(shè)置storage的端口號(hào),默認(rèn)是23000,同一個(gè)組的storage端口號(hào)必須一致
base_path=/opt/fastdfs_storage #設(shè)置storage數(shù)據(jù)文件和日志目錄
store_path_count=1 #存儲(chǔ)路徑個(gè)數(shù),需要和store_path個(gè)數(shù)匹配
store_path0=/opt/fastdfs_storage_data #實(shí)際文件存儲(chǔ)路徑
tracker_server=10.211.55.5:22122 #tracker 服務(wù)器的 IP地址和端口號(hào),如果是單機(jī)搭建,IP不要寫127.0.0.1,否則啟動(dòng)不成功(此處的ip是我的CentOS虛擬機(jī)ip)
http.server_port=8888 #設(shè)置 http 端口號(hào)
配置完成后同樣要為Storage服務(wù)器的啟動(dòng)腳本設(shè)置軟引用:
ln -s /usr/bin/fdfs_storaged /usr/local/bin
接下來就可以啟動(dòng)Storage服務(wù)了:
service fdfs_storaged start
圖(6)
圖(7)
如圖(7),可以看到此時(shí)已經(jīng)正常監(jiān)聽tracker的22122端口和storage的23000端口,至此storage服務(wù)器就已經(jīng)配置完成,確定了storage服務(wù)器啟動(dòng)成功后,還有一項(xiàng)工作就是看看storage服務(wù)器是否已經(jīng)登記到 tracker服務(wù)器(也可以理解為tracker與storage是否整合成功),運(yùn)行以下命令:
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
圖(8)
如圖(8)所示,看到10.211.55.5 ACTIVE 字樣即可說明storage服務(wù)器已經(jīng)成功登記到了tracker服務(wù)器,同理別忘了添加開機(jī)啟動(dòng),打開/etc/rc.d/rc.local并將如下配置追加到文件中:
service fdfs_storage start
至此我們就已經(jīng)完成了fastdfs的全部配置,此時(shí)也就可以用客戶端工具進(jìn)行文件上傳下載的測(cè)試了。
初步測(cè)試
測(cè)試時(shí)需要設(shè)置客戶端的配置文件,編輯/etc/fdfs目錄下的client.conf 文件,打開文件后依次做以下修改:
base_path=/opt/fastdfs_tracker #tracker服務(wù)器文件路徑
tracker_server=192.168.111.11:22122 #tracker服務(wù)器IP地址和端口號(hào)
http.tracker_server_port=6666 # tracker 服務(wù)器的 http 端口號(hào),必須和tracker的設(shè)置對(duì)應(yīng)起來
配置完成后就可以模擬文件上傳了,先給/opt目錄下隨便放個(gè)文件(簡(jiǎn)歷.pdf)。
然后通過執(zhí)行客戶端上傳命令嘗試上傳:
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /opt/簡(jiǎn)歷.pdf
圖(9)
圖(10)
但是此時(shí)并不能通過http訪問,因?yàn)镕astDFS目前已不支持http協(xié)議,所以此處在nginx上使用FastDFS的模塊fastdfs-nginx-module,這樣做最大的好處就是提供了HTTP服務(wù)并且解決了group中storage服務(wù)器的同步延遲問題,接下來就具體記錄一下fastdfs-nginx-module的安裝配置過程。
fastdfs-nginx-module
在安裝nginx之前需要先安裝一些模塊依賴的lib庫,直接貼出安裝代碼:
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel
依次裝好這些依賴之后就可以開始安裝nginx了。
storage nginx
首先分別進(jìn)行解壓:
tar -zxvf nginx-1.13.0.tar.gz
unzip fastdfs-nginx-module-master.zip
解壓成功后就可以編譯安裝nginx了,進(jìn)入nginx目錄并輸入以下命令進(jìn)行配置:
./configure --prefix=/usr/local/nginx --add-module=/usr/local/fastdfs-nginx-module-master/
圖(11)
緊接著就可以進(jìn)行編譯安裝了,依次執(zhí)行以下命令:
make
make install
安裝完成后,可以看到/usr/local/下新增了一個(gè)nginx目錄,這就是剛才新安裝的nginx的目錄。
接下來要修改一下nginx的配置文件,進(jìn)入conf目錄并修改nginx.conf,把listen端口為80的server改為:
server {
listen 9999;
location ~/group1/M00 {
root /opt/fastdfs_storage_data/data;
ngx_fastdfs_module;
}
}
然后進(jìn)入FastDFS的安裝目錄/usr/local/fastdfs-5.05目錄下的conf目錄,將http.conf和mime.types拷貝到/etc/fdfs目錄下:
cp -r /usr/local/fastdfs-5.05/conf/http.conf /etc/fdfs/
cp -r /usr/local/fastdfs-5.05/conf/mime.types /etc/fdfs/
接下來還需要把fastdfs-nginx-module安裝目錄中src目錄下的mod_fastdfs.conf也拷貝到/etc/fdfs目錄下:
cp -r /usr/local/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/
沒什么問題,接下來就需要編輯剛拷貝的這個(gè)mod_fastdfs.conf文件了,打開mod_fastdfs.conf并按順序依次編譯以下內(nèi)容:
base_path=/opt/fastdfs_storage #保存日志目錄
tracker_server=10.211.55.5:22122 #tracker服務(wù)器的IP地址以及端口號(hào)
storage_server_port=23000 #storage服務(wù)器的端口號(hào)
url_have_group_name = true #文件 url 中是否有 group 名
store_path0=/opt/fastdfs_storage_data # 存儲(chǔ)路徑
group_count = 3 #設(shè)置組的個(gè)數(shù),事實(shí)上這次只使用了group1
設(shè)置了group_count = 3,接下來就需要在文件尾部追加這3個(gè)group setting:
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs_storage_data
[group2]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs_storage_data
[group3]
group_name=group3
storage_server_port=23000
store_path_count=1
store_path0=/opt/fastdfs_storage_data
接下來還需要建立 M00 至存儲(chǔ)目錄的符號(hào)連接:
ln -s /opt/fastdfs_storage_data/data /opt/fastdfs_storage_data/data/M00
最后啟動(dòng)nginx:
/usr/local/nginx/sbin/nginx
圖(12)
圖(13)
如果訪問不了,先ping一下自己的ip,如果能ping通,說明是防火墻的問題,在防火墻上打開對(duì)應(yīng)端口就可以了:
/sbin/iptables -I INPUT -p tcp --dport 9999 -j ACCEPT
其他端口以此類推。
如果ping不通ip說明nginx配置不正確,或者ip不對(duì)。
storage服務(wù)器的nginx就已經(jīng)安裝完畢,接下來看一下tracker服務(wù)器的nginx安裝。
tracker nginx
同理,再裝一個(gè)nginx,目錄命名為nginx2,安裝路徑依舊放在/usr/local下,由于和之前一樣,此處就不再做詳細(xì)解釋:
mkdir nginx2
cd nginx-1.8.1/
./configure --prefix=/usr/local/nginx2 --add-module=/usr/local/fastdfs-nginx-module-master/src
make
make install
接下來依然是修改nginx2的配置文件,進(jìn)入conf目錄并打開nginx.conf文件加入以下配置,tracker的nginx無需修改listen端口,即默認(rèn)的80端口,并將upstream指向storage的nginx地址,在http節(jié)點(diǎn)下新增:
upstream fdfs_group1 {
server 127.0.0.1:9999;
}
在server節(jié)點(diǎn)下新增:
location /group1/M00 {
proxy_pass http://fdfs_group1;
}
接下來啟動(dòng)nginx2:
/usr/local/nginx2/sbin/nginx
最后一步就是需要修改/etc/fdfs目錄下的client.conf文件,打開該文件并加入以下配置:
base_path=/data/fastdfs_storage #日志存放路徑
tracker_server=10.211.55.5:22122 #tracker 服務(wù)器 IP 地址和端口號(hào)
http.tracker_server_port=6666 # tracker 服務(wù)器的 http 端口號(hào),必須和tracker的設(shè)置對(duì)應(yīng)起來
至此關(guān)于fastdfs就已經(jīng)全部配置完畢了,再一次進(jìn)行測(cè)試看看是否能正常上傳文件并通過http訪問文件。
HTTP測(cè)試
圖(14)
圖(15)
一切正常~ 至此關(guān)于FastDFS在CentOS 7下的部署測(cè)試就已經(jīng)全部完成了。
參考文章
我基本上都是照上面這篇文章操作的,講得很詳細(xì)。
網(wǎng)站名稱:CentOS7下FastDFS分布式文件服務(wù)器搭建實(shí)戰(zhàn)
路徑分享:http://m.fisionsoft.com.cn/article/dpegscd.html


咨詢
建站咨詢
