FastDFS一个高效的分布式文件系统

原创 2008年07月23日 00:55:00

 同事 happy_fish 最近开发了一个很强大,很快速的开源分布式文件系统 - FastDFS,使用纯C开发,执行效率非常高,能够解决大并发和分布式存储的问题,简洁高效,适合很多不想使用 Hadoop 或 MogileFS 的兄弟们值得尝试的一个分布式文件系统

 

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


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


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

 

FastDFS系统结构如下图所示:

08195_487b02ea16406_655_644_135_132.jpg


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


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


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

08195_487b030816241_445_285_135_86.jpg

 

                               FastDFS file upload

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

08195_487b0320124c5_445_285_135_86.jpg

 

                         FastDFS file download

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

 

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

点击此处下载源代码V1.0

官方网站:http://www.csource.org
项目网站:http://fastdfs.googlecode.com
代码下载:http://code.google.com/p/fastdfs/downloads/list

 

 

Fastdfs实战讲解

FastDFS是阿里公司推出的一款免费的文件管理系统,利用FastDFS可以有效的实现二进制资源文件的保存。同时利用此组件也可以轻松实现数据存储的扩充以及冗余备份机制。官方QQ群:612148723。
  • 2017年01月01日 20:30

分布式高并发高可用FastDFS文件服务器集群部署----

在搭建fastDFS文件系统时遇到一些问题,总结下来与大家一起分享。也可以给大家作为参考。FastDFS集群规划(一个IP对应一个服务器)VIP为对外访问入口Proxy-1/Proxy-2组成高可用的...
  • weixin_39506910
  • weixin_39506910
  • 2018-02-21 23:02:07
  • 46

分布式文件系统设计主要关注几个方面

分布式文件系统设计主要关注几个方面: 设计特点、分布式能力、性能、容灾、维护和扩展、成本   分布式文件系统主要关键技术: 全局名字空间、缓存一致性、安全性、可用性、可扩展性 ...
  • caoxiaohong1005
  • caoxiaohong1005
  • 2017-01-05 19:35:42
  • 2205

Spring+lucene+mybatis+FastDFS+memcached, maven web 开发 dependencies

maven Spring web开发jar 依赖坐标dependencies 1.7 UTF-8 UTF-8 4.1.6.RELEASE 4.12 2...
  • w597265467
  • w597265467
  • 2017-09-17 14:16:18
  • 235

Nginx+fastDFS-nginx-module+FastDFS配置分布式文件系统

简介 FastDFS是一个开源的轻量级的分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服...
  • ystyaoshengting
  • ystyaoshengting
  • 2015-09-14 14:49:07
  • 3252

Centos 7+FastDFS与Nginx的整合教程

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相...
  • a609733301
  • a609733301
  • 2017-03-27 20:04:50
  • 1903

FastDFS(1)5.12安装步骤

一、准备文件 fastdfs-master.zip libfastcommon-master.zip 二、编译安装依赖 $ unzip libfastcommon-master.zip $ c...
  • sz85850597
  • sz85850597
  • 2017-09-29 20:44:01
  • 393

FastDFS一个高效的分布式文件系统

 同事 happy_fish 最近开发了一个很强大,很快速的开源分布式文件系统 - FastDFS,使用纯C开发,执行效率非常高,能够解决大并发和分布式存储的问题,简洁高效,适合很多不想使用 Hado...
  • starxu85
  • starxu85
  • 2008-07-23 00:55:00
  • 2418

ChinaUnix中fastdfs论坛资料之FastDFS一个高效的分布式文件系统

fastdfs开源架构版本在ChinaUnix网站中的链接地址,版主就是fastdfs的作者 http://bbs.chinaunix.net/forum-240-8.html Fas...
  • ystyaoshengting
  • ystyaoshengting
  • 2015-12-22 15:13:19
  • 682

fastdfs图片服务器的搭建

什么是 FastDFS FastDFS 是用 c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制,充分 考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用...
  • u014695188
  • u014695188
  • 2016-06-04 00:42:47
  • 4133
收藏助手
不良信息举报
您举报文章:FastDFS一个高效的分布式文件系统
举报原因:
原因补充:

(最多只允许输入30个字)