Chinaunix

标题: FastDFS一个高效的分布式文件系统 [打印本页]

作者: Send_linux    时间: 2009-02-18 15:42
标题: FastDFS一个高效的分布式文件系统
FastDFS是一个开源的轻量级分布式文件系统,她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。

存储节点存储文件,完成文件管理的所有功能:存储、同步和提供存取接口,FastDFS同时对文件的metadata进行管理。所谓文件的meta data就是文件的相关属性,以键值对(key valuepair)方式表示,如:width=1024,其中的key为width,value为1024。文件metadata是文件属性列表,可以包含多个键值对。

FastDFS系统结构如下图所示:


跟踪器和存储节点都可以由一台多台服务器构成。跟踪器和存储节点中的服务器均可以随时增加或下线而不会影响线上服务。其中跟踪器中的所有服务器都是对等的,可以根据服务器的压力情况随时增加或减少。

为了支持大容量,存储节点(服务器)采用了分卷(或分组)的组织方式。存储系统由一个或多个卷组成,卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容量。一个卷可以由一台或多台存储服务器组成,一个卷下的存储服务器中的文件都是相同的,卷中的多台存储服务器起到了冗余备份和负载均衡的作用。
在卷中增加服务器时,同步已有的文件由系统自动完成,同步完成后,系统自动将新增服务器切换到线上提供服务。

当存储空间不足或即将耗尽时,可以动态添加卷。只需要增加一台或多台服务器,并将它们配置为一个新的卷,这样就扩大了存储系统的容量。
FastDFS中的文件标识分为两个部分:卷名和文件名,二者缺一不可。

                               FastDFS file upload
上传文件交互过程:
1. client询问tracker上传到的storage,不需要附加参数;
2. tracker返回一台可用的storage;
3. client直接和storage通讯完成文件上传。


                         FastDFS file download
下载文件交互过程:
1. client询问tracker下载文件的storage,参数为文件标识(卷名和文件名);
2. tracker返回一台可用的storage;
3. client直接和storage通讯完成文件下载。

需要说明的是,client为使用FastDFS服务的调用方,client也应该是一台服务器,它对tracker和storage的调用均为服务器间的调用。

google code地址:http://code.google.com/p/fastdfs/
google code下载地址:http://code.google.com/p/fastdfs/downloads/list
作者: swordfish.cn    时间: 2009-02-18 18:35
这个原来是在 C 版的东西吧?
为什么不请原作者来做版主呢?
作者: kns1024wh    时间: 2009-02-18 20:33
原帖由 swordfish.cn 于 2009-2-18 18:35 发表
这个原来是在 C 版的东西吧?
为什么不请原作者来做版主呢?

支持这个建议
作者: happy_fish100    时间: 2009-02-19 10:15
标题: 回复 #3 kns1024wh 的帖子
谢谢大家的支持,正在申请中,很快可以申请下来。
作者: cskyrain    时间: 2009-03-05 11:17
标题: 回复 #4 happy_fish100 的帖子
刚刚看到,问一下tracker   storage  client之间的通讯是基于socket的吧,没有用rpc吧。对这个不太了解,问一下,这个用socket好些还是rpc好些,gfs用的是什么呢。还有yahoo的那个分布式文件系统的站怎么上不了了啊。
作者: happy_fish100    时间: 2009-03-05 16:35
原帖由 cskyrain 于 2009-3-5 11:17 发表
刚刚看到,问一下tracker   storage  client之间的通讯是基于socket的吧,没有用rpc吧。对这个不太了解,问一下,这个用socket好些还是rpc好些,gfs用的是什么呢。还有yahoo的那个分布式文件系统的站怎么上不了 ...


使用rpc需要遵循RPC协议标准,使用socket可以自己定义通信协议,这样效率和灵活性都更好。
我对gfs了解不多,你可以查阅一下相关文档。
雅虎的站长天下已经下线了,相关的文章和帖子都已经迁移到了本论坛。
作者: sopato    时间: 2009-03-14 03:43
如果我只想单纯的实现文件同步功能,从一台机器同步到另外一台机器,可否实现?
作者: happy_fish100    时间: 2009-03-14 13:41
原帖由 sopato 于 2009-3-14 03:43 发表
如果我只想单纯的实现文件同步功能,从一台机器同步到另外一台机器,可否实现?


FastDFS是一个文件存储服务,文件同步只是它的一个功能,不能拆分出来的。
你可以使用rsync、scp之类的同步命令(工具)。
作者: chifeng    时间: 2009-03-28 07:54
原帖由 cskyrain 于 2009-3-5 11:17 发表
刚刚看到,问一下tracker   storage  client之间的通讯是基于socket的吧,没有用rpc吧。对这个不太了解,问一下,这个用socket好些还是rpc好些,gfs用的是什么呢。还有yahoo的那个分布式文件系统的站怎么上不了 ...



坚决抵制使用rpc的方式。。。。。。。。。。。
作者: lighting_zhu    时间: 2009-04-23 10:07
标题: 回复 #1 Send_linux 的帖子
单个tracker的性能怎样,支持多少并发,如何做到的?
作者: happy_fish100    时间: 2009-04-24 21:36
原帖由 lighting_zhu 于 2009-4-23 10:07 发表
单个tracker的性能怎样,支持多少并发,如何做到的?


单台tracker的性能特别高。因为tracker处理查询时,直接访问内存中的索引数据,不存在任何性能瓶颈。
单台服务器支持的QPS超过5000没有任何问题。
作者: snkzhong    时间: 2009-05-25 16:15
我有个疑问
一个组只能有一台 源服务器 ? 其他的都是冗余
一组能有多台源服务器吗,然后每台又可以冗余
作者: happy_fish100    时间: 2009-05-25 17:52
标题: 回复 #12 snkzhong 的帖子
每个组内的服务器是对等的,每台服务器都可以是源服务器。
由源服务器将文件同步到同组的其他服务器。
作者: snkzhong    时间: 2009-05-25 18:07
一个组只有一台服务器的存储容量,其他的都是冗余 ?
作者: happy_fish100    时间: 2009-05-25 18:13
标题: 回复 #14 snkzhong 的帖子
是的。一个组的容量为该组内服务器中的最小容量。
所以,每个组的服务器配置应尽量一致。
为了达到备份和负载均衡的目的,建议每组配置两台存储服务器。
作者: snkzhong    时间: 2009-05-26 13:12
一个组能不能有多台服务器存储容量
比如有个大型网站,我把各种文件资源分类,假如有(相册、用户头像、下载文件),每类文件用一组服务器,一台存储容量肯定是不够的
作者: happy_fish100    时间: 2009-05-26 13:35
标题: 回复 #16 snkzhong 的帖子
建立多个组好了。
系统总容量是各个组的容量总和。
作者: snkzhong    时间: 2009-05-26 14:52
标题: 回复 #17 happy_fish100
感谢 happy_fish100 的耐心解答

还有最后一个问题,能不能自己指定存在服务器中的文件名
作者: happy_fish100    时间: 2009-05-26 16:26
标题: 回复 #18 snkzhong 的帖子
上传文件时,文件名由FastDFS生成,然后返回给客户端。
客户端不能指定文件名,可以指定文件后缀。
作者: crastyl    时间: 2009-05-27 16:03
问一下。。这个组怎么mount到别的服务器呢
作者: happy_fish100    时间: 2009-06-01 12:29
标题: 回复 #20 crastyl 的帖子
出于性能等考虑,必须通过FastDFS的API来对文件进行存取,不能mount使用。
作者: aficbl    时间: 2009-06-03 21:43
一个组的容量为该组内服务器中的最小容量。


一个组的文件如果放不下了怎么办?
作者: happy_fish100    时间: 2009-06-04 09:12
标题: 回复 #22 aficbl 的帖子
如果不是指定组的方式(固定存放在一个组),系统会自动挑选尚有剩余空间的组来存放文件。如果空间都满了,上传文件将会失败(返回错误号:ENOSPC)
作者: flat_peach    时间: 2009-06-17 14:19
支持!~ 都是英文啊
作者: bigplum    时间: 2009-06-29 12:01
是否支持服务器跨地域分布? 指定文件跨地域备份?
作者: happy_fish100    时间: 2009-06-30 15:55
标题: 回复 #25 bigplum 的帖子
可以的吧。
将不同地域的服务器放到同一个组中即可。
作者: oralib    时间: 2009-07-07 17:07
原帖由 Send_linux 于 2009-2-18 15:42 发表
FastDFS是一个开源的轻量级分布式文件系统,她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册 ...


你好,真的很佩服你,要是我也许很难有这样的毅力把这个东西写出来。
简单的了解了一下有几个问题请帮忙解答,多谢:

1>. 大文件(>500G)和很多小文件(<1K),的存放不知道怎么存放的。对于这两种极端情况部分怎么考虑。
大文件可以并发的读写吗?小文件如果也需要走同样的流程,那样当小文件相当多的时候是不是很慢很慢?
不知道对于这两种情况有什么好的做法,多谢!

2>. 对于文件的查找索引部分在那存放(Client or Tracker)?
如果在Client,Client下次再也不用了,那这部分空间怎么回收?
如果在Tracker,这样Tracker应该访问压力是很大的,怎么保证效率,怎么存储这部分索引信息。

多谢!
作者: happy_fish100    时间: 2009-07-08 09:00
标题: 回复 #27 oralib 的帖子
1>. 大文件(>500G)和很多小文件(<1K),的存放不知道怎么存放的。对于这两种极端情况部分怎么考虑。
> 大文件可以并发的读写吗?小文件如果也需要走同样的流程,那样当小文件相当多的时候是不是很慢很慢?
> 不知道对于这两种情况有什么好的做法,多谢!

都是按文件存放的。上传的一个文件就保存在一个实体文件中。
并发写目前还不支持。V1.19开始支持指定读取文件的偏移量(offset)及长度(bytes),这样针对大文件,就可以在客户端实现并发读了。


2>. 对于文件的查找索引部分在那存放(Client or Tracker)?
> 如果在Client,Client下次再也不用了,那这部分空间怎么回收?
> 如果在Tracker,这样Tracker应该访问压力是很大的,怎么保证效率,怎么存储这部分索引信息。

上传文件成功后,文件ID由storage server返回给客户端。文件ID中包括了分组、文件路径和文件名等信息,需要由客户端来保存文件ID。因此FastDFS 服务器端是不需要保存文件ID或索引等信息的。不再使用的文件(比如用户删除了自己的照片文件),应该由client调用delete file接口删除该文件。
作者: happy_fish100    时间: 2009-07-23 11:53
标题: FastDFS V1.19 stable版本发布!
Version 1.19  2009-07-23
* use poll instead of select in sockopt.c
* hash.c use chain impl by self
* use FastDHT 1.09 client code
* ini reader support HTTP protocol, conf file can be an url
* correct test dir compile error
* use non-block socket to increase network IO performance
* add cmd TRACKER_PROTO_CMD_SERVICE_QUERY_FETCH_ALL: query all storage servers
   from which the file can be dowloaded
* while (1) ... break; changed to do ... while (0);
作者: changzi100    时间: 2010-03-07 15:39
不错啊!
作者: chenqi1017    时间: 2011-05-27 14:21
你好,请问FastDFS的负载均衡是怎么实现的?是client请求读写(下载/上传)一个文件的时候,tracker server将其定位到负载最轻的storage server上吗?这样坐会不会造成那台服务器出现热点问题,这一块你们是怎么考虑的呢?谢谢~~
作者: anderson_gwr    时间: 2012-08-28 14:24
FastDFS能否支持跨地域的同步方式,例如同一个group下面的storage分布在不同地址位置的不同机房内,例如一个名叫default的group,组成此group的storage有两台,一台在广州,一台在北京,这样的方式支持吗?如果不支持,有没有内置的机制来完成多机房的容灾?或者,FastDFS是否提供日志机制,以便将一个机房内的文件修改同步到另外一个远程的机房?
作者: happy_fish100    时间: 2012-08-28 16:42
回复 32# anderson_gwr

FastDFS完全支持跨机房部署!
只要你机房之间网络是可以正常连接,就没问题。
作者: anderson_gwr    时间: 2012-08-30 15:27
因为机房之间的网络通常不稳定,经常出现网络波动,例如网络中断10分钟甚至1个小时,这个时候,FastDFS还能够正常工作吗?

另外,看FastDFS的Client API,发现文件名都是平面型的,即groupname/filename,这样的话,当保存大量文件的时候,在一个目录下面就会有着太多的文件存在。
有没有办法在storage path下面,自由地指定文件的目录,例如groupname/dir1/dir2/dir3/filename?
作者: happy_fish100    时间: 2012-08-30 17:06
回复 34# anderson_gwr

FastDFS存储文件采用的是256 * 256的两级目录啊!
作者: anderson_gwr    时间: 2012-08-30 18:15
嗯,对,FastDFS是两级目录,256 *256个子目录的。我的另外一个问题是:

因为机房之间的网络通常不稳定,经常出现网络波动,例如网络中断10分钟甚至1个小时,这个时候,FastDFS还能够正常工作吗?
作者: happy_fish100    时间: 2012-08-31 10:06
回复 36# anderson_gwr

没有问题的。FastDFS文件同步采用异步的增量方式。
网络恢复后,可以继续进行文件同步。
作者: anderson_gwr    时间: 2012-08-31 14:47
happy_fish, 非常感谢你的回答。我已经按照文档在三台虚拟机上搭建了fastdfs cluster。其中一台运行tracker, 另外两台运行storage。然后通过下面的命令上传:

xxx@ubuntu-1:/usr/local/bin$ sudo ./fdfs_upload_file /etc/fastdfs/client.conf ~/soft/memcached-1.4.14.tar.gz
realname/M00/00/00/rBMi01BAR92AzW1VAATm7i-gZic.tar.gz

结果发现只在一个storage server上面有上传的文件,另外一台storage上面不存在。查看trakcer的日志,有如下内容,不知道是什么原因导致的:

drutt@ubuntu-1:/usr/local/bin$ cat /opt/fastdfs/logs/trackerd.log
[2012-08-31 12:01:43] INFO - FastDFS v3.11, base_path=/opt/fastdfs, run_by_group=, run_by_user=, connect_timeout=30s, network_timeout=60s, port=22122, bind_addr=, max_connections=256, work_threads=4, store_lookup=0, store_group=, store_server=0, store_path=0, reserved_storage_space=4096MB, download_server=0, allow_ip_count=-1, sync_log_buff_interval=10s, check_active_interval=10s, thread_stack_size=64 KB, storage_ip_changed_auto_adjust=1, storage_sync_file_max_delay=86400s, storage_sync_file_max_time=3600s, use_trunk_file=0, 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,
[2012-08-31 12:01:43] INFO - local_host_ip_count: 2,  127.0.0.1  172.19.34.210
[2012-08-31 12:05:49] CRIT - file: fdfs_trackerd.c, line: 413, catch signal 3, program exiting...
[2012-08-31 12:05:50] INFO - exit nomally.

[2012-08-31 12:06:48] INFO - FastDFS v3.11, base_path=/opt/fastdfs, run_by_group=, run_by_user=, connect_timeout=30s, network_timeout=60s, port=22122, bind_addr=, max_connections=256, work_threads=4, store_lookup=0, store_group=, store_server=0, store_path=0, reserved_storage_space=4096MB, download_server=0, allow_ip_count=-1, sync_log_buff_interval=10s, check_active_interval=10s, thread_stack_size=64 KB, storage_ip_changed_auto_adjust=1, storage_sync_file_max_delay=86400s, storage_sync_file_max_time=3600s, use_trunk_file=0, 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,
[2012-08-31 12:06:48] INFO - HTTP supported: server_port=8080, default_content_type=application/octet-stream, anti_steal_token=0, token_ttl=0s, anti_steal_secret_key length=0, token_check_fail content_type=, token_check_fail buff length=0, check_active_interval=30, check_active_type=tcp, check_active_uri=/status.html
[2012-08-31 12:06:48] INFO - local_host_ip_count: 2,  127.0.0.1  172.19.34.210
[2012-08-31 12:52:10] INFO - file: tracker_relationship.c, line: 374, selecting leader...
[2012-08-31 12:52:10] INFO - file: tracker_relationship.c, line: 392, I am the new tracker leader 172.19.34.210:22122
[2012-08-31 12:52:22] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 12:52:52] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 12:53:22] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 12:53:52] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 12:54:22] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 12:54:52] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 12:55:22] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 12:55:52] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 12:56:22] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 12:56:52] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 12:57:22] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 12:57:52] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 12:58:22] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 12:58:52] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 12:59:22] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 12:59:52] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:00:22] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:00:52] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:01:22] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:01:52] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:02:22] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:02:52] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:03:22] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:03:52] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:04:22] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:04:52] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:05:22] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:05:52] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:06:22] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:08:43] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:09:13] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:09:13] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.212:23000 idle too long, status change to offline!
[2012-08-31 13:09:43] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:09:43] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.212:23000 idle too long, status change to offline!
[2012-08-31 13:10:13] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:10:13] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.212:23000 idle too long, status change to offline!
[2012-08-31 13:10:43] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:10:43] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.212:23000 idle too long, status change to offline!
[2012-08-31 13:11:13] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:11:13] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.212:23000 idle too long, status change to offline!
[2012-08-31 13:11:43] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:11:43] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.212:23000 idle too long, status change to offline!
[2012-08-31 13:12:13] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:12:13] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.212:23000 idle too long, status change to offline!
[2012-08-31 13:12:43] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:12:43] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.212:23000 idle too long, status change to offline!
[2012-08-31 13:13:13] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:13:13] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.212:23000 idle too long, status change to offline!
[2012-08-31 13:13:43] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:13:43] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.212:23000 idle too long, status change to offline!
[2012-08-31 13:14:14] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:14:14] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.212:23000 idle too long, status change to offline!
[2012-08-31 13:14:44] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:14:44] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.212:23000 idle too long, status change to offline!
[2012-08-31 13:15:14] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:15:14] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.212:23000 idle too long, status change to offline!
[2012-08-31 13:15:44] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:15:44] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.212:23000 idle too long, status change to offline!
[2012-08-31 13:16:14] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:16:14] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.212:23000 idle too long, status change to offline!
[2012-08-31 13:16:44] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:16:44] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.212:23000 idle too long, status change to offline!
[2012-08-31 13:17:14] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:17:14] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.212:23000 idle too long, status change to offline!
[2012-08-31 13:17:44] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:17:44] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.212:23000 idle too long, status change to offline!
[2012-08-31 13:18:14] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.211:23000 idle too long, status change to offline!
[2012-08-31 13:18:14] INFO - file: tracker_mem.c, line: 5333, storage server 172.19.34.212:23000 idle too long, status change to offline!
作者: happy_fish100    时间: 2012-08-31 17:42
回复 38# anderson_gwr

你修改过tracker.conf中的一些参数吧。

tracker.conf:
# check storage server alive interval seconds
check_active_interval = 120

storage.conf:
# heart beat interval in seconds
heart_beat_interval=30


对于这两个参数的大小关系,必须是:check_active_interval  > heart_beat_interval
如果你不修改这两个参数值,是没有任何问题的啊!
请检查一下这两个配置项。

作者: edmondw    时间: 2012-11-02 17:29
回复 39# happy_fish100



请问:track服务器内存需要多大?


   
作者: happy_fish100    时间: 2012-11-02 21:16
回复 40# edmondw

tracker不耗内存,有1GB内存足矣。
作者: hansion3406    时间: 2012-11-04 10:50
真精神!!!!!!
作者: cnvbird    时间: 2012-12-04 13:56
版主对FastDFS 有深入研究??
作者: h101com    时间: 2013-01-25 12:00
很不错,简单实用!
作者: sodarfish    时间: 2013-02-03 21:03
本帖最后由 sodarfish 于 2013-02-03 21:04 编辑

之前回复错了..汗
作者: shylockxie    时间: 2013-05-13 14:35
收藏了
作者: laihua0808    时间: 2013-08-22 11:31
我用过OCFS2/GFS FOR RHEL5,但还是觉得GPFS好用。
作者: ly1595    时间: 2013-11-15 15:14
好久没来了~~~
作者: interfaceyou    时间: 2014-12-02 13:40

作者: fjw6204    时间: 2015-02-15 16:58

请教下,storage的RECOVERY状态是什么意思?status=9
能否告知为何会出现这个状态,且如何修复?

今天早上有一块磁盘坏了,然后换了一块盘上去,就出现这个状态了,不知道是否有关系?
作者: bo_hai    时间: 2015-04-06 16:49
google code地址:code.google.com/p/fastdfs/
google code下载地址:code.google.com/p/fastdfs/downloads/list

GoogleCode现在不能访问了,请问可以去哪里下载呢?
作者: walgnin    时间: 2015-05-01 20:18
真理往往掌握在少数人的手里
作者: sgw0128    时间: 2015-08-13 16:24
大侠求救,节点无法同步,请解救。

成功存储上传文件的节点日志
[2015-08-13 22:44:20] INFO - local_host_ip_count: 2,  127.0.0.1  192.170.1.73
[2015-08-13 22:44:22] INFO - file: tracker_client_thread.c, line: 308, successfully connect to tracker server 192.170.1.72:22122, as a tracker client, my ip is 192.170.1.73
[2015-08-13 22:44:22] INFO - file: tracker_client_thread.c, line: 1124, tracker server 192.170.1.72:22122, set tracker leader: 192.170.1.72:22122
[2015-08-13 22:44:22] ERROR - file: storage_sync.c, line: 2710, connect to storage server 192.170.1.74:23000 fail, errno: 113, error info: No route to host
[2015-08-13 22:44:25] ERROR - file: storage_sync.c, line: 2710, connect to storage server 192.170.1.75:23000 fail, errno: 113, error info: No route to host

无法同步上传文件的节点日志
[2015-08-13 22:32:10] ERROR - file: tracker_client_thread.c, line: 1009, tracker server 192.170.1.72:22122, recv data fail, errno: 107, error info: Transport endpoint is not connected.
[2015-08-13 22:32:11] INFO - file: tracker_client_thread.c, line: 308, successfully connect to tracker server 192.170.1.72:22122, as a tracker client, my ip is 192.170.1.74
[2015-08-13 22:32:11] INFO - file: tracker_client_thread.c, line: 1124, tracker server 192.170.1.72:22122, set tracker leader: 192.170.1.72:22122
[2015-08-13 22:44:40] ERROR - file: tracker_proto.c, line: 37, server: 192.170.1.73:23000, recv data fail, errno: 107, error info: Transport endpoint is not connected
[2015-08-13 22:44:41] INFO - file: storage_sync.c, line: 2698, successfully connect to storage server 192.170.1.73:23000

想让两个节点同步数据,不知道哪里设置错了。。
作者: mm8m6m7m    时间: 2016-07-06 14:40
FastDFS中Trunk文件使用 出现新数据和旧数据无法同步的现象。请问可以手动同步吗?可以的话能不能提供一下操作步骤。谢谢!
作者: dodng12    时间: 2016-07-22 16:41
fish大哥,有几个问题想请教您:

1.tracker服务器可以部署多台共同承担来自client的流量请求么?
2.tracker如果挂了如何处理,即需要额外为tracker做灾备么?
作者: zhoujianqian    时间: 2017-05-24 10:26
fastDFS异地备份可以支持吗
作者: zhoujianqian    时间: 2017-05-24 10:32
FastDFS能否支持跨地域的同步方式,例如同一个group下面的storage分布在不同地址位置的不同机房内,例如一个名叫default的group,组成此group的storage有两台,一台在广州,一台在北京,这样的方式支持吗?如果不支持,有没有内置的机制来完成多机房的容灾?或者,FastDFS是否提供日志机制,以便将一个机房内的文件修改同步到另外一个远程的机房?


这个解决了吗?异地容灾





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