天天看點

高可用高性能分布式檔案系統FastDFS進階keepalived+nginx對多tracker進行高可用熱備 FastDFS叢集伺服器分布

  高可用是實作了,但由于我們隻設定了一個group,如果現在有5台伺服器那将會出現5台隻有一個group,每台伺服器内的檔案内容都相同(互備份)如下圖,會造成資源浪費。

高可用高性能分布式檔案系統FastDFS進階keepalived+nginx對多tracker進行高可用熱備 FastDFS叢集伺服器分布

 是以下面就5台伺服器進行優化改造,進一步添加keepalived+nginx多tracker 架構,做到真正的高可用和高性能。

高可用高性能分布式檔案系統FastDFS進階keepalived+nginx對多tracker進行高可用熱備 FastDFS叢集伺服器分布

其中keepalived+nginx用作30和31 tracker伺服器作熱備。用虛拟VIP 27作統一入口。

我們将按上面的架構分伺服器:

虛拟VIP用192.168.80.27 keepalived+nginx 熱備、負載均衡 : 28、29  tracker: 30和31伺服器 storage: group1:32、33 group2:34、35

雖然每個伺服器上都有Nginx,但這裡還是先強調一下這裡Nginx的用途:

首先所有的Nginx都是用于上傳後的檔案通路用的,跟上傳無關。

28、29上面的就是常見的端口負載,這裡是對兩個tracker通路檔案端口8000(自己設定)負載。

tracker 上安裝的 nginx 主要為了提供 http 通路的反向代理、負載均衡以及緩存服務。

每一台storage伺服器主機上部署Nginx及FastDFS擴充子產品,由Nginx子產品對storage存儲的檔案提供http下載下傳服務, 僅當目前storage節點找不到檔案時會向源storage主機發起redirect或proxy動作。 

注:圖中的tracker可能為多個tracker組成的叢集;且目前FastDFS的Nginx擴充子產品支援單機多個group的情況

安裝配置步驟前文一緻,配置tracker.conf 和client.conf,主要注意防火牆 開啟端口22122 

記得手動建立兩個檔案夾:

/data/fastdfs/tracker

/data/fastdfs/client

兩個節點内容一樣。

記得手動建立兩個檔案夾:/data/fastdfs/storage

安裝步驟與上文一緻,配置:

/etc/fdfs/storage.conf

 注意:

32和33  group_name=group1

34和35  group_name=group2

其他配置一樣預設,注意防火牆 開啟端口23000。

/usr/bin/fdfs_trackerd  /etc/fdfs/tracker.conf

chkconfig fdfs_trakcerd on

/usr/bin/fdfs_storaged /etc/fdfs/storage.conf

chkconfig fdfs_storaged on

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

高可用高性能分布式檔案系統FastDFS進階keepalived+nginx對多tracker進行高可用熱備 FastDFS叢集伺服器分布

/usr/bin/fdfs_test /etc/fdfs/client.conf upload /etc/fdfs/anti-steal.jpg

以上就是FastDFS的安裝與配置。下面就與Nginx子產品結合作介紹。

fastdfs-nginx-module的作用已經在上篇介紹過,在此主要是配置。

上傳fastdfs-nginx-module.tar.gz到/opt檔案夾下

解壓插件壓縮包

unzip fastdfs-nginx-module.zip

cd nginx

對nginx重新config

再進行 make && make install

将mod_fastdfs.conf 拷貝到fdfs下進行配置

cd fastdfs-nginx-module/src

cp mod_fastdfs.conf /etc/fdfs/ #将mod_fastdfs.conf 拷貝到fdfs下進行配置

vim /etc/fdfs/mod_fastdfs.conf

vim /opt/nginx/conf/nginx.conf

 8888的請求且有group的都轉給 ngx_fastdfs_module 插件處理,防火牆什麼的就不說了。

shell> /opt/nginx/sbin/nginx

浏覽器通路測試時上傳的檔案,應該都能正常通路。

http://192.168.80.32:8888/group1/M00/00/00/CgNXGVpddOKANpzbAABdrZgsqUU369_big.jpg

http://192.168.80.34:8888/group2/M00/00/00/CgNXGVpddOKANpzbAABdrZgsqUU369_big.jpg

說明:每個節點執行相同的操作

tracker節點:30,31

在 tracker 上安裝的 nginx 主要為了提供 http 通路的反向代理、負載均衡以及緩存服務。

同樣都上傳nginx和ngx_cache_purge包

解壓檔案到/opt檔案夾下

tar -zxvf ngx_cache_purge-2.3.tar.gz

vi /opt/nginx/conf/nginx.conf

添加以下内容

上面配置的是當請求8000端口時根據group1還是group2進行選擇到對應的伺服器響應。

要注意的已标色。還要提前建立緩存目錄:/data/fastdfs/cache/nginx/proxy_cache

前面直接通過通路Storage節點中的Nginx通路檔案:

現在可以通過Tracker中的Nginx來進行通路:

(1)、通過 Tracker1 中的 Nginx 來通路

http://192.168.80.30:8000/group1/M00/00/00/CgNXGVpddOKANpzbAABdrZgsqUU369_big.jpg

http://192.168.80.30:8000/group2/M00/00/00/CgNXGVpddOKANpzbAABdrZgsqUU369_big.jpg

(2)、通過 Tracker2 中的 Nginx 來通路

http://192.168.80.31:8000/group1/M00/00/00/CgNXGVpddOKANpzbAABdrZgsqUU369_big.jpg

http://192.168.80.31:8000/group2/M00/00/00/CgNXGVpddOKANpzbAABdrZgsqUU369_big.jpg

高可用高性能分布式檔案系統FastDFS進階keepalived+nginx對多tracker進行高可用熱備 FastDFS叢集伺服器分布

  每一個Tracker中的Nginx都單獨對後端的Storage組做了負載均衡,但整套FastDFS叢集,如果想對外提供統一的檔案通路位址,還需要對兩個Tracker中的Nginx進行HA叢集

其實上面可以通過30或31的8000端口進行檔案通路了,下面統一端口,對30和31再進行一次負載均衡。

使用Keepalived + Nginx組成的高可用負載均衡叢集,做兩個Tracker節點中Nginx的負載均衡。

這裡使用Nginx,将Keepalived 和 Nginx 安裝到 28和29上,VIP為27。

http://192.168.80.27:8000/dfs/group1/M00/00/00/CgNXGVpddOKANpzbAABdrZgsqUU369_big.jpg

http://192.168.80.27:8000/dfs/group2/M00/00/00/CgNXGVpddOKANpzbAABdrZgsqUU369_big.jpg

   以上就是整個配置過程,看起來是非常的繁雜,是以一定要先弄清整個的部署架構,然後每個插件是用來做什麼的都要清楚,後面如果要擴充的話就有個清晰的思路。

  環境搭建隻是開始,真正的使用、優化才是重點,是以耐心的看吧。

繼續閱讀