FastDFS 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
FastDFS 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
FastDFS 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 GPLv3
开发语言 C/C++ 查看源码 »
操作系统 Linux
软件类型 开源软件
所属分类 服务器软件存储系统
开源组织
地区 国产
投 递 者 happyfish100
适用人群 未知
收录时间 2008-10-07

软件简介

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

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

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

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的调用均为服务器间的调用。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(33) 发布并加入讨论🔥
发表了资讯
2023/12/14 08:50

FastDFS V6.11 发布,支持 IPv6

分布式文件系统FastDFS V6.11发布,主要改进包括: 1)支持IPv6,且支持IPv4和IPv6双栈模式。tracker.conf和storage.conf中增加了配置项address_family,默认为IPv4优先,具体配置说明参见源码 conf/下的配置示例。 2)修复了双IP方式支持NAT网络的问题。storage.conf 中增加配置项 server_id用来强制指定 storage server id;客户端支持storage server双IP之间的failover,可以通过client.conf中的配置项 connect_first_by 来设...

1
0
发表了资讯
2022/09/15 10:37

FastDFS V6.09 发布,整合网络框架 libserverframe

FastDFS V6.09发布,主要改进:引入网络框架库libserverframe,替换原有的tracker nio和storage nio两个模块。 2015年libserverframe从FastDFS的nio模块抽取出来,现在FastDFS使用libserverframe,使得代码更加简洁高效,并解决了由来已久的一个bug:网络线程接收到客户端请求,把文件读写交给磁盘IO线程后,在磁盘线程处理过程中如果客户端断开连接,对应的网络线程将空转导致CPU跑满。解决方法是task对象使用引用计数器,网络...

3
4
发表了资讯
2019/12/26 12:27

FastDFS 6.05 发布,分布式文件系统

FastDFS 6.05 发布了。FastDFS 是一个分布式文件系统,功能主要包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了文件大容量存储和高性能访问的问题。FastDFS 特别适合以文件为载体的在线服务,如图片、视频、文档等。 此版本主要对小文件合并存储的 binlog 压缩功能进行了企业级的增强和完善,主要改进如下: 根据内存快照定期生成新的 trunk binlog,以达到最好的压缩效果,减少磁盘空间占用,并且可以明显...

13
33
发表了资讯
2019/12/05 16:25

FastDFS 6.04 发布,分布式文件系统

FastDFS 6.04 发布了。FastDFS 是一个分布式文件系统,功能主要包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了文件大容量存储和高性能访问的问题。FastDFS 特别适合以文件为载体的在线服务,如图片、视频、文档等。 此版本更新内容包括: 单盘数据恢复支持多线程,以加快数据文件复制速度; 支持错误日志和 access 日志压缩; 修复了 v6.01 引入的一个 bug,该 bug 可能会导致单盘数据恢复获取 binlog 异...

9
26
发表了资讯
2019/11/22 07:56

FastDFS 6.03 发布,分布式文件系统

FastDFS 6.03 发布了。FastDFS 是一个分布式文件系统,功能主要包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了文件大容量存储和高性能访问的问题。FastDFS 特别适合以文件为载体的在线服务,如图片、视频、文档等。 此版本没有增加新功能,主要是服务端逻辑增强和 bug 修复。主要变化包括: 双 IP 除了支持一个内网 IP 和一个外网 IP 外,还支持两个不同类型的内网 IP,比如:192.168.1.10、172.17.4.21...

12
44
发表了资讯
2014/07/28 00:00

分布式文件系统 FastDFS V5.02 发布!!!

FastDFS V5.02 发布, 现已提供下载,主要修复了几个 bug,另外同步了易到用车消息推送平台项目中对 libfastcommon 库的修改。 主要的改进内容如下: * 修正了 README 里面的拼写错误 * Bug 修复:不能处理同步 truncate 文件异常 * 移除了 tracker_global.c 外部关键字到 tracker_global.h * change log level from ERROR to DEBUG when IOEVENT_ERROR * php callback should use INIT_ZVAL to init zval variable * add funct...

4
45
发表了资讯
2013/12/23 00:00

FastDFS 5.0.0 发布,分布式文件系统

鱼大的轻量级分布式文件系统 FastDFS 5.0.0 发布。2013-12-22 小文件如图片,静态资源文件存储首选。连京东首页都已使用FastDFS了。上个版本是 2013-11-30 的 4.0.8. 主要就是去掉了对 libevent 的依赖。Linux 使用,FreeBSD 使用 kqueue。 FastDFS 是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在...

18
98
发表了资讯
2013/01/02 00:00

FastDFS 4.05 发布,分布式文件系统

FastDFS v4.05 发布! 主要改进: C和PHP扩展支持连接池; 文件同步时,保持文件修改时间一致; 获取当前时间采用全局变量,而不是直接调用time函数,用cdn的同学赶紧更新吧,鼻涕。。。 详情参见源码中自带的tracker.conf示例。 FastDFS是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如...

2
12
发表了资讯
2012/11/18 00:00

FastDFS 4.03 发布,分布式文件系统

FastDFS v4.03 发布! 主要改进: 文件ID中支持包含源storage server ID。 由tracker.conf的如下两个参数决定:use_storage_id和id_type_in_filename。 详情参见源码中自带的tracker.conf示例。 FastDFS是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。 FastDF...

1
9
发表了资讯
2012/10/29 00:00

FastDFS 4.02 发布,分布式文件系统

FastDFS v4.02发布!主要改进:支持日志轮转,fdfs_monitor支持设置trunk server。 FastDFS是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册

1
22
发表了资讯
2012/10/21 00:00

FastDFS 4.01 发布,分布式文件系统

FastDFS刚才发布了V4.01。主要是几点小改进。最主要的改进是扩展了trunk server资源释放(destroy)时的标志,以避免destroy时间较长可能导致的访问冲突问题。 FastDFS是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册

0
15
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
33 评论
1.2K 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部