記錄一次FastDFS服務在增加新組之后報錯的解決過程
首先要先交代一下現在使用的FastDFS結構模式:總共有若干組,每組storage的其中一個主機掛載兩塊數據盤。現在的要求是添加一個storage組,新增的組中主機只有一塊數據盤,還有,獲取文件是用了NGINX的取文件的功能,而且加上了token設定超時的功能,以上為背景。
本來題主以為,只需要修改一下fdfs_storage.conf這個配置文件,還有nginx相關的配置:http.conf 、mod_fastdfs.conf。修改過后,按照設想,配置文件應該是如下:
storage.conf配置見下:
http.conf配置見下:
mod_fastdfs.conf配置見下:
配置完之后,修改storage服務器中的NGINX服務器配置,然后在前端負載均衡中引入此group組的負載功能。然后開開信心的測試了。結果出現499或者502的報錯。WF。于是就開始排查配置文件:先從tracker開始,沒有異常,再storage日志,也沒有異常,正常的clean task,然后查看storage中的nginx的日志的時候發現了以下報錯,開始不明白的這是什么鬼,我手段服務那邊,也沒有寫錯啊?為什么這個地方非要引用這個home1呢?我這個地方設置的只有home啊?
[root@fdfs-g5-0001?logs]#?tailf?/usr/local/nginx/logs/error.log 2019/03/01?20:07:02?[notice]?20278#0:?signal?process?started ngx_http_fastdfs_set?pid=16791 ngx_http_fastdfs_process_init?pid=20279 [2019-03-01?20:07:02]?ERROR?-?file:?../storage/trunk_mgr/trunk_shared.c,?line:?116,?"/home1/fastdfs/storage"?can't?be?accessed,?errno:?2,?error?info:?No?such?file?or?directory 2019/03/01?20:07:02?[alert]?16791#0:?worker?process?20279?exited?with?fatal?code?2?and?cannot?be?respawned 2019/03/01?20:07:03?[notice]?20280#0:?signal?process?started ngx_http_fastdfs_set?pid=16791 ngx_http_fastdfs_process_init?pid=20281 [2019-03-01?20:07:03]?ERROR?-?file:?../storage/trunk_mgr/trunk_shared.c,?line:?116,?"/home1/fastdfs/storage"?can't?be?accessed,?errno:?2,?error?info:?No?such?file?or?directory 2019/03/01?20:07:03?[alert]?16791#0:?worker?process?20281?exited?with?fatal?code?2?and?cannot?be?respawned
于是,查看了很多的可能存在問題的地方比如:storage的sync目錄,以及tracker的data目錄,以及mod_fastdfs.conf中/tmp目錄,可是什么都沒有發現。
還是先看報錯吧。
提示一個路徑找不到。那好吧,找不到就創建。不過這個地方一直很郁悶,為什么會出現這個問題。NGINX中配置的時候,是出現了已經存在的機器的NGINX的配置,可是不生效啊。。怎么會在這兒出現這個問題呢?待解決的問題。
既然提示路徑找不到,就創建這個路徑吧。創建過后,就沒有問題了。
我覺得問題可能出現以下幾個方面:
1、可能我有一些配置文件沒有看到,或者有一些同步的文件沒有注意到,
2、也可能是我從老機器中copy過來NGINX的時候,將一些隱藏的東西也copy過來了。然后就出現今天這種情況了。
不過我覺得第二種的可能性大,但是那也要找到為甚會出現這樣啊???
先說解決的方式吧:
就是創建沒有存在的目錄,如果提示文件找不到,就把相應的文件放到相應的目錄中。
配置fastdfs和NGINX的時候,千萬不要圖省事兒從老機器中copy,除非你完全知道這么修改。這個費勁的排查程度還不如自己手動配置的速度快呢。
因為今天的文件服務器還是需要擴容的,所以,再進行擴容之前,充分的進行了一次測試,測試結果是這樣的:
之前的文件服務器配置的時候還是按照正常的配置,storage的配置文件正常配置就行了。這里沒有任何的問題。出現問的地方在于一個跟NGINX有關的模塊配置文件mod_fastdfs.conf,具體出錯原因如下:
1、配置mod_fastdfs.conf的時候,新增的fastdfs_storage是第幾組就在此配置文件中協商幾組配置文件,第一組在mod_fastdfs.conf末尾的地方寫group_count=1 即可,此時配置后面的關于group的配置文件時只需要寫第一組,當到第五組的時候應該寫上group_count=5,后面配置文件最好將此五組配置都應該寫上,要不然可能報錯。
2、測試了一下,拿第五組來說,如果前四組都是兩個storage_path路徑,那第五組只配置一塊硬盤,此時配置mod_fastdfs.conf的時候,可以在其中的store_path_count=1寫成只有一個path,但是創建目錄的時候,比如講上面四組中有的那兩個路徑,都應在第五組的創建。要不然,NGINX就會報錯罷工。不知道為什么會有這樣的原因。
3、并且測試了一下,好像如果第五組直接寫group_count = 1是不可以的。,必須從group1 -group4都寫到配置文件里。但是group4組的mod_fastdfs.conf 就不需要將第五組寫進去。
PS:之前紅色的地方有些說錯了,現在看來是我對此軟件的配置文件理解有誤。
華為云APP
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。