上一章節介紹了FastDFS的單機部署和使用,但是實際上的場景中不可能只用單機來做,更多的時候是采用集群部署,那么本章就帶大家進入集群部署的研究,
1、準備環境
我這里采用7臺,當然你們按照自己的選擇,最外層的Nginx是用來進行統一域名+請求轉發,另外我設定了2個tracker分別負載到2個組,如果不清楚這些概念可以看我的第一章節基礎部分,15+16作為組1,互為主備;17+23作為組2,互為主備;13+14分別為兩個tracker,
group1的兩臺機器大小一模一樣,要是1TB都是1TB,group2也是一樣,所以存盤空間一共是4TB,真實的空間是2TB,因為兩個組的資料互為主備,如果后面空間不夠用的話,我們只需要加group3,group4...FastDFS沒有要求組和組大小一樣,但是要求同一個組內的配置,資料是一樣的,所以group3你可以搞很多個主備,保證每個主備配置一樣就可以,大小也沒有限制和其他組要求一樣,這個需要提前說明下,
2、部署步驟
每個節點上執行如下命令,準備環境
yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y13節點和14節點是tracker,所以在這兩臺節點在/usr/local/src(沒有就自己創建一個這樣的目錄)當然你放在其他目錄下都可以;
把這兩個檔案上傳到/usr/local/src下
- libfastcommon(FastDFS分離出的一些公用函式包)
- fastdfs(FastDFS本體)
同樣15、16、17、23這四臺的group1和group2也上傳上面兩個檔案
完成后分別進行解壓,安裝
tar -zxvf libfastcommon.tar.gz tar -zxvf fastdfs.tar.gz cd /libfastcommon cd fastdfs/ ./make.sh && ./make.sh install這樣6臺就先裝好了fastdfs本體和lib包,
然后這6臺都進行下面的操作
cd /fastdfs/conf # 拷貝兩個檔案 cp mime.types http.conf /etc/fdfs/修改tracker server節點(13、14)的下的/etc/fdfs/目錄下的tracker.conf
#服務器ip為 192.168.52.1 #我建議用ftp下載下來這些檔案 本地修改 vim /etc/fdfs/tracker.conf #需要修改的內容如下 port=22122 # tracker服務器埠(默認22122,一般不修改) base_path=/opt/fastdfs/tracker # 這里一定要提前先手動mkdir,不然找不到存盤日志和資料的根目錄修改剩下group1(15、16),group2(17、23)的節點/etc/fdfs/目錄的storage.conf
vim /etc/fdfs/storage.conf #需要修改的內容如下 port=23000 # storage服務埠(默認23000,一般不修改) # 是組1就寫group1,組2就寫group2 group_name = group1 base_path=/opt/fastdfs/storage # 資料和日志檔案存盤根目錄 store_path0=/opt/fastdfs/storage/files # 第一個存盤目錄 # tracker服務器IP和埠,注意這里單機只配一個就好了,多個主備配多個 tracker_server=13節點:22122 tracker_server=14節點:22122 http.server_port=8888 # http訪問檔案的埠(默認8888,看情況修改,和nginx中保持一致)把這個storage.conf傳到4臺組1和組2的/etc/fdfs目錄下,記得修改storage.conf檔案中的group_name;
接下來我們就可以啟動tracker兩臺13和14
fdfs_trackerd /etc/fdfs/tracker.conf啟動完成后,剩下4臺storage啟動
fdfs_storaged /etc/fdfs/storage.conf如果啟動失敗,記得看下/opt/fastdfs/storage/log下的日志
那么我們現在集群全部都啟動成功了!
在啟動前我們要先關閉所有storage和tracker之間的防火墻,不然后面檔案訪問不了:
#不關閉防火墻的話無法使用 systemctl stop firewalld.service #關閉 systemctl restart firewalld.service #重啟我們在13節點上用命令測驗下:
# 自己隨便創建一個檔案1.txt fdfs_upload_file /etc/fdfs/client.conf 1.txt回傳成功,
這里注意,如果有時候發現總是往一臺上打的話,不是說明負載有問題,而是有個配置
tracker.conf里有這么兩個配置
store_lookup:0表示輪詢;1表示上傳到指定的組,配合store_group確定(一般不建議這么做); 2表示負載均衡,選擇一個空間較大的組進行上傳,
那么到這,集群配置完畢!
因為我們沒有部署nginx,所以我們無法訪問圖片資源,
3、Nginx部署
我們同樣要在6臺(2個tracker,4個storage)機子上傳nginx,也在/usr/local/src上傳到這里,
2個tracker_server是用做負載均衡的,只上傳nginx就行,均衡訪問4臺storage,
- nginx1.15.4
4個storage是nginx擴展模塊,需要上傳nginx擴展塊和nginx,具體來訪問檔案資源,
- nginx1.15.4
- fastdfs-nginx-module(FastDFS和nginx的關聯模塊)
在這6臺上執行nginx編譯環境的命令腳本
yum install gcc openssl openssl-devel pcre pcre-devel zlib zlib-devel -y在13和14上解壓nginx包,執行以下命令
tar -zxvf nginx-1.15.4.tar.gz cd /nginx-1.15.4 ./configure --prefix=/usr/local/nginx_fdfs make && make install在4臺storage解壓擴展模塊和nginx,一定要先解壓,和后面步驟不能顛倒,
tar -zxvf fastdfs-nginx-module.tar.gz tar -zxvf nginx-1.15.4.tar.gz把當前nginx擴展模塊里的某個路徑先記錄下來后面要加擴展模塊的路徑
/usr/local/src/fastdfs-nginx-module/src然后進入4臺的nginx-1.15.4目錄下,執行如下命令
./configure --prefix=/usr/local/nginx_fdfs --add-module=/usr/local/src/fastdfs-nginx-module/src make && make install如果報錯這個,說明你上面的命令有少的,要么沒解壓擴展模塊要么沒做nginx編譯環境初始化,
centos 7.2 make: *** No rule to make target `build', needed by `default'. Stop到這6個nginx就準備完成了,
然后配置tracker server2臺機器的nginx
cd /usr/local/nginx_fdfs/conf,修改nginx.conf配置
兩臺tracker server都這么配置!
啟動2臺tracker server的nginx
/usr/local/nginx_fdfs/sbin/nginx -c /usr/local/nginx_fdfs/conf/nginx.conf啟動成功如圖
配置另外4臺storage的nginx添加http訪問路徑的攔截
cd /usr/local/nginx_fdfs/conf,修改nginx的配置
四臺記得都要修改這個nginx.conf
然后把這個mod_fastdfs.conf檔案下載下來修改
這些引數按照我發的配置調整下:
base_path=/opt/fastdfs/nginx_mod tracker_server=10.12.105.13:22122 tracker_server=10.12.105.14:22122 # 這里要區分下 group1上傳的和group2的配置區別只有這里,其他的引數一樣 group_name=group1 url_have_group_name = true store_path0=/opt/fastdfs/files group_count = 2 [group1] group_name=group1 storage_server_port=23000 store_path_count=1 store_path0=/opt/fastdfs/storage/files [group2] group_name=group2 storage_server_port=23000 store_path_count=1 store_path0=/opt/fastdfs/storage/files把mod_fastdfs.conf檔案分別上傳到4臺storage的/etc/fdfs下,注意這里的group_name修改,
還要注意需要手動生成這些目錄/opt/fastdfs/nginx_mod
啟動4臺nginx
/usr/local/nginx_fdfs/sbin/nginx -c /usr/local/nginx_fdfs/conf/nginx.conf啟動好后,我們訪問任意一臺storage成功
目前訪問檔案資源就完成了!!
但是這樣的話用戶就要記住6個地址ip,這樣的情況下是有問題的;
所以我們考慮在最外層做一個nginx統一域名,轉發到兩個tracker server
20節點我們作為最外層的nginx,修改nginx.conf
最終啟動外層的nginx就可以了,大功告成!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/298921.html
標籤:其他








