FastDFS服務雙硬盤加驗證配置
一、FastDFS擴容的方法介紹
FastDFS擴容有大概兩種方式:
第一種方法比較簡單快速,增加storage的group組即可;
就是增加一組storage服務組,在其中的配置文件出,修改group_name,修改tracker_server為已有的tracker且必須全部都要寫上,不然可能tracker_server之間的信息狀態會不同步。
第二種是在已有組中增加硬盤的方法,此方法在之前的文章中有介紹,其中稍微有一些缺陷:
在此重新介紹下雙硬盤的storage的配置:雙硬盤是在已有的storage組里每臺機器添加容量相同的硬盤,并掛載到其中的盤符下。如下圖,磁盤掛載到/home1目錄下面。然后在其中創建目錄。
如果不考慮使用nginx取文件,則到此就可以結束了,但是有時候會通過使用nginx取查看文件,所以,,需要修改nginx的配置文件,nginx.conf 、mod_fastdfs.conf,使nginx能夠支持對不同的group組和存儲路徑(如M00、M01)的文件的查看
第三種:在華為云購買的云主機和云硬盤的話,還有一種擴容方式是直接擴容磁盤大小。
華為云購買的數據盤,掛載到服務器之后,不進行分區直接使用mkfs?-t?ext4?/dev/vdX進行格式化,然后掛載到云主機的某個目錄下。
擴容時,在云主機卸載磁盤,然后云平臺卸載磁盤,然后在云平臺進行擴容磁盤操作(要花錢的哦哈哈。。),之后云平臺掛載到云主機,找到華為云幫助文檔,查看到需要在云主機中執行命令e2fsck -f /dev/vdX(檢查系統文件的正確性)和resize2fs /dev/vdX?(擴展文件系統的大小)
二、FastDFS擴容操作步驟
由于已有的磁盤存儲已經到80%,所以,FastDFS必須擴容。綜合考慮增加組的話既增加硬盤又增加主機、已有的組的存儲數據只有讀取而且讀取的頻率不會太高,現有業務產生的系統IO也不太高,所以綜合下決定采用在已有的storage組中添加磁盤的方式進行擴容。
由于公司業務修改之后需要使用NGINX從storage中獲取圖片的,所以,需要配置nginx以支持從nginx中獲取FastDFS中的文件內容
1、修改FastDFS的storage配置文件
修改storage.conf
此處修改了storage.conf的配置之后,需要重啟storage服務,在重啟其中一個的時候,會產生報錯,重啟了同組的另一個storage服務之后,報錯就會消失。
報錯內容如下圖:
報錯原因:兩臺storage的store_path_count 必須一致,不然存在M01的數據同步不到另外一臺storage上。
這個連接中有解釋:https://blog.csdn.net/vichou_fa/article/details/78774368
2、修改mod_fastdfs.conf配置文件
首先nginx服務得能支持mod_fastdfs模塊,安裝方法自行百度吧。
修改 mod_fastdfs.conf ? ,需要修改下圖中的幾處。
修改以上兩處,和storage的地方相同,建議每一個組都采用這種方式;
修改此兩處,特別注意group_name/storage_path_count/store_path的配置,一定要正確,如果有兩個path,就寫兩個,有幾個組就寫幾個組。(此處現實生產中的配置中有一些不一樣的地方,在文章結尾處寫這個問題)
3、修改storage服務器中的nginx的配置文件
修改nginx配置文件/usr/local/nginx/conf/nginx.conf
在此處有location ,我覺得可以將M00和M01這個東西給去掉,然后在最前端的nginx中做不同組的不同的轉發后端,這地方寫配置文件的話,就不需要寫那么多group了,只需要寫此NGINX所在storage的group組即可。
注意,此處有M00和M01 ,需要在storage的數據目錄做軟鏈接,支持這種操作,命令如下:
ln?-s?/home/fastdfs/storage/data/?/home/fastdfs/storage/data/M00 ln?-s?/home1/fastdfs/storage/data/?/home/fastdfs/storage/data/M01
4、由于nginx的話,可能會被遍歷目錄,所以采用token限制訪問,token是程序那邊返回的,且設定限定有效時間,需要在配置文件中放開。
配置如下:
有一個timg.jpg的圖片,需要注意,寫對,理論上這個圖片可以是任意圖片,但是路徑一定要對。
注意開啟http.anti_steal.check_token=true,注意寫對secret_key這個。
###后續補充為什么nginx的mod_fastdfs.conf配置文件在集群中有不一樣的配置。
集群配置如上,因為在這個擴容的過程中不牽涉到tracker ,故沒有在此圖中畫出。
1、其中負載均衡后的nginx,是業務層根據域名做的域名請求轉發。不同的group組轉發到相應的FastDFS-nginx組上
2、FastDFS-nginx中有nginx和storage兩個服務,其中storage服務的配置文件正常的配置雙硬盤的方法;nginx的nginx.conf的配置文件也需要按照上面nginx的配置添加配置內容如下:
location ~/group([0-9])/M01 {
ngx_fastdfs_module;
}
nginx.conf配置文件修改好之后,修改mod_fastdfs.conf配置的時候,在group1組的只需要在末尾那些配置group組的配置文件的地方填寫group1的配置即可,group2組只需要填寫group1的配置,不需要每個storage的mod_fastdfs.conf的末尾的配置完全一樣。這樣就會造成不同組的mod_fastdfs.conf最后不一致。但是官方給的方案是要一致。可能是考慮到負載均衡或者是單獨的對一個fastdfs的nginx請求的時候,不管是請求那個組都請求一個nginx ,那樣的話,會造成請求不到的情況。如果區分好了請求group1只給group1的storage服務器中的nginx。那樣就不會出錯。
華為云APP
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。