解決兩個(gè)組輪詢存儲(chǔ)文件問題
上篇文章中我們搭建了單機(jī)版的fastDFS,其中storage有兩個(gè)group,分別為head和other,我們在測試的時(shí)候發(fā)現(xiàn)文件每次上傳都會(huì)到head目錄下抖所,如果你希望other和head目錄存文件的幾率是一樣的晴埂,那么我們需要修改tracker.conf文件
vi /etc/fdfs/tracker.conf
store_lookup=0
#選擇組的方法上傳文件
#0:輪轉(zhuǎn)
# 1:指定組
# 2:負(fù)載平衡,選擇最大的自由空間群上傳文件
修改為0后重啟tracker服務(wù)
/usr/local/fastDFS/FastDFS/tracker/fdfs_trackerd /etc/fdfs/tracker.conf restart
再多次上傳文件聂喇,則發(fā)現(xiàn)head和other的機(jī)會(huì)是均等的了
storage集群環(huán)境
實(shí)際上在正式的生產(chǎn)環(huán)境中辖源,如果只有一臺機(jī)器是storage,那么當(dāng)這臺機(jī)器出現(xiàn)故障 時(shí)會(huì)影響整個(gè)系統(tǒng)都不能存儲(chǔ)和訪問文件希太,所以需要再另一臺機(jī)器上也有同樣的storage,
兩臺機(jī)器組成集群環(huán)境克饶。
1、環(huán)境準(zhǔn)備
虛擬機(jī)環(huán)境
liunx服務(wù)器(三):192.168.31.130
2誊辉、在192.168.31.130上安裝storage
按照上篇文章中安裝對應(yīng)storage及其相關(guān)依賴包
安裝成功后啟動(dòng)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生成的目錄
3矾湃、在192.168.31.130上安裝nginx
按照上篇文章中按照nginx及其相關(guān)插件包
安裝和配置完成后需要修改192.168.31.128中nginx配置文件
vi /usr/local/fastDFS/trackerNginx/conf/nginx.conf
替換之前的這里的信息
#設(shè)置head的服務(wù)器
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;
}
#設(shè)置other的服務(wù)器
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、測試文件存儲(chǔ)
此時(shí)在tracker中上傳兩次文件
/usr/local/fastDFS/FastDFS/client/fdfs_upload_file /etc/fdfs/client.conf /home/test.png
執(zhí)行兩次上面的命令芥映,如下圖所示
在192.168.31.129中查看對應(yīng)head和other目錄下文件信息
在192.168.31.130中查看對應(yīng)head和other目錄下文件信息
5洲尊、測試文件訪問
訪問:http://192.168.31.128:8888/head/M00/00/00/wKgfgVrGEtyANsiaAAENlfmOar0820.JPG
清除緩存,停掉129上的storage
緩存清除
http://192.168.31.128:8888/purge/head/M00/00/00/wKgfgVrGEtyANsiaAAENlfmOar0820.JPG
停掉129上storage
ps -ef | grep storage
kill掉對應(yīng)進(jìn)程
再次訪問奈偏,任然成功
tracker高可用問題
在實(shí)際生產(chǎn)環(huán)境中坞嘀,tracker也是成對出現(xiàn)的,既可以保證tracker的高可用性惊来,也可以起到分流丽涩、實(shí)現(xiàn)負(fù)載均衡。
環(huán)境準(zhǔn)備
虛擬機(jī)環(huán)境
liunx服務(wù)器(四):192.168.31.131
首先按照上一篇文章中的tracker安裝步驟安裝好tracker和對應(yīng)的nginx
1裁蚁、修改client.conf配置文件
修改四臺機(jī)器的client.conf配置文件
#之前的基礎(chǔ)上修改tracker_server為兩個(gè)即可
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測試文件上傳
我們分別重啟四臺機(jī)器上對于的tracker和storage及其nginx
確認(rèn)都重啟成功后矮男,我們進(jìn)行測試
在128上上傳文件如下圖所示,分別上傳到storage的head和other中
然后在131上傳文件如下圖所示室谚,分別上傳到storage的head和other中
我們到129和130兩臺storage中都可以找到上面的四張圖片
129和130中storage的other下面的文件此處不再截圖展示了毡鉴。
此時(shí)停止掉128上的tracker進(jìn)程,我們會(huì)看到131中的日志信息秒赤,131的tracker成為了新的leader
此時(shí)再次上傳文件猪瞬,會(huì)發(fā)現(xiàn)128中任然可以成功,131中也可以成功入篮,因?yàn)閏lient.conf文件中配置了兩個(gè)tracker服務(wù)器陈瘦,由于我們停止了128中tracker,所以這里會(huì)報(bào)錯(cuò)
下篇文章中將會(huì)結(jié)合代碼進(jìn)行文件上傳潮售。