Chinaunix

标题: FastDFS FAQ (欢迎反馈,我将及时整理) [打印本页]

作者: happy_fish100    时间: 2010-11-22 21:28
标题: FastDFS FAQ (欢迎反馈,我将及时整理)
本帖最后由 happy_fish100 于 2022-03-29 17:26 编辑

定位问题首先要看日志文件。出现问题时,先检查返回的错误号和错误信息。然后查看服务器端日志,相信可以定位到问题所在。

1. FastDFS适用的场景以及不适用的场景?
FastDFS是为互联网应用量身定做的一套分布式文件存储系统,非常适合用来存储用户图片、视频、文档等文件。对于互联网应用,和其他分布式文件系统相比,优势非常明显。具体情况大家可以看相关的介绍文档,包括FastDFS介绍PPT等等。
出于简洁考虑,FastDFS没有对文件做分块存储,因此不太适合分布式计算场景。

2. FastDFS需要的编译和运行环境是怎样的?
FastDFS Server仅支持unix系统,在Linux和FreeBSD测试通过。在Solaris系统下网络通信方面有些问题。
编译需要的其他库文件有pthread,V5.0以前的版本依赖libevent;V5.0以后,不再依赖libevent。
v5.04开始依赖libfastcommon,github地址:https://github.com/happyfish100/libfastcommon
v5版本从v5.05开始才是稳定版本,请使用v5版本的同学尽快升级到v5.05或更新的版本,建议升级到v5.08。
pthread使用系统自带的即可。
对libevent的版本要求为1.4.x,建议使用最新的stable版本,如1.4.14b。
注意,千万不要使用libevent 2.0非stable版本。
测试了一下,libevent 2.0.10是可以正常工作的。
在64位系统下,可能需要自己在/usr/lib64下创建libevent.so的符号链接。比如:
ln -s /usr/lib/libevent.so /usr/lib64/libevent.so
在ubuntu 11及后续版本,可能会出现找不到动态库pthread库,解决方法参见:http://bbs.chinaunix.net/thread-2324388-1-2.html
若出现libfastcommon版本不匹配问题,请执行如下命令:/bin/rm -rf /usr/local/lib/libfastcommon.so /usr/local/include/fastcommon

3. 有人在生产环境中使用FastDFS吗?
答案是肯定的。据我所知,截止2012年底至少有25家公司在使用FastDFS,其中有好几家是做网盘的公司。
其中存储量最大的一家,集群中存储group数有400个,存储服务器超过800台,存储容量达到6PB,文件数超过1亿,Group持续增长中。。。
以下是使用FastDFS的用户列表:
  某大型网盘(因对方要求对公司名保密,就不提供名字了。有400个group,存储容量达到了6PB,文件数超过1亿)  
  UC (http://www.uc.cn/,存储容量超过10TB)
  支付宝(http://www.alipay.com/
  京东商城(http://www.360buy.com/
  淘淘搜(http://www.taotaosou.com/
  飞信(http://feixin.1008**/
  赶集网(http://www.ganji.com/
  淘米网(http://www.61.com/
  迅雷(http://www.xunlei.com/
  蚂蜂窝(http://www.mafengwo.cn/
  丫丫网(http://www.iyaya.com/
  虹网(http://3g.ahong.com
  5173(http://www.5173.com/
  华夏原创网(http://www.yuanchuang.com/
  华师京城教育云平台(http://www.hsjdy.com.cn/
  视友网(http://www.cuctv.com/
  搜道网(http://www.sodao.com/
  58同城(http://www.58.com/
  商务联盟网(http://www.biz72.com/
  中青网(http://www.youth.cn/
  缤丽网 (http://www.binliy.com/
  飞视云视频(http://www.freeovp.com/
  梦芭莎(http://www.moonbasa.com/
  活动帮(www.eventsboom.com
  51CTO(http://www.51cto.com/
  搜房网(http://www.soufun.com/

4. 启动storage server时,一直处于僵死状态。
A:启动storage server,storage将连接tracker server,如果连不上,将一直重试。直到连接成功,启动才算真正完成。
出现这样情况,请检查连接不上tracker server的原因。
友情提示:从V2.03以后,多tracker server在启动时会做时间上的检测,判断是否需要从别的tracker server同步4个系统文件。
触发时机是第一个storage server连接上tracker server后,并发起join请求。
如果集群中有2台tracker server,而其中一台tracker没有启动,可能会导致storage server一直处于僵死状态。
注:这个问题v5.07解决了。

5. 执行fdfs_test或fdfs_test1上传文件时,服务器返回错误号2
错误号表示没有ACTIVE状态的storage server。可以执行fdfs_monitor查看服务器状态。

6. 如何让server进程退出运行?
直接kill即可让server进程正常退出,可以使用killall命令,例如:
killall fdfs_trackerd
killall fdfs_storaged
也可以使用如下命令:
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf stop
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf stop
千万不要使用-9参数强杀,否则可能会导致binlog数据丢失的问题。

7. 如何重启server进程?
直接使用:
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

8. 跨运营商通信异常问题
比如电信和网通机房相互通信,可能会存在异常,有两种表现:
  1)不能建立连接,这个比较直接,肯定是网络连接的问题
  2)可以正常建立连接,但接收和发送数据失败,这个问题比较隐蔽,正常网络环境下,不应该出现此类问题。
       还有人碰到过从一个方向建立连接可以正常通信,但从另外一个方向就不能正常通信的情况。
解决办法:
  尝试将服务端口改小,建议将端口修改为1024以下。比如将storage服务端口由23000修改为873等,也可以试试修改为8080
  如果问题还不能解决,请联系你的网络(机房)服务商。

9. fdfs_test和fdfs_test1是做什么用的?
   这两个是FastDFS自带的测试程序,会对一个文件上传两次,分别作为主文件和从文件。返回的文件ID也是两个。
   并且会上传文件附加属性,storage server上会生成4个文件。
   这两个程序仅用于测试目的,请不要用作实际用途。
   V2.05提供了比较正式的三个小工具:
      上传文件:/usr/bin/fdfs_upload_file  <config_file> <local_filename>
      下载文件:/usr/bin/fdfs_download_file <config_file> <file_id> [local_filename]
       删除文件:/usr/bin/fdfs_delete_file <config_file> <file_id>

10. 什么是主从文件?
主从文件是指文件ID有关联的文件,一个主文件可以对应多个从文件。
    主文件ID = 主文件名 + 主文件扩展名
    从文件ID = 主文件名 + 从文件后缀名 + 从文件扩展名
使用主从文件的一个典型例子:以图片为例,主文件为原始图片,从文件为该图片的一张或多张缩略图。
FastDFS中的主从文件只是在文件ID上有联系。FastDFS server端没有记录主从文件对应关系,因此删除主文件,FastDFS不会自动删除从文件。
删除主文件后,从文件的级联删除,需要由应用端来实现。
主文件及其从文件均存放到同一个group中。
主从文件的生成顺序:
  1)先上传主文件(如原文件),得到主文件ID
  2)然后上传从文件(如缩略图),指定主文件ID和从文件后缀名(当然还可以同时指定从文件扩展名),得到从文件ID。


11. 如何删除无效的storage server?
可以使用fdfs_monitor来删除。命令行如下:
/usr/bin/fdfs_monitor <config_filename> delete <group_name> <storage_id>
例如:
/usr/bin/fdfs_monitor /etc/fdfs/client.conf delete group1 192.168.0.100
注意:如果被删除的storage server的状态是ACTIVE,也就是该storage server还在线上服务的情况下,是无法删除掉的。
         storage_id参数:如果使用默认的ip方式,填写storage server IP地址,否则使用对应的server id。

12. FastDFS扩展模块升级到V1.06及以上版本的注意事项
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中的相应配置完全一致,否则将导致文件不能正确下载!

13. nginx和apache扩展模块与FastDFS server版本对应关系
    扩展模块1.05:  针对FastDFs server v2.x,要求server版本大于等于v2.09
    扩展模块1.07及以上版本:  针对FastDFs server v3.x
    具体的版本匹配情况,参阅扩展模块源码下的HISTORY文件

14. FastDFS有QQ技术交流群吗?
   有的。群号:212801927,欢迎大家加入交流。

15. 上传文件失败,返回错误码28,这是怎么回事?
  返回错误码28,表示磁盘空间不足。注意FastDFS中有预留空间的概念,在tracker.conf中设置,配置项为:reserved_storage_space,缺省值为4GB,即预留4GB的空间。
  请酌情设置reserved_storage_space这个参数,比如可以设置为磁盘总空间的20%左右。

16. fdfs_trackerd或者fdfs_storaged的日志中出现:malloc task buff failed字样的错误,这是怎么回事?
  出现此类信息表示已经达到最大连接数。server端支持的最大连接数可以通过max_connections这个参数来设置。
  出现这样的问题,需要排查一下是否客户端使用不当导致的,比如客户端没有及时关闭无用的连接。

17. FastDFS的文件ID中可以反解出哪些字段?
文件ID中除了包含group name和存储路径外,文件名中可以反解出如下几个字段:
  1)文件创建时间(unix时间戳,32位整数)
  2)文件大小
  3)上传到的源storage server IP地址(32位整数)
  4)文件crc32校验码
  5)随机数(这个字段用来避免文件重名)

18. 为什么生成的token验证无法通过?
  出现这样的问题,请进行如下两项检查:
  1)确认调用token生成函数,传递的文件ID中没有包含group name。传递的文件ID格式形如:M00/00/1B/wKgnVE84utyOG9hEAAATz5-S0SI99.java
  2)确认服务器时间基本是一致的,注意服务器时间不能相差太多,不要相差到分钟级别。

19. 最新程序包的下载地址是什么?
   直接在github下载最新tag即可。github地址:https://github.com/happyfish100/fastdfs

20. FastDFS支持断点续传吗?
   可以支持。先上传appender类型的文件,然后使用apend函数。
   如果要实现多线程并发上传同一个大文件,可以先上传一个内容为空的appender类型文件,然后调用 truncate设置文件大小,在多线程中调用 modify上传文件内容。

21. 客户端连接为什么被踢掉了?
tracker server或storage server出现类似错误:
[2017-08-21 15:47:24] ERROR - file: tracker_nio.c, line: 213, client ip: 192.168.1.168, recv timeout, recv offset: 0, expect length: 0

表示客户端和sever建立连接后没有发送任何请求,idle时间超过network timeout该连接就会被踢掉。




作者: happy_fish100    时间: 2011-01-28 09:58
回复 1# happy_fish100

补充一条:
FastDFS适用的场景以及不适用的场景?
A:FastDFS是为互联网应用量身定做的一套分布式文件存储系统,非常适合用来存储用户图片、视频、文档等文件。
      出于简洁考虑,FastDFS没有对文件做分块存储,因此不太适合分布式计算场景。
作者: shaneyuan    时间: 2011-01-30 09:51
{:2_165:}哇嘎嘎,,,好东东啊。
作者: xiaochu    时间: 2011-05-06 18:47
请问如何指定libevent的目录?
我的libevent不是安装在/usr/下面的。
难带非要重装?
谢谢
作者: happy_fish100    时间: 2011-05-06 21:26
回复 4# xiaochu

可以重新安装。也可以在 /usr/lib(32位系统)或者/usr/lib64(64位系统)下创建符号链接。
作者: uestzengting    时间: 2011-05-27 12:50
可不可以用cygwin在windows下安装服务端试用
作者: millken    时间: 2011-08-11 17:35
文件IO还是很高啊,可能架构需要调整哦。
在大量访问的前提下,IO是影响性能的关键。
作者: 272171075    时间: 2011-08-29 11:01
请问下 FastDFS 目前有python客户端吗
作者: happy_fish100    时间: 2011-11-12 19:06
回复 8# 272171075

我不会python,所以没有提供python客户端API。
希望会python的同仁提供一个吧!
作者: happy_fish100    时间: 2011-11-12 19:07
新补充了3条FAQ,参见第10条至第12条。
作者: happy_fish100    时间: 2011-11-21 22:13
补充一条磁盘空间不足方面的问题解答。
作者: feelgoods    时间: 2011-12-25 09:03
本帖最后由 feelgoods 于 2011-12-25 09:25 编辑

为什么我在ubuntu上装libevent1.4.14b装不上。
提示:cannot create regular file '/usr/bin/event_rpcgen.py'ermission denied

fish老大帮忙解决一下,急急急急啊!!!!
作者: happy_fish100    时间: 2011-12-25 20:55
权限不足的原因吧。
你sudo或者用root账号执行安装即可!
作者: stormcc    时间: 2012-01-04 10:28
感谢作者的细心整理
作者: yin_xin    时间: 2012-02-21 11:12
本帖最后由 yin_xin 于 2012-02-21 11:12 编辑

回复 1# happy_fish100

您好:
我在编译时遇到Libevent相关的一些问题,看FAQ中有如下说明:

“对libevent的版本要求为1.4.x,建议使用最新的stable版本,如1.4.14b。
注意,千万不要使用libevent 2.0 stable以前的版本。”

有点不解,难道1.4.x不是2.0 stable以前的版本吗?又说千万不要用2.0以前的版本,那到底1.4是能用还是不能用呢?还是说难道1.4才是2.0以后的版本?
请指点迷津啊~多谢了!




   
作者: happy_fish100    时间: 2012-02-21 13:16
回复 15# yin_xin

不要使用v2.0非stable版本。的确没有说清楚,我修改一下FAQ,明确说明一下吧。
作者: yin_xin    时间: 2012-02-21 14:35
回复 16# happy_fish100


    WOW,明白了~非常感谢!
作者: hanxin1987216    时间: 2012-06-25 12:11
删除从文件, 从文件所链接的物理文件没有删除,还占用空间!

如:
fdfs_test /etc/fdfs/client.conf delete group1 M00/19/03/wKgBek_n4ojraObCAAAAUtba7ec303_big.txt

上面的从文件实际链接地址  /home/yuqing/fastdfs/data/6E/11/wKgBek_n4ojjS9ArAAAAUtba7ec736.txt

wKgBek_n4ojraObCAAAAUtba7ec303_big.txt -> /home/yuqing/fastdfs/data/6E/11/wKgBek_n4ojjS9ArAAAAUtba7ec736.txt


删除成功后发现/home/yuqing/fastdfs/data/6E/11/wKgBek_n4ojjS9ArAAAAUtba7ec736.txt 这个原始文件依然存在!


   
作者: chcearth    时间: 2012-06-27 10:38
hi fish大大
这几天在研究fdfs啊~~想部署一个带nginx的fdfs,公司的主机都是带多块硬盘的,所以我在主机上部署了多个group,但是mod_fastdfs.conf 里面只能配置一个group。
我能不能再nginx的里面指定不同的mod_fastdfs.conf配置文件呢?
真心不想起多个nginx。。。
作者: happy_fish100    时间: 2012-06-27 15:27
回复 19# chcearth

一台storage server可以管理多块硬盘啊!
一台storage server上只需要启动一个storage server进程尽可!
即一台storage server只属于一个group。
作者: chcearth    时间: 2012-06-28 10:01
回复 20# happy_fish100


    一台storage server只属于一个group。
这就是问题啦,我想起多个组呢?貌似fish大大不建议在一台主机上起多个storage server,这是为什么呢?我只要设置不同的端口就好了吧。

还有一个问题,我怎么设置能在上传文件的时候能指定上传到不同的group呢?
如果有两个group:分别是group1和group2。在tracker.conf应该怎么配置呢?

store_lookup=1
store_group=group1
store_group=group2    这样?
作者: happy_fish100    时间: 2012-06-28 10:06
回复 21# chcearth

这是指定上传到一个固定的group。
tracker.conf中只能设置上传到的一个group。

API中可以直接指定上传到的group!
作者: chcearth    时间: 2012-06-28 14:12
回复 22# happy_fish100
好的~~~搞定~~~谢啦!

   
作者: orclover    时间: 2012-07-20 21:32
请问fastdfs开启小文件合并功能后,变成了一个黑盒,有没有相应的扫库工具?谢谢
作者: happy_fish100    时间: 2012-08-21 22:39
回复 24# orclover

目前还没有,后续可以考虑提供一个扫库工具。
作者: gm100861    时间: 2012-09-11 17:27
怎么根据文件的ID获取到文件名?binlog在哪。
作者: gm100861    时间: 2012-09-11 17:44
我现在已经有很多很多文件了,将近500W的文件数,该怎么使用FastDFS来管事呢,难道需要再重新使用fdfs_upload_file重传一遍吗?重传过后的文件名怎么办?因为这些文件名都是在数据库里有的,重传的话,文件名就变掉了。
作者: happy_fish100    时间: 2012-09-11 19:51
回复 27# gm100861

可以使用my-fastfds-client,这个client library支持应用端指定文件ID。
作者: gm100861    时间: 2012-09-12 12:05
回复 28# happy_fish100


可能是我太菜了, 这个文件系统真的很不错,自己做实验可以感觉出来,但是应用该怎么调用呢?建议作者能出一个说明。以一个应用实例为主,说一下,到底怎么用FastDFS来管理。比如一个视频网站,现在已经有100W的视频文件,我该怎么通过FastDFS来管理呢?


   
作者: 血滴子1    时间: 2012-09-12 16:53
好东东啊。
作者: xtso520ok    时间: 2012-09-12 20:41
迟来受教,谢谢楼上
作者: linux_shell    时间: 2012-10-31 16:54
回复 27# gm100861


    哥们最后怎么搞定的,分享下哈
作者: wgm85    时间: 2012-11-02 17:36
余大:请问ngx_fastdfs_module是否有缓存机制?
现有情况配置情况如下:
软件配置情况:
FastDFS_v4.00
nginx-1.2.4
fastdfs-nginx-module_v1.10
硬件设备
tracker server 192.168.1.104
Storage Server1 192.168.1.104 group1
storage Server2 192.168.1.105 gropu2
配置情况:
tracker storage 等配置都正常使用fdfs_upload_file上传和fdfs_download_file下载
两台Storage 下的nginx.conf相同配置:
        location /group1/M00 {
            alias /opt/fdfs_storage/data;
            ngx_fastdfs_module;
        }
        location /group2/M00 {
            alias /opt/fdfs_storage/data;
            ngx_fastdfs_module;
        }
用fdfs_upload_file上传了两个文件:
group1/M00/00/00/wKgByFCTLAiAZnSyAAAmnVGv1x8479.log
group2/M00/00/00/wKgBaVCTLESAEomGAAAAAAAAAAA720.log
WEB 测试:
http://192.168.1.104/group1/M00/ ... yAAAmnVGv1x8479.log     OK
http://192.168.1.104/group2/M00/ ... GAAAAAAAAAAA720.log  经过跳转转成
http://192.168.1.105/group2/M00/ ... 720.log??redirect=1 OK
在此完美实际了分布式应用访问.

问题来了:
因为修改了storage server 2的IP地址192.168.1.105-->192.168.1.120.
为了防止问题安全起见,重启了Storage1,Storage2,nginx1,nginx2,tracker
WEB测试:
http://192.168.1.104/group1/M00/ ... yAAAmnVGv1x8479.log     OK
http://192.168.1.104/group2/M00/ ... GAAAAAAAAAAA720.log  经过跳转转成
http://192.168.1.105/group2/M00/ ... 720.log??redirect=1 出错
192.168.1.105换成了192.168.1.120,但跳转时还是跳到原105这个不存在的IP地址上.
请问怎么解决阿,是BUG吗?

作者: happy_fish100    时间: 2012-11-02 21:23
回复 33# wgm85

FastDFS的机制就是如此。文件ID中可以反解出源storage ip地址。
上传文件同步延迟最长时间,可以配置的,缺省为一天。
因此你一天后再访问,就会返回404。
作者: 33611720    时间: 2012-11-05 22:23
楼上的问题,是不是可以这样理解,一个文件以前上传到了IP105的服务器,这台服务器的IP地址就不能修改?
因为文件名和IP地址绑定了?
作者: happy_fish100    时间: 2012-11-08 13:06
回复 35# 33611720

当然可以修改。但修改IP可能会存在隐患,因此不要轻易更改stroage server IP地址。
作者: zhanghua1199    时间: 2012-12-03 14:53


java.io.IOException: recv package size -1 != 10
         at org.csource.fastdfs.ProtoCommon.recvHeader(ProtoCommon.java:206)

这个,能不能给个答复。。。。。。。
作者: fei    时间: 2013-01-25 21:02
鱼大把这个加进去吧。刚看到
FastDFS如何做整体迁移?如换机房更换IP?

FastDFS集群整体迁移的问题。
如果新旧IP地址一一对应,而且是一样的,那非常简单,直接将data目录拷贝过去即可。

IP不一样的话,会比较麻烦一些。
如果使用了V4的自定义server ID特性,那么比较容易,直接将tracker上的IP和ID映射文件storage_ids.conf修改好即可。

如果是用IP地址作为服务器标识,那么需要修改tracker和storage的data目录下的几个数据文件,将旧IP调整为新IP。
注意storage的data目录下有一个.打头的隐藏文件也需要修改。
另外,需要将后缀为mark的IP地址和端口命名的同步位置记录文件名改名。
文件全部调整完成后才能启动集群服务。

tracker server上需要调整的文件列表:
data/storage_groups_new.dat
data/storage_servers_new.dat
data/storage_sync_timestamp.dat

storage server需要调整的文件列表:
data/.data_init_flag
data/sync/${ip_addr}_${port}.mark:此类文件,需要将文件名中的IP地址调整过来。
作者: craaazy123    时间: 2013-03-15 22:18
fastdb好像只适合小文件,那如果存储的文件有大有小怎么弄好呢?
作者: 豆腐兵    时间: 2013-03-25 16:14
fish大大, 你好
我在这边的环境中安装fastdfs均有报错(centos5.4和centos6.2, 都为64位), 版本为4.05和4.06. 报错问题都一样, 下面只贴出报错的信息:

./make.sh 时报错:
(前面正常部分省略....)
在包含自 tracker_service.c:34 的文件中:
tracker_nio.h:17:19: 错误:event.h:没有那个文件或目录
In file included from tracker_nio.h:18,
                 from tracker_service.c:34:
fast_task_queue.h:29: 错误:字段 ‘ev_read’ 的类型不完全
fast_task_queue.h:30: 错误:字段 ‘ev_write’ 的类型不完全
tracker_service.c: In function ‘tracker_service_init’:
tracker_service.c:99: 警告:隐式声明函数 ‘event_base_new’
tracker_service.c:99: 警告:赋值时将整数赋给指针,未作类型转换
tracker_service.c: In function ‘work_thread_entrance’:
tracker_service.c:253: 错误:‘ev_notify’ 的存储大小未知
tracker_service.c:258: 警告:隐式声明函数 ‘event_set’
tracker_service.c:258: 错误:‘EV_READ’ 未声明 (在此函数内第一次使用)
tracker_service.c:258: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
tracker_service.c:258: 错误:所在的函数内只报告一次。)
tracker_service.c:258: 错误:‘EV_PERSIST’ 未声明 (在此函数内第一次使用)
tracker_service.c:260: 警告:隐式声明函数 ‘event_base_set’
tracker_service.c:266: 警告:隐式声明函数 ‘event_add’
tracker_service.c:275: 警告:隐式声明函数 ‘event_base_loop’
tracker_service.c:279: 警告:隐式声明函数 ‘event_base_free’
tracker_service.c:253: 警告:未使用的变量 ‘ev_notify’
make: *** [tracker_service.o] 错误 1
(中间正常部分省略....)
在包含自 ../tracker/fast_task_queue.c:6 的文件中:
../tracker/fast_task_queue.h:18:19: 错误:event.h:没有那个文件或目录
In file included from ../tracker/fast_task_queue.c:6:
../tracker/fast_task_queue.h:29: 错误:字段 ‘ev_read’ 的类型不完全
../tracker/fast_task_queue.h:30: 错误:字段 ‘ev_write’ 的类型不完全
make: *** [../tracker/fast_task_queue.o] 错误 1
(后面正常部分省略....)
作者: happy_fish100    时间: 2013-03-26 09:17
回复 40# 豆腐兵

明显是没有安装libevent库。
作者: 豆腐兵    时间: 2013-03-29 11:53
回复 41# happy_fish100

感谢大神回复,容许我罗嗦一句:)
我看介绍说libevent用于内置http服务的,但后期的fastdfs已经取消了这个功能转而使用nginx或apache的模块了吧?
或者意思是说,无论哪个版本,无论是否启用WITH_HTTP,都需要安装libevent?
作者: happy_fish100    时间: 2013-03-29 13:26
回复 42# 豆腐兵

恩, 是的。FastDFS依赖libevent库。
作者: ae305    时间: 2013-04-04 21:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: xiaochuanjiejie    时间: 2013-05-07 10:32
回复 1# happy_fish100


    centos 6.2安装完后,nginx连接配置文件需更改以下:
/etc/fdfs/mod_fastdfs.conf中的url_have_group_name项为true,否则会使用fdfs_test上传测试文件而后进行测试时,会报400错误。
作者: pcdevelop    时间: 2013-05-09 16:21
fish大大,问个问题啊,fastdfs适合存储的文件大小有限制么? 比如超过某个阈值后,就会出现性能问题?
作者: tgnan    时间: 2013-05-11 11:29
本帖最后由 tgnan 于 2013-05-12 16:40 编辑

回复 40# 豆腐兵


缺失部分开发组件吧。。
运行以下命令试试。。。
yum install -y libevent-devel pcre-devel zlib-devel


   
作者: tgnan    时间: 2013-05-11 11:31
回复 29# gm100861


好啊,好啊,
同问下,
可有FastDFS的开发文档,
如基于Java的和基于C#的。。


   
作者: tgnan    时间: 2013-05-12 16:39
回复 1# happy_fish100


请问最新版本的4.06也没有修正问题【4. 启动storage server时,一直处于僵死状态。】的内容么?
我这边当前的版本是3.11,内测中。


   
作者: spring_trees    时间: 2013-06-04 09:45

1.现在fastdfs你们都用哪个版本,哪个版本好用呢?
2.同一group下机器数据一样,还需要单独备份不呢?备份直接备份data目录就可以吗?
3.低版本升级至新版本好迁移不呢?数据文件怎么办呢?安装完成以后,直接复制过去替换吗?
4.只存储静态图片,有必要合并trunk吗?
5.能在服务器上查询已经上传所有文件文件名吗?
求大神们回复
作者: jiaxinhuayuan    时间: 2013-06-12 23:49
回复 1# happy_fish100


    版主好厉害!膜拜
作者: wuhanchunqiu    时间: 2013-07-02 16:00
fish大大,有没有FastDFS的详细设计文档,FastDFS中的函数功能作出说明,我想深入的通读代码,但是缺乏指引,不知道如何下手
作者: warren0915    时间: 2013-07-14 14:47

ubuntu12.04服务器版安装好fastdfs后配置了内置的http服务后
即修改了make.sh文件,
#WITH_HTTPD=1
修改成
WITH_HTTPD=1

tracker和Storage的服务都起来后,
netstat -l 显示:

root@ubuntu:/etc# netstat -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 *:22122                 *:*                     LISTEN     
tcp        0      0 *:ssh                   *:*                     LISTEN     
tcp        0      0 *:23000                 *:*                     LISTEN     
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     
udp        0      0 *:bootpc                *:*                                
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     SEQPACKET  LISTENING     6927     /run/udev/control
unix  2      [ ACC ]     STREAM     LISTENING     6749     @/com/ubuntu/upstart
unix  2      [ ACC ]     STREAM     LISTENING     7084     /var/run/dbus/system_bus_socket


怎么监听的端口没有http服务的8090(8090是我配置的http的端口)?
作者: 豆腐兵    时间: 2013-09-05 09:51
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.6/site-packages/fdfs_client/client.py", line 83, in upload_by_filename
store_serv = tc.tracker_query_storage_stor_without_group()
File "/usr/lib64/python2.6/site-packages/fdfs_client/tracker_client.py", line 382, in tracker_query_storage_stor_without_group
raise DataError('[-] Error: %d, %s' % (th.status, os.strerror(th.status)))
fdfs_client.exceptions.DataError: [-] Error: 2, No such file or directory

在使用python api中报了上面的错误. 我使用了两台机器, 跑了两个tracker进程, 一个storage进程.
上面的错误是从客户端抛出的, 这个问题是很奇怪的: 同一个上传文件, 同一个fdfs架构, 出现了好几次这种错误, 同时用fdfs提供的系统命令上传没有问题, 重启python命令行再上传一次又好了. 难道是我本地环境的问题?
这是第一个问题


第二个问题是我使用python api时, 故意停止了一个tracker服务(client.conf中添加了两个tracker server)
>>> upload_dict = client.upload_by_filename(upload_files_log)
[-] Error: 111 connect to 192.168.100.123:22122. Connection refused.
[-] Error: 111 connect to 192.168.100.123:22122. Connection refused.
[-] Error: 111 connect to 192.168.100.123:22122. Connection refused.
>>> upload_dict = client.upload_by_filename(upload_files_log)
>>> print upload_dict
{'Status': 'Upload successed.', 'Storage IP': '192.168.100.124', 'Remote file_id': 'group1/M00/00/00/EwKuxVIn4DSAWbTWAAlmypilrXo314.log', 'Group name': 'group1', 'Local file name': '/www/fastdfs/upload_files.log', 'Uploaded size': '601.00KB'}
我以为tracker是会完全透明, 只要还存在一台可用的tracker server就不会返回任何错误, 其它api使用也会出现这种情况吗?
另外连接顺序好像也就是client.conf中tracker server的信息从上往下?
作者: 豆腐兵    时间: 2013-09-05 09:56
本帖最后由 豆腐兵 于 2013-09-05 09:57 编辑
豆腐兵 发表于 2013-09-05 09:51
Traceback (most recent call last):
File "", line 1, in
File "/usr/lib64/python2.6/site-packages/f ...


我又试了两遍, 发现情况有点意思~
上面的是第一遍出错的情况, 下面是第二遍的情况:
>>> upload_dict = client.upload_by_filename(upload_files_log)
[-] Error: 111 connect to 192.168.100.123:22122. Connection refused.
>>> upload_dict = client.upload_by_filename(upload_files_log)
看错误提示, 第二次只试了一次就放弃了?
第三次更有意思, 直接上传成功了.

请问有对这方面做相关机制?
作者: h3006884354    时间: 2013-09-05 13:06
回复 8# 272171075


    多搞几台storage啊!
作者: ruochen    时间: 2013-09-11 13:12
回复 1# happy_fish100


    需要安装libevent-devel,否则报找不到event.h
作者: tgnan    时间: 2013-10-23 10:03
xiaochuanjiejie 发表于 2013-05-07 10:32
回复 1# happy_fish100



这个貌似是设计问题吧。按说可以设置true或者false,那就没有必要一定要设置成true,我测试过很多遍,该成false是不行的。
fastdfs版本为3.11、
作者: tgnan    时间: 2013-10-23 10:06
豆腐兵 发表于 2013-03-25 16:14
fish大大, 你好
我在这边的环境中安装fastdfs均有报错(centos5.4和centos6.2, 都为64位), 版本为4.05和4.0 ...




安装libevent组件。
作者: alwaysgo    时间: 2013-10-28 10:55
提示: 作者被禁止或删除 内容自动屏蔽
作者: kevin_chinaunix    时间: 2013-11-07 11:27
...good...
作者: adzaoyuan    时间: 2013-12-01 22:57
4.0.6版本,client中的配置文件client.conf 中http.server_port端口是否可以不用配置了??
tracker中http服务根本就没起~所以http服务端口号配置成啥样应该就没关系了吧
作者: happy_fish100    时间: 2013-12-02 11:13
恩,是的。不用理会这个配置项
作者: qaz104104    时间: 2013-12-10 11:33
我部署好了fastdfs,通过命令行上传下载都成功,但是通过java api调用上传就报错如下:
java.version=1.6.0_10-rc2
network_timeout=20000ms
charset=ISO8859-1
file length: 14
java.io.IOException: recv cmd: 100 is not correct, expect cmd: 10
        at org.csource.fastdfs.ProtoCommon.recvHeader(ProtoCommon.java:147)
        at org.csource.fastdfs.ProtoCommon.recvPackage(ProtoCommon.java:17
        at org.csource.fastdfs.StorageClient.do_upload_file(StorageClient.java:234)
        at org.csource.fastdfs.StorageClient.upload_file(StorageClient.java:102)
        at org.csource.fastdfs.TestClient.main(TestClient.java:86)

我用的java api应该就是 余大师的 ,请问遇到过这个问题没???
急呀!!!!


另外还有一个问题,就是 fastdfs上传文件能指定id吗?就是说能更新资源文件吗,这时需要保证id一致???
作者: boywamg    时间: 2014-01-22 11:58
hi,从文件名称能超过16位吗,谢谢
作者: cbcfrank    时间: 2014-02-18 08:38
刚刚学习,顺便请教下,关于fastdfs的监控有否现成系统,还是需要自己去开发。
另外,关于不同用户权限这块,貌似没有看到介绍,不知道是否有额外模块集成,还是仍然需要自己去开发。
作者: myheartcalmdown    时间: 2014-02-26 17:24
本帖最后由 myheartcalmdown 于 2014-02-26 17:25 编辑

学习了一段时间的fastdfs,自己也搭建成功fastdfs+fastdht
现在有几个问题请教下鱼大
1.fastdfs本身没有对文件大小进行限制,适合图片,文档和视频。我想问一下文件的大小是否有限定,比如在哪个范围内性能会好点。
超出了哪个范围,性能会下降。
2.关于group的storage的同步问题,目前知道的是采用的异步,基于bin-log主动通知的方式。
因为要考虑到 机房容灾的问题,所以我在group1,部署了三台storage A B C,其中 A B在同一机房 ,C在另一机房。
想问一下,如果跨机房同步数据出问题后,会不会有重传机制。这个机制采用什么原理。

ps:因为刚学了fastdfs,问的问题可能会出现偏差。不过仍然期望得到回复下。谢谢



作者: IT_monkey    时间: 2014-03-20 11:11
回复 1# happy_fish100

我一致是kill -9 停服务,看了是太暴力了


   
作者: qq307191022    时间: 2014-05-20 13:53
这个是主nginx的配置文件:
两个server 对应两个storage
每个storage 对应一个nginx
location /group1/M00 {
           # internal;
            proxy_next_upstream http_502 http_504 error timeout i            nvalid_header;
            proxy_pass http://fdfs_group1;
            expires 30d;
        }
    upstream fdfs_group1 {
        server 192.168.248.91:8990 weight=1 max_fails=2 fail_timeout=30s;
        server 192.168.248.90:8993 weight=1 max_fails=2 fail_timeout=30s;

}
通过nginx 访问storage 怎么防止没同步完全的storage不能被访问

traker内部有这种机制怎么设置能起作用?
作者: liweibiancheng    时间: 2014-06-11 13:47
HI,鱼大,如果我的文件服务器需要迁移,改了IP,应该怎么做呢?看论坛上有人说如果使用了V4的自定义server ID特性,那么比较容易,直接将tracker上的IP和ID映射文件storage_ids.conf修改好即可。 请问这个server ID特性是什么?又怎么在部署的时候直接使用server id而不是IP这些呢
作者: mangc    时间: 2014-06-20 23:54
今天启动storage时遇到这样的问题,下面是启动时的storaged.log 日志内容:

[2014-06-20 22:09:10] INFO - FastDFS v4.05, base_path=/fddata/pan/fastdfs, store_path_count=1, subdir_count_per_path=32, group_name=group6, run_by_group=, run_by_user=, connect_timeout=30s, network_timeout=60s, port=23000, bind_addr=, client_bind=1, max_connections=256, work_threads=4, disk_rw_separated=1, disk_reader_threads=1, disk_writer_threads=1, buff_size=256KB, heart_beat_interval=30s, stat_report_interval=60s, tracker_server_count=2, sync_wait_msec=50ms, sync_interval=0ms, sync_start_time=00:00, sync_end_time=23:59, write_mark_file_freq=500, allow_ip_count=-1, file_distribute_path_mode=0, file_distribute_rotate_count=100, fsync_after_written_bytes=0, sync_log_buff_interval=10s, sync_binlog_buff_interval=10s, sync_stat_file_interval=300s, thread_stack_size=512 KB, upload_priority=10, if_alias_prefix=, check_file_duplicate=0, file_signature_method=hash, FDHT group count=0, FDHT server count=0, FDHT key_namespace=, FDHT keep_alive=0, HTTP server port=8888, domain name=, use_access_log=0, rotate_access_log=0, access_log_rotate_time=00:00, rotate_error_log=0, error_log_rotate_time=00:00, rotate_access_log_size=0, rotate_error_log_size=0, file_sync_skip_invalid_record=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s
[2014-06-20 22:09:10] INFO - file: storage_param_getter.c, line: 187, use_storage_id=0, id_type_in_filename=ip, storage_ip_changed_auto_adjust=1, store_path=0, reserved_storage_space=10.00%, use_trunk_file=1, slot_min_size=256, slot_max_size=16 MB, trunk_file_size=64 MB, trunk_create_file_advance=0, trunk_create_file_time_base=02:00, trunk_create_file_interval=86400, trunk_create_file_space_threshold=20 GB, trunk_init_check_occupying=0, trunk_init_reload_from_binlog=0, store_slave_file_use_link=0
[2014-06-20 22:09:10] INFO - file: storage_func.c, line: 174, tracker_client_ip: 192.168.124.72, my_server_id_str: 192.168.124.72, g_server_id_in_filename: 1216129216
[2014-06-20 22:09:10] INFO - local_host_ip_count: 2,  127.0.0.1  192.168.124.72
[2014-06-20 22:09:10] INFO - file: tracker_client_thread.c, line: 308, successfully connect to tracker server 192.168.147.123:22122, as a tracker client, my ip is 192.168.124.72
[2014-06-20 22:09:10] INFO - file: tracker_client_thread.c, line: 1124, tracker server 192.168.147.123:22122, set tracker leader: 192.168.147.123:22122
[2014-06-20 22:09:10] INFO - file: tracker_client_thread.c, line: 1185, I am the the trunk server 192.168.124.72:23000
[2014-06-20 22:09:10] ERROR - file: trunk_mgr/trunk_sync.c, line: 837, read data from binlog file "/fddata/pan/fastdfs/data/trunk/binlog" fail, file offset: 27429432, read item count: 1 < 8
[2014-06-20 22:09:10] ERROR - file: trunk_mgr/trunk_sync.c, line: 779, read from binlog file "/fddata/pan/fastdfs/data/trunk/binlog" fail, file offset: 27429433, line buffer size: 128 is too small! <= line length: 550
[2014-06-20 22:09:10] ERROR - file: trunk_mgr/trunk_mem.c, line: 777, trunk load fail, errno: 28, error info: No space left on device
[2014-06-20 22:09:11] INFO - file: tracker_client_thread.c, line: 308, successfully connect to tracker server 192.168.147.122:22122, as a tracker client, my ip is 192.168.124.72
[2014-06-20 22:09:11] INFO - file: trunk_mgr/trunk_sync.c, line: 1068, trunk sync thread to storage server 192.168.124.73:23000 started
[2014-06-20 22:09:11] INFO - file: tracker_client_thread.c, line: 308, successfully connect to tracker server 192.168.147.123:22122, as a tracker client, my ip is 192.168.124.72
[2014-06-20 22:09:11] ERROR - file: trunk_mgr/trunk_sync.c, line: 1141, connect to storage server 192.168.124.73:23000 fail, errno: 111, error info: Connection refused
[2014-06-20 22:09:11] INFO - file: tracker_client_thread.c, line: 1124, tracker server 192.168.147.123:22122, set tracker leader: 192.168.147.123:22122
[2014-06-20 22:09:11] WARNING - file: tracker_client_thread.c, line: 1179, I am already the trunk server 192.168.124.72:23000, may be the tracker server restart
[2014-06-20 22:09:17] ERROR - file: trunk_mgr/trunk_mem.c, line: 1378, I am not inited!
[2014-06-20 22:09:17] ERROR - file: storage_nio.c, line: 314, client ip: 127.0.0.1, pkg length: -4431937177564820894 < 0
[2014-06-20 22:09:22] ERROR - file: trunk_mgr/trunk_mem.c, line: 1378, I am not inited!
[2014-06-20 22:09:31] ERROR - file: trunk_mgr/trunk_mem.c, line: 1378, I am not inited!
[2014-06-20 22:09:31] ERROR - file: trunk_mgr/trunk_mem.c, line: 1378, I am not inited!

期初看到 trunk load fail, errno: 28, error info: No space left on device 以为是磁盘空间的问题
分别用df查看了磁盘空间和inode节点使用情况,都是正常的,没有到不足的情况

后来又查看了下日志中报错读取失败的 binlog文件(UTF8打开),发现和其他正常的storage server不同,除了有一些记录时间,文件等信息的内容,多出很多乱码的内容,如下

1401804499 D 0 0 22 871 48095760 1051468
1401804501 D 0 0 22 871 49147228 17961636
1401804501 A 0 0 22 871 55574092 11534772
1401804501 A 0 0 22 871 49147228 6426864
1401804501 D 0 0 22 871 49147228 6426864
1401804505 D 0 0 22 869 67107883 981
1401804505 A 0 0 22 869 67107995 869
1401804505 A 0 0 22 869 67107883 112
1401804505 D 0 0 22 869 67107883 112
�mbZn�Ȉ���t�n�v��-���Q�U �屶�\��j�0K7Z3o�Ah���6���e        ���΄S�Z���N��2��J��53��uML⒖�srX���?��Y籶e���IY�1pn8g�8'�sL:���*ʉ�X���CLf����y��_'%�l�ӖRB
�ת:V=V�R69��+%�.QXֺa��Ԉ�Na�?��[�i��K���7�gq?o��5bx���0���w�: c�]��c����U��##~��,�gQ�8}b�m��0��~�zj��hzSv��t8�?X=���4�
��:�K%��7z��6á���+^�}�lb��(��{��i��f��(\�ǣ`,�M�t�������k:�yaXEd�p�.��9�a��cm��

不知道是不是binlog文件损坏导致启动时不能读取的,还是应该通过其他什么思路去进一步定位?

另外,如果是binlog文件损坏了,这个文件能不能重建,因为之前看到的资料说,这个binlog记录的是文件的操作记录,如果删除,组内新增节点会不能同步已有文件

不知道有没有其他人遇到过类似情况。。。

请余大指导

作者: nathanpei    时间: 2014-06-23 17:53
请问版主:FastDFS支持断点续传功能吗?
作者: qqlmq    时间: 2014-06-30 16:41
请问怎么删除一个group ?不是删除group下的storage哦!
作者: qqlmq    时间: 2014-06-30 17:46
请问怎么删除一个group ?不是删除group下的storage哦!
作者: kongdq    时间: 2014-07-03 14:01
我ip 192.168.1.41  安装好后nginx,http://192.168.1.41  正常打开网站 ,但一安装fastdfs nginx扩展后导致网站再也打不开了,nginx重启也成功,不报任何错误,但网站就是再也打不开了
安装fastdfs完全按照INSTALL 说明文件安装
作者: lyojo    时间: 2014-07-16 14:34
Fish大哥,请问我从tracker可以上传,然后再storage上面也可以看到上传的文件,但是在从tracker访问那个文件显示404,请问是什么问题?或者在哪里可以看到日志文件
作者: wojiushilzq    时间: 2014-07-23 18:01
本帖最后由 wojiushilzq 于 2014-07-23 18:08 编辑

我是新手,能给我一个您觉得不错的搭建FastDFS系统的相关教程的帖子地址吗?
我用的是最新的5.01版本
作者: 78400971    时间: 2014-08-02 15:44
fdfs版本5.0.1 启动tracker报错。有谁能提供帮助啊
错误信息如下:
ERROR - file: ../common/process_ctrl.c, line: 189, "/fdfs/tracker" can't be accessed, error info: No such file or directory

作者: doudoufather    时间: 2014-09-01 21:24
FASTDFS采用的什么负载均衡算法?比如选择存储路径和选择上传文件的数据节点时,采用负载均衡模式时,采用啥负载均衡策略?
作者: wangshuaiatwork    时间: 2014-09-02 09:32
余大,我们现在考虑做FastDFS的异地IDC容灾,使用的是trunk文件,目前有两种方案,请帮忙回答一下下面的问题。
1. 一种是写程序定期同步新增的trunk文件和dat文件,但如果trunk文件中产生了小文件的删除和新增,则需要重传trunk块。问下目前有没有配置可以使得旧trunk块中的小文件被删除后,新的文件只在新的trunk中存,不在旧的中存?
2. 另一种是把异地的storage加到同一个组里,依靠FastDFS自身的binlong进行同步。为了使得异地storage完全不参与上传,是否可以利用upload_priority参数实现?另外,如果想实现主机房故障以后的failover,是故障后在异地机房新起一个tracker好还是初期部署的时候就在异地部署一个同等的tracker好?
作者: agathewiky    时间: 2014-09-29 11:45
fastdfs支持文件append,modify,但不支持这样的场景:
文件当前大小为size, 不支持直接去Modify offset>size 的情况
请问这样的限制是出于什么样的考虑,文件同步吗?

作者: chaichai543    时间: 2014-11-28 22:17
你好,我想问一下 fastdfs可以搭建在一台服务器上面嘛?tracker和storage都在同一台机子上?
作者: xmdxzyf    时间: 2014-12-15 10:02
请问下,访问资源的时候,nginx本身就可以支持静态资源访问,那fastdfs的nginx module相对于nginx自带的静态访问有哪些优势?
谢谢~
作者: cxj98502    时间: 2015-01-05 20:47
回复 80# 78400971
/fdfs/tracker  目录没有创建  在/ 目录下创建fdfs/tracker目录

   
作者: xucong0701    时间: 2015-01-07 11:31
FastDFS还有技术交流群吗,我看FAQ里面那个群早就满了,另外两个群也满了,谢谢~~
作者: utofly    时间: 2015-01-07 18:23
一个tracker下挂2个group
tracker_test上传测试,发现一直上传到group2
请问tracker是怎么调度group的,是基于什么算法?
作者: zy6380006    时间: 2015-01-11 00:45
In file included from /usr/local/fastdfs-nginx-module/src/ngx_http_fastdfs_module.c:6:
/usr/local/fastdfs-nginx-module/src/common.c: In function ‘fdfs_http_request_handler’:
/usr/local/fastdfs-nginx-module/src/common.c:973: error: implicit declaration of function ‘fdfs_http_get_file_extension’
/usr/local/fastdfs-nginx-module/src/common.c:973: error: assignment makes pointer from integer without a cast
/usr/local/fastdfs-nginx-module/src/common.c:977: error: passing argument 3 of ‘fdfs_http_get_content_type_by_extname’ makes pointer from integer without a cast
/usr/local/include/fastdfs/fdfs_http_shared.h:103: note: expected ‘char *’ but argument is of type ‘int’
/usr/local/fastdfs-nginx-module/src/common.c:977: error: passing argument 4 of ‘fdfs_http_get_content_type_by_extname’ makes integer from pointer without a cast
/usr/local/include/fastdfs/fdfs_http_shared.h:103: note: expected ‘int’ but argument is of type ‘char *’
/usr/local/fastdfs-nginx-module/src/common.c:977: error: too many arguments to function ‘fdfs_http_get_content_type_by_extname’
make[1]: *** [objs/addon/src/ngx_http_fastdfs_module.o] Error 1
make[1]: Leaving directory `/usr/local/nginx-1.5.9'
make: *** [build] Error 2
有没有人能帮忙看一下啊,实在不知道原因了,./configure --prefix=/usr/local/nginx --add-module=/usr/local/fastdfs-nginx-module/src   ,然后make后报的错
作者: dwb80    时间: 2015-02-11 09:05
回复 4# xiaochu


    在configure的时候,制定位置
./configure –prefix=/usr/local/libevent
然后连接文件
ln -s /usr/local/libevent/lib/libevent-2.0.so.5 /usr/lib/libevent-2.0.so.5
ln -s /usr/local/libevent/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5
ln -s /usr/local/libevent/lib/libevent-2.0.so.5 /lib64/libevent-2.0.so.5
ln -s /usr/local/libevent/lib/libevent-2.0.so.5 /lib/libevent-2.0.so.5
ln -s /usr/local/libevent/lib/libevent-2.0.so.5 /usr/local/lib64/libevent-2.0.so.5
ln -s /usr/local/libevent/lib/libevent-2.0.so.5 /usr/local/lib/libevent-2.0.so.5

作者: fjw6204    时间: 2015-02-15 16:56
请教下,storage的RECOVERY状态是什么意思?status=9
能否告知为何会出现这个状态,且如何修复?

今天早上有一块磁盘坏了,然后换了一块盘上去,就出现这个状态了,不知道是否有关系?
作者: zlp3817    时间: 2015-02-28 13:37

作者: yangwf2009    时间: 2015-03-20 11:45
FastDFS很多人用作图片服务器,但是缩略图生成方面有关小建议,希望作者能考虑:现在缩略图只能在本地生成,然后以从文件的方式上传。改进建议,增加一个专门的生成缩略图方法。原图上传成功后,生成缩略图时参数为原图的GroupId,FileId,缩放比例或指定长宽,后缀名就可以了,缩略图的FileId为原图FileId+后缀名。缩略图的生成过程在服务器端进行,减少了网络流量和用户等待上传时间,也避免使用者在编写图片生成代码。回复 1# happy_fish100


   
作者: bruceg1204    时间: 2015-03-31 15:28
storage端自己停掉进程和端口

进程和程序消失时/var/log/messages 里报
kernel: fdfs_storaged[2660]: segfault at 0 ip (null) sp 00007fedb30c7e88 error 14 in fdfs_storaged[400000+67000]

两台storage是192.168.6.48和192.168.6.76
6.48和6.76的storaged.log日志一直在报
[2015-03-31 10:04:50] ERROR - file: storage_service.c, line: 5337, client ip: 192.168.6.48, slave file: /data/fastdfs/data/02/A1/wKgGKVUSHs2AfF0hAADCI__VEh4456_80_80.jpg already exist
[2015-03-31 10:04:50] ERROR - file: storage_service.c, line: 5337, client ip: 192.168.6.48, slave file: /data/fastdfs/data/02/A1/wKgGKVUSHs2AfF0hAADCI__VEh4456_230_230.jpg already exist
[2015-03-31 10:04:50] ERROR - file: storage_service.c, line: 5337, client ip: 192.168.6.48, slave file: /data/fastdfs/data/02/A1/wKgGKVUSHs2AfF0hAADCI__VEh4456_300_300.jpg already exist

有人遇到过类似问题吗?
作者: yangxh101    时间: 2015-04-07 10:55
回复 77# kongdq


    检查 nginx log,应该是相关配置文件不存在的原因
作者: 静夜思林    时间: 2015-04-14 10:00
请问支持,断点传续吗?谢谢
作者: bo_hai    时间: 2015-04-17 19:54
问题请教:
有一个问题困扰我一个星期,不解决我是睡不好觉。问题描述如下:
Fastdfs和nginx已配置成功。服务端可以正常上传文件。现在我想做一个生成缩略图的功能。安装了 ImageMagick-6.9.1-1,在控制台上可以identify命令,这证明我的ImageMagick是安装成功的。接下来我安装了:jmagick-6.4.0-src.tar.gz ,将生成的文件:libJMagick-6.4.0.so copy到/usr/java/jdk1.7.0_60/jre/lib/amd64目录下。在jmagick的文件目录下执行:make test ,报以下错误:
  1. ./usr/bin/java: symbol lookup error: /usr/java/jdk1.7.0_60/jre/lib/amd64/libJMagick.so: undefined symbol: MagickCoreGenesis
复制代码
一直没有找到解决办法?求大伸给想想办法?这个问题已困扰我一个多星期了。
作者: athenaansan    时间: 2015-04-22 15:47
看来还是顶一下吧~~~~~~~~~~
作者: cjk87927    时间: 2015-04-29 15:26
回复 1# happy_fish100


    请问有没有单独返回软链接的接口?
由于fastdfs是在上传后进行文件去重的,发现是相同文件就会生成一个软链接返回,但这样必须在服务端效验文件,不能实现秒传,所以想问下,有没有针对一个文件生成软链接的接口,这样我在前端效验文件发现是存在的文件,就直接申请一个软链接,返回给客户端,达到秒传的目的.
作者: hy0kl    时间: 2015-06-19 11:57
标题: Mac 下编译过了,但运行报错
本帖最后由 hy0kl 于 2015-06-19 11:59 编辑

Mac 下编译过了,但运行报错

$ uname -a
Darwin Yongjie.local 14.3.0 Darwin Kernel Version 14.3.0: Mon Mar 23 11:59:05 PDT 2015; rootnu-2782.20.48~5/RELEASE_X86_64 x86_64

$ fdfs_test
dyld: Library not loaded: libfastcommon.so
  Referenced from: /Users/work/local/bin/fdfs_test
  Reason: image not found
Trace/BPT trap: 5

$ lt ~/local/lib
lrwxr-xr-x   1 work  staff    16B Jun 17 11:34 libfdfsclient.dylib -> libfdfsclient.so
lrwxr-xr-x   1 work  staff    16B Jun 17 11:33 libfastcommon.dylib -> libfastcommon.so
-rwxr-xr-x   1 work  staff   103K Jun 16 12:18 libfdfsclient.so
-rwxr-xr-x   1 work  staff   206K Jun 16 11:49 libfastcommon.so
作者: hy0kl    时间: 2015-06-19 12:09
本帖最后由 hy0kl 于 2015-06-19 12:59 编辑

另外我 fork 了一个版本,改成标准安装了.

https://github.com/internet-dev/libfastcommon
https://github.com/internet-dev/fastdfs

在 ubuntu 下编译通过了.

$ uname -a
Linux work-dev 3.19.0-16-generic #16-Ubuntu SMP Thu Apr 30 16:09:58 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

$ fdfs_test
This is FastDFS client test program v5.06

Copyright (C) 2008, Happy Fish / YuQing

FastDFS may be copied only under the terms of the GNU General
Public License V3, which may be found in the FastDFS source kit.
Please visit the FastDFS Home Page http://www.csource.org/
for more detail.

Usage: fdfs_test <config_file> <operation>
        operation: upload, download, getmeta, setmeta, delete and query_servers

$ lt ~/local/lib/
total 648K
-rwxrwxr-x 1 work work 360K Jun 15 20:41 libfdfsclient.so
-rwxr-xr-x 1 work work 287K Jun 15 18:05 libfastcommon.so

$ fdfs_file_info /home/work/local/etc/client.conf group2/M00/00/00/wKhAFlV-ttiANfa4AACTAFbHqpM742.jpg
source storage id: 0
source ip address: 192.168.64.22
file create timestamp: 2015-06-15 19:28:24
file size: 37632
file crc32: 1455925907 (0x56C7AA93)
作者: yacai1990    时间: 2015-06-30 14:17
您好,版主。我们公司现在在用fastdfs做文件服务器。现在的服务器架构是两台trackerd服务器,两台storaged服务器。trackerd上的软件是nginx1.6  fastdfs5.02 php5.3.29。。。 storaged上的nginx扩展是1.16 。。。之前使用test命令分别在两台trackerd上测试是没有问题的。文件上传到一台storage可以同步到另一台storage。。。。现在的问题是使用生产环境的php程序上传文件之后不能同步。。。两台storage服务器的状态全部是active。跪求大神帮忙。。。我的QQ是:598929084




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2