CentOS 7 安裝配置分散式檔案系統 FastDFS 5.11
阿新 • • 發佈:2018-11-11
CentOS 7 安裝配置分散式檔案系統 FastDFS 5.11
前言:
FastDFS是現在比較流行的分散式檔案系統,很多網際網路公司比較青睞於它,我們公司由之前的ZIMG現在轉FastDFS,下面來講講簡單的安裝配置過程。
安裝包請自行百度,謝謝。
一、下載1.下載對應的最新版本是5.11,直接在餘大的GitHub上下載就可以了: https://github.com/happyfish100/fastdfs/releases
2. 同時FastDFS 5.1.1同以前版本相比將公共的一些函式等單獨封裝成了libfastcommon包,所以在安裝FastDFS之前我們還必須安裝libfastcommon,在餘大的GitHub首頁可以看到:
3. 進入目錄:
cd /home/mayanfu/fastdfs/
下載得到兩個檔案:
fastdfs-5.11.tar.gz
libfastcommon-1.0.36.tar.gz
二、解壓安裝
1. 安裝 libfastcommon
tar -xzvf libfastcommon-1.0.36.tar.gz
cd libfastcommon-1.0.36
執行./make.sh命令進行編譯,沒有error資訊的話就說明編譯成功了,
最後再執行./make.sh install進行安裝.
libfastcommon.so 預設安裝到了/usr/lib64/libfastcommon.so,但是FastDFS主程式設定的lib目錄是/usr/local/lib,所以此處需要重新設定軟連結
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so --(ln: 無法建立符號連結"/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
2. 安裝FastDFS
tar -xzvf fastdfs-5.11.tar.gz
cd fastdfs-5.11
依次執行./make.sh和./make.sh install
安裝到了/etc/fdfs中
cd /etc/fdfs
安裝成功後就會生成如上的3個.sample檔案(示例配置檔案),我們再分別拷貝出3個後面用的正式的配置檔案:
cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf
至此FastDFS已經安裝完畢,接下來的工作就是依次配置Tracker和Storage了。
3. 安裝前置條件
安裝需要GCC 和 perl 可能需要提前安裝
yum -y install gcc-c++
yum -y install perl
如果沒有裝解壓工具unzip可以通過以下yum命令進行安裝後再解壓:
yum -y install unzip zip
三、配置 Tracker
1. 在配置Tracker之前,首先需要建立Tracker伺服器的檔案路徑,即用於儲存Tracker的資料檔案和日誌檔案等,我這裡選擇在/home目錄下建立一個fastdfs_tracker目錄用於存放Tracker伺服器的相關檔案:
mkdir /home/fastdfs_tracker
2. 編輯上一步準備好的/etc/fdfs目錄下的tracker.conf配置檔案,開啟檔案後依次做以下修改:
vi /etc/fdfs/tracker.conf
disabled=false #啟用配置檔案(預設啟用)
port= 22122
base_path=/home/fastdfs_tracker #設定tracker的資料檔案和日誌目錄
http.server_port=6666 #設定http埠號,預設為8080
3. 配置完成後就可以啟動Tracker伺服器了,但首先依然要為啟動指令碼建立軟引用,因為fdfs_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
4. 最後通過命令啟動Tracker伺服器:
service fdfs_trackerd start
如果啟動命令執行成功,那麼同時在剛才建立的tracker檔案目錄/home/fastdfs_tracker中就可以看到啟動後新生成的data和logs目錄,
tracker服務的埠也應當被正常監聽,最後再通過netstat命令檢視一下埠監聽情況:
netstat -unltp|grep fdfs
可以看到tracker服務執行的22122埠正常被監聽:
5. 確認tracker正常啟動後可以將tracker設定為開機啟動,開啟/etc/rc.d/rc.local並在其中加入以下配置:
vi /etc/rc.d/rc.local
service fdfs_trackerd start
檢視埠:ss -ntl
四、配置Storage
1.步驟基本與配置Tracker一致,首先是建立Storage伺服器的檔案目錄,需要注意的是同Tracker相比我多建了一個目錄,因為Storage還需要一個檔案儲存路徑,用於存放接收的檔案:
mkdir /home/fastdfs_storage
mkdir /home/fastdfs_storage_data
2. 接下來修改/etc/fdfs目錄下的storage.conf配置檔案,開啟檔案後依次做以下修改:
vi /etc/fdfs/storage.conf
disabled=false #啟用配置檔案(預設啟用)
group_name=group1 #組名,根據實際情況修改
port= 23000 #設定storage的埠號,預設是23000,同一個組的storage埠號必須一致
base_path=/home/fastdfs_storage #設定storage資料檔案和日誌目錄
store_path_count=1 #儲存路徑個數,需要和store_path個數匹配
store_path0=/home/fastdfs_storage_data #實際檔案儲存路徑
tracker_server=192.168.111.11:22122 #tracker 伺服器的 IP地址和埠號,如果是單機搭建,IP不要寫127.0.0.1,否則啟動不成功(此處的ip是我的CentOS虛擬機器ip)
http.server_port=8888 #設定 http 埠號
3. 配置完成後同樣要為Storage伺服器的啟動指令碼設定軟引用:
ln -s /usr/bin/fdfs_storaged /usr/local/bin
4. 接下來就可以啟動Storage服務了:
service fdfs_storaged start
如果啟動成功,/home/fastdfs_storage中就可以看到啟動後新生成的data和logs目錄,埠23000也應被正常監聽,還有一點就是檔案儲存路徑下會生成多級儲存目錄,那麼接下來看看是否啟動成功了:
netstat -unltp|grep fdfs
檢視埠:ss -ntl
有22122埠 和23000埠說明成功了
5. 至此storage伺服器就已經配置完成,確定了storage伺服器啟動成功後,還有一項工作就是看看storage伺服器是否已經登記到 tracker伺服器(也可以理解為tracker與storage是否整合成功),執行以下命令:
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
看到192.168.111.11 ACTIVE 字樣即可說明storage伺服器已經成功登記到了tracker伺服器, 同理別忘了新增開機啟動,開啟/etc/rc.d/rc.local並將如下配置追加到檔案中:
service fdfs_storaged start
五、安裝nginx storage伺服器的nginx
4.0.5版本開始移除了自帶的HTTP支援(因為之前自帶的HTTP服務較為簡單,無法提供負載均衡等高效能服務),所以餘大提供了nginx上使用FastDFS的模組fastdfs-nginx-module,下載地址如下:https://github.com/happyfish100/fastdfs-nginx-module,這樣做最大的好處就是提供了HTTP服務並且解決了group中storage伺服器的同步延遲問題,
yum -y install pcre-devel pcre zlib zlib-devel openssl openssl-devel
依次裝好這些依賴之後就可以開始安裝nginx了。
1. 下載fastdfs-nginx-module 得到fastdfs-nginx-module-master.zip
cd /home/mayanfu/fastdfs/
http://nginx.org/en/download.html 下載nginx 穩定版本nginx-1.12.2.tar.gz
2. 解壓安裝
tar -zxvf nginx-1.12.2.tar.gz
unzip fastdfs-nginx-module-master.zip
cd nginx-1.12.2
./configure --prefix=/usr/local/nginx --add-module=/home/mayanfu/fastdfs/fastdfs-nginx-module-master/src
make
make install
安裝完成後,我們在我們指定的目錄/usr/local/nginx中就可以看到nginx的安裝目錄了:
3. 接下來要修改一下nginx的配置檔案,進入conf目錄並開啟nginx.conf檔案加入以下配置:
cd /usr/local/nginx
vi nginx.conf
listen 9999;
location ~/group1/M00 {
root /home/fastdfs_storage_data/data;
ngx_fastdfs_module;
}
4. 然後進入FastDFS的安裝目錄/home/mayanfu/fastdfs/fastdfs-5.11目錄下的conf目錄,將http.conf和mime.types拷貝到/etc/fdfs目錄下:
cp -r /home/mayanfu/fastdfs/fastdfs-5.11/conf/http.conf /etc/fdfs/
cp -r /home/mayanfu/fastdfs/fastdfs-5.11/conf/mime.types /etc/fdfs/
接下來還需要把fastdfs-nginx-module安裝目錄中src目錄下的mod_fastdfs.conf也拷貝到/etc/fdfs目錄下:
cp -r /home/mayanfu/fastdfs/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/
5. 編輯剛拷貝的這個mod_fastdfs.conf檔案了,開啟mod_fastdfs.conf並按順序依次編譯以下內容:
base_path=/home/fastdfs_storage #儲存日誌目錄
tracker_server=10.100.1.99:22122 #tracker伺服器的IP地址以及埠號
storage_server_port=23000 #storage伺服器的埠號 url_have_group_name = true #檔案 url 中是否有 group 名 group_name=group1 store_path0=/home/fastdfs_storage_data # 儲存路徑
group_count = 3 #設定組的個數,事實上這次只使用了group1 ----------- 此處改為1,只用group1 // 此處不需要設定,全部去除 設定了group_count = 3,接下來就需要在檔案尾部追加這3個group setting:
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/home/fastdfs_storage_data
[group2]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/home/fastdfs_storage_data
[group3]
group_name=group3
storage_server_port=23000
store_path_count=1
store_path0=/home/fastdfs_storage_data
6. 接下來還需要建立 M00 至儲存目錄的符號連線:
ln -s /opt/fastdfs_storage_data/data /opt/fastdfs_storage_data/data/M00 (貌似有問題) // 改為下面 ln -s /home/fastdfs_storage_data/data /home/fastdfs_storage_data/M00 ln -s /usr/local/fastdfs/fastdfs_storage_data/data /usr/local/fastdfs/fastdfs_storage_data/data/M00
linux下面關閉防火牆:
1) 重啟後生效
開啟: chkconfig iptables on
關閉: chkconfig iptables off
2) 即時生效,重啟後失效
開啟: service iptables start
關閉: service iptables stop
7. 最後啟動nginx:
/usr/local/nginx/sbin/nginx
通過瀏覽器也可以看到nginx的主頁: http://10.100.1.99:9999/
storage伺服器的nginx就已經安裝完畢,接下來看一下tracker伺服器的nginx安裝。
六、 tracker nginx
1. 再裝一個nginx,目錄命名為nginx2,安裝路徑依舊放在/usr/local下,由於和之前一樣,此處就不再做詳細解釋:
mkdir /usr/local/nginx2
cd nginx-1.12.2 //原始碼的安裝一般由3個步驟組成:配置(configure)、編譯(make)、安裝(make install)。 // 解釋說明: https://blog.csdn.net/yangzaiqiu1986814/article/details/50740024 ./configure --prefix=/usr/local/nginx2 --add-module=/home/mayanfu/fastdfs/fastdfs-nginx-module-master/src
make
make install
2. 接下來依然是修改nginx2的配置檔案,進入conf目錄並開啟nginx.conf檔案加入以下配置,storage的nginx修改listen埠,即預設的9980埠,並將upstream指向tracker的nginx地址: // 此處server為tracker中的nginx地址 upstream fdfs_group1 { server 127.0.0.1:9999; }
// 此處監聽埠預設9980,不可和其他埠衝突 server { listen 9980; server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location /group1/M00 {
proxy_pass http://fdfs_group1;
}
……
}
3. 接下來啟動nginx2:
/usr/local/nginx2/sbin/nginx
此時訪問nginx2的主頁 http://10.100.1.99:9980
七、客戶端配置
1.最後一步就是需要修改/etc/fdfs目錄下的client.conf檔案,開啟該檔案並加入以下配置:
vi /etc/fdfs/client.conf base_path=/home/fastdfs_tracker #日誌存放路徑 tracker_server=10.100.1.99:22122 #tracker 伺服器 IP 地址和埠號
http.tracker_server_port=6666 # tracker 伺服器的 http 埠號,必須和tracker的設定對應起來
2. 至此關於fastdfs就已經全部配置完畢了,再一次進行測試看看是否能正常上傳檔案並通過http訪問檔案。
HTTP測試
再給/opt/mayanfu/目錄下上傳一張 圖:
通過客戶端命令測試上傳: /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /opt/mayanfu/0ec49f5ef18747b6a1ffc820ffc14964_th.jpg 返回:group1/M00/00/00/CmQBY1p4ITyAXIvWAABzmXfpT5Y058.jpg
開啟瀏覽器輸入ip地址+檔名看看是否能正常訪問該圖片: http://10.100.1.99:9999/group1/M00/00/00/CmQBY1p4ITyAXIvWAABzmXfpT5Y058.jpg
一切正常~ 至此關於FastDFS在CentOS 7下的部署測試就已經全部完成了。
3. 注意:如果重啟linux 系統 reboot 上面很多服務 不能 自動重啟:
所以使用指令碼讓他開機自動重啟;
#!/bin/bash
#
service fdfs_trackerd start
service fdfs_storaged start
/usr/local/nginx/sbin/nginx
/usr/local/nginx2/sbin/nginx