CentOS FastDFS配置之常見錯誤

Q:/fdfs_trackerd: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory

A:export LD_LIBRARY_PATH=/usr/loal/lib(libevent的安裝路徑,可以通過find來查找)

Q:Command 'ifconfig' is available in '/sbin/ifconfig'
The command could not be located because '/sbin' is not included in the PATH environment variable.
This is most likely caused by the lack of administrative priviledges associated with your user account.
ifconfig: command not found

A:export PATH=$PATH:/sbin

Q:nginx@ubuntu:~/fastdfs/bak$ ./run_nginx.sh
/home/nginx/nginx/sbin/nginx: error while loading shared libraries: libfastcommon.so: cannot open shared object file: No such file or directory

A:找不到fastdfs的庫文件,因爲前面執行了 export LD_LIBRARY_PATH=/usr/loal/lib,所以 爲了使得使用方便,就把所有需要用到的LIB放在一起:

cp libf*.so /usr/local/lib
ls -l /usr/local/lib/libf* 如果沒有鏈接映射,就需要自己做一個或者把四個文件全部拷過去
sudo ln -sf /home/nginx/fastdfs/lib/libfastcommon.so.1 /usr/local/lib/libfastcommon.so
sudo ln -sf /home/nginx/fastdfs/lib/libfdfsclient.so.1 /usr/local/lib/libfdfsclient.so

注意:做軟鏈接的時候需要加絕對路徑,不然會出現黑色的提示。

Q:400 badrequest
[2011-12-12 15:24:21] ERROR - file: /tmp/fastdfs-nginx-module/src/common.c, line: 561, logic file: M00/00/00/wKgBNU7lqyjzJZ4mAA4CRXl5SCQ670.jpg not exists
2011/12/12 15:24:21 [error] 14147#0: *1 open() "/home/nginx/nginx/html/favicon.ico" failed (2: No such file or directory), client: 192.168.1.123, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "192.168.1.53:8090"

A:修改/fastdfs/conf/mod_fastdfs.conf
裏面url_have_group_name = true

Q: 在tracker的日誌裏報出此類錯誤
ERROR - file: tracker_mem.c, line: 1406, the format of the file "/home/bstar/dfs_data/data/storage_sync_timestamp.dat" is invalid, group: group3, row count:1 > server count:0

A:修改data裏面的 storage_sync_timestamp.dat,把group3的信息刪掉,然後重啓tracker

Q:在啓動tracker的時候出現此類錯誤:
ERROR - file: ../common/fdfs_http_shared.c, line: 128, param "http.mime_types_filename" not exist or is empty

A:修改tracker.conf裏面,把##include http.conf 改爲#include http.conf ,再重啓

Q:ERROR - file: tracker_http_check.c, line: 132, http check alive, connect to http server 192.168.1.53:8888 fail, errno: 111, error info: Connection refused

A:端口不對。要配置storage和nginx端口一致/

Q:ERROR - file: /home/nginx/install/fastdfs-nginx-module/src/common.c, line: 561, logic file: M00/00/00/wKgBNU7wRbrcAYGuAALOPrGJ7YQ668.jpg not exists

A:apache和nginx擴展模塊版本v1.06及以上版本,需要在配置文件/etc/fdfs/fastdfs_mod.conf中設置storage server的存儲路徑信息。
一個示例如下所示:
store_path_count=1
store_path0=/home/yuqing/fastdfs
store_path_count和store_path#均需要正確設置,必須和storage.conf中的相應配置完全一致

Q: DEBUG - file: tracker_proto.c, line: 48, server: 192.168.1.51:22122, response status 28 != 0
tracker_query_storage fail, error no: 28, error info: No space left on device

A:空間不足

Q:EBUG - file: storage_disk_recovery.c, line: 699, disk recovery: begin recovery data path: /home/nginx/fastdfs ...

A:這個是數據遷移後的問題,這個需要之前配置的sub_dir的數目前後保持一致。

Q:啓動storage server時,一直處於僵死狀態。
啓動storage server,storage將連接tracker server,如果連不上,將一直重試。直到連接成功,啓動纔算真正完成。
出現這樣情況,請檢查連接不上tracker server的原因。

A:從V2.03以後,多tracker server在啓動時會做時間上的檢測,判斷是否需要從別的tracker server同步4個系統文件。
觸發時機是第一個storage server連接上tracker server後,併發起join請求。
如果集羣中有2臺tracker server,而其中一臺tracker沒有啓動,可能會導致storage server一直處於僵死狀態。

Q:執行fdfs_test或fdfs_test1上傳文件時,服務器返回錯誤號2

A:錯誤號2表示沒有ACTIVE狀態的storage server。可以執行fdfs_monitor查看服務器狀態。

Q:如何刪除無效的storage server?

A:可以使用fdfs_monitor來刪除。命令行如下:
/usr/local/bin/fdfs_monitor delete
例如:
/usr/local/bin/fdfs_monitor /etc/fdfs/client.conf delete group1 192.168.0.100
注意:如果被刪除的storage server的狀態是ACTIVE,也就是該storage server還在線上服務的情況下,是無法刪除掉的。

Q:nginx和apache擴展模塊與FastDFS server版本對應關係

A:擴展模塊1.05: 針對FastDFs server v2.x,要求server版本大於等於v2.09
擴展模塊1.07及以上版本: 針對FastDFs server v3.x

Q:上傳文件失敗,返回錯誤碼28,這是怎麼回事?

A:返回錯誤碼28,表示磁盤空間不足。注意FastDFS中有預留空間的概念,在tracker.conf中設置,配置項爲:reserved_storage_space,缺省值爲4GB,即預留4GB的空間。請酌情設置reserved_storage_space這個參數,比如可以設置爲磁盤總空間的20%左右。

Q:nginx擴展模塊,不能正常顯示圖片的問題

A:在配置文件/etc/fdfs/mod_fastdfs.conf中,缺省的設置是這樣的:http.need_find_content_type=false這個參數在nginx中需要設置爲true,apache中應該設置爲false

Q:啓動 FastDFS 的 tracker 和 storage 服務後,通過 fdfs_monitor 命令查看 tracker 和 storage 的通信狀態,發現 storage 的狀態始終爲 offline,怎麼辦?

A:先查看 tracker 和 storage 的日誌,確認服務是否有問題;如果日誌顯示正常,則有可能是在操作過程中,刪除了 tracker 或 storage 某一方的緩存文件,導致緩存不匹配。此時,先關閉 tracker 和 storage 服務,刪除 tracker.conf 和 storage.conf 中指定的 base_path 目錄下的 data 文件,再重啓服務即可。
注意:如果刪除了 FastDHT 的 base_path 目錄下的文件,切片集信息將全部丟失。

Q:分佈式切圖時,控制檯爲什麼會提示“No buffer space available (maximum connections reached?):connect”?

A:分佈式切圖過程中,向 FastDFS 存儲上傳切片時,佔用的端口數增多,可能會達到本地操作系統的端口數的上限,所以出現上述問題。可通過如下方式規避:
•Windows 系統

運行 “regedit.exe”,打開註冊表,找到 “HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesTcpipParameters”位置,添加“TcpTimedWaitDelay”,類型爲 DWORD,值爲30;添加“MaxUserPort”,類型爲 DWORD,值爲20000(調大系統可用端口數)。
•Linux 系統

運行 “vi /etc/sysctl.conf”,編輯文件,加入以下內容:
net.ipv4.tcp_syncookies  = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle =  1
net.ipv4.tcp_fin_timeout = 30

然後執行“/sbin/sysctl -p”讓參數生效即可。

Q:安裝 FastDFS 和 FastDHT 後,爲什麼在 /usr/local/bin 目錄下找不到 fdfs_trackerd、fdfs_storaged 和 fdhtd 這3個命令?

A:出現此問題的原因,是由於系統的 libevent 版本太低導致 FastDFS 編譯失敗。請檢查 libevent 版本是否爲1.4.x 或以上。

Q:啓動 fastDHT 服務的時候,提示“段錯誤”,是什麼原因?

A:這是因爲 fdhtd 需要的依賴 libdb-5.3.so 沒有正確安裝或被指向鏈接。可以使用命令 ldd /usr/local/bin/fdhtd 查看 fdhtd 命令的依賴項,如果顯示的 libdb 依賴不是5.3版本,請首先確認安裝 db 時,是否指定了安裝路徑爲 /usr 目錄。如果是安裝在 /usr 路徑下的,但仍然沒有正確依賴 libdb.5.3.so,則需要手動在 /lib64 目錄下創建 libdb.so 的符號鏈接,指向 BDB 5.3 的動態庫。

Q:FastDFS 和 FastDHT 服務正常,但是添加切圖任務失敗,查看 debug 版的 iserver.log,日誌顯示“向 FastDFS 的 storageServer 上傳數據 tileset_names 時,發生 MyException ,異常信息是:getStoreStorage fail, errno code: 28”,這是什麼原因?

A:錯誤代碼28表示 No space left on device。FastDFS 可在 tracker.conf 配置文件中設置 reserved_storage_sapce 參數,即 storage 的預留存儲空間大小,默認爲10%。如果預留空間小於該設置值,將出現28錯誤。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章