文件服务器高可用群集,fastDFS文件服务器(三):集群和高可用环境篇
解決兩個組輪詢存儲文件問題
上篇文章中我們搭建了單機版的fastDFS,其中storage有兩個group,分別為head和other,我們在測試的時候發現文件每次上傳都會到head目錄下,如果你希望other和head目錄存文件的幾率是一樣的,那么我們需要修改tracker.conf文件
vi /etc/fdfs/tracker.conf
store_lookup=0
#選擇組的方法上傳文件
#0:輪轉
# 1:指定組
# 2:負載平衡,選擇最大的自由空間群上傳文件
修改為0后重啟tracker服務
/usr/local/fastDFS/FastDFS/tracker/fdfs_trackerd /etc/fdfs/tracker.conf restart
再多次上傳文件,則發現head和other的機會是均等的了
輪詢后
storage集群環境
實際上在正式的生產環境中,如果只有一臺機器是storage,那么當這臺機器出現故障 時會影響整個系統都不能存儲和訪問文件,所以需要再另一臺機器上也有同樣的storage,
兩臺機器組成集群環境。
1、環境準備
虛擬機環境
liunx服務器(三):192.168.31.130
2、在192.168.31.130上安裝storage
按照上篇文章中安裝對應storage及其相關依賴包
安裝成功后啟動head和other
/usr/local/fastDFS/FastDFS/storage/fdfs_storaged /etc/fdfs/storage.conf restart
/usr/local/fastDFS/FastDFS/storage/fdfs_storaged /etc/fdfs/storage_other.conf restart
查看/fdfs/head/data和/fdfs/other/data生成的目錄
256個子目錄
3、在192.168.31.130上安裝nginx
按照上篇文章中按照nginx及其相關插件包
安裝和配置完成后需要修改192.168.31.128中nginx配置文件
vi /usr/local/fastDFS/trackerNginx/conf/nginx.conf
替換之前的這里的信息
#設置head的服務器
upstream fdfs_head {
server 192.168.31.129:8080 weight=1 max_fails=2 fail_timeout=10s;
server 192.168.31.130:8080 weight=1 max_fails=2 fail_timeout=10s;
}
#設置other的服務器
upstream fdfs_other {
server 192.168.31.129:8080 weight=1 max_fails=2 fail_timeout=10s;
server 192.168.31.130:8080 weight=1 max_fails=2 fail_timeout=10s;
}
重啟nginx
4、測試文件存儲
此時在tracker中上傳兩次文件
/usr/local/fastDFS/FastDFS/client/fdfs_upload_file /etc/fdfs/client.conf /home/test.png
執行兩次上面的命令,如下圖所示
上傳文件
在192.168.31.129中查看對應head和other目錄下文件信息
OK
在192.168.31.130中查看對應head和other目錄下文件信息
image.png
OK
清除緩存,停掉129上的storage
緩存清除
http://192.168.31.128:8888/purge/head/M00/00/00/wKgfgVrGEtyANsiaAAENlfmOar0820.JPG
緩存清除
停掉129上storage
ps -ef | grep storage
kill掉對應進程
停止成功
再次訪問,任然成功
OK
tracker高可用問題
在實際生產環境中,tracker也是成對出現的,既可以保證tracker的高可用性,也可以起到分流、實現負載均衡。
環境準備
虛擬機環境
liunx服務器(四):192.168.31.131
首先按照上一篇文章中的tracker安裝步驟安裝好tracker和對應的nginx
1、修改client.conf配置文件
修改四臺機器的client.conf配置文件
#之前的基礎上修改tracker_server為兩個即可
tracker_server=192.168.31.128:22122
tracker_server=192.168.31.131:22122
2、修改/etc/fdfs下面的storage中storage.conf和storage_other.conf
vi /etc/fdfs/storage.conf
#只需要修改下面tracker_server部分即可
tracker_server=192.168.31.128:22122
tracker_server=192.168.31.131:22122
vi /etc/fdfs/storage_other.conf
#只需要修改下面tracker_server部分即可
tracker_server=192.168.31.128:22122
tracker_server=192.168.31.131:22122
3、修改/etc/fdfs下面的mod_fastdfs.conf
vi /etc/fdfs/mod_fastdfs.conf
#只需要修改下面tracker_server部分即可
tracker_server=192.168.31.128:22122
tracker_server=192.168.31.131:22122
4、重啟tracker和storage測試文件上傳
我們分別重啟四臺機器上對于的tracker和storage及其nginx
確認都重啟成功后,我們進行測試
在128上上傳文件如下圖所示,分別上傳到storage的head和other中
128文件上傳
然后在131上傳文件如下圖所示,分別上傳到storage的head和other中
131文件上傳
我們到129和130兩臺storage中都可以找到上面的四張圖片
129上的文件
130上的文件
129和130中storage的other下面的文件此處不再截圖展示了。
此時停止掉128上的tracker進程,我們會看到131中的日志信息,131的tracker成為了新的leader
131中tracker日志
此時再次上傳文件,會發現128中任然可以成功,131中也可以成功,因為client.conf文件中配置了兩個tracker服務器,由于我們停止了128中tracker,所以這里會報錯
仍然OK
下篇文章中將會結合代碼進行文件上傳。
總結
以上是生活随笔為你收集整理的文件服务器高可用群集,fastDFS文件服务器(三):集群和高可用环境篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ETC通道和人工通道怎么区分
- 下一篇: 位运算编程小技巧