FastDFS常见配置和安装错误问题

  • Post author:
  • Post category:其他


FastDFS常见配置和安装错误问题

发表于

2017 年 01 月 04 日



ken

Q:ERROR – file: connection_pool.c, line: 130, connect to 192.168.0.8:23000 fail, errno: 113, error info: No route to host

A:执行过程中可能出现防火墙阻止导致,检测打开端口或关闭防火墙。

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

2016/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.0.123, server: localhost, request: “GET /favicon.ico HTTP/1.1”, host: “192.168.0.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: group2, row count:1 > server count:0

A:修改data里面的 storage_sync_timestamp.dat,把group2的信息删掉,然后重启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.0.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/wKhdglhsVC6AFKf9AAKZMwsher8772.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.0.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错误。