FastDFS 常见问题
Posted gaoshengchao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FastDFS 常见问题相关的知识,希望对你有一定的参考价值。
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:[email protected]:~/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错误。
参考地址:http://blog.rekfan.com/articles/442.html
以上是关于FastDFS 常见问题的主要内容,如果未能解决你的问题,请参考以下文章