`

[原创] 同事开发的高效的开源分布式文件系统: FastDFS

 
阅读更多

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

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

作者:happy_fish 时间:2008-07-15


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

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

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

分享到:
评论

相关推荐

    CentOS安装配置分布式文件系统-FastDFS5.11

    CentOS安装配置分布式文件系统-FastDFS5.11,本文详细介绍了CentOS安装配置分布式文件系统-FastDFS5.11的安装以及配置过程,非常全

    基于SpringBoot结合分布式文件系统FastDFS实现的文件上传实例demo,可拿来直接嵌入到自己的系统中

    基于SpringBoot结合分布式文件系统FastDFS实现的文件上传实例demo,可拿来直接嵌入到自己的系统中 文件上传后的路径: group1/M00/00/43/wKgCYVwhkTOAUxZ1AGf8LohRDBw966.jpg 解读: 一、组名:文件上传后所在...

    分布式文件系统FastDFS介绍

    FastDFS是一款轻量级的开源分布式文件系统,由纯C语言编写,适用于Linux、FreeBSD等UNIX系统环境。它并非一个通用的文件系统,而是专门为互联网应用设计,以解决大容量文件存储问题为目标,追求高性能和高扩展性。...

    分布式文件系统FastDFS架构剖析

    FastDFS是一个轻量级的开源分布式文件系统,由国人开发,特别适合以中小文件(如图片、文档等)为主的存储场景。FastDFS的主要设计目标是简单易用、高性能、高可用和高扩展性。 **FastDFS的核心特性** 1. **负载...

    07_搭建分布式文件系统_FASTDFS.docx

    FastDFS是一个开源的、轻量级的分布式文件系统,主要用于文件管理和文件访问。它由C语言编写,能够很好地支持大规模的数据存储需求,特别是在文件作为核心载体的应用场景中表现出色,例如图片分享平台、视频流媒体...

    开源分布式文件系统FastDFS和MogileFS - [Linux].docx

    《FastDFS与MogileFS:两种开源分布式文件系统的比较》 FastDFS和MogileFS都是开源的分布式文件系统,适用于处理大量文件存储和访问的场景,如图像分享网站和视频流媒体服务。这两种系统都设计有防止单点故障的机制...

    分布式文件系统FastDFS架构剖析及配置优化

    FastDFS是一款开源的轻量级分布式文件系统,由纯C语言编写而成,适用于Linux、FreeBSD等UNIX系统环境。它并非一个通用的文件系统,而是设计用于解决大规模互联网应用中的文件存储问题,特别强调高性能和高扩展性。...

    开源分布式文件系统 FastDFS.zip

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

    一款轻量级的开源分布式文件系统,功能包括:文件存储、文件同步、文件上传、文件下载等,解决了文件大容量存储和高性能访问问题

    FastDFS是一款专为互联网设计的轻量级开源分布式文件系统,它的主要目标是解决大容量文件存储和高并发访问的问题。作为一个高效的文件服务解决方案,FastDFS广泛应用于各种以文件为主要内容的应用场景,如图片分享...

    FastDFS分布式文件系统

    FastDFS是一款轻量级的开源分布式文件系统,它主要针对大容量文件存储和高并发访问的需求而设计。FastDFS能够实现文件的负载均衡,通过软件RAID的方式支持使用廉价的IDE硬盘进行存储,同时具备存储服务器在线扩容的...

    Laravel-fastdfs是分布式文件存储系统FastDFS的通用composer组件.zip

    Laravel-fastdfs是分布式文件存储系统FastDFS的通用composer组件,支持常见的php框架,如laravel,yii2,thinkphp5等. 软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、...

    分布式文件系统FastDFS技术整理.doc

    FastDFS分布式文件系统技术整理 1.1、了解基础概念 FastDFS是一种分布式文件系统,英文全称为Distributed File System,简称DFS。它可以是一个软件,也可以是一个服务器,类似于Tomcat服务器。该软件用于管理...

    开源分布式文件系统比较.pdf

    本篇主要对比分析了五个知名的开源分布式文件系统:CEPH、GlusterFS、MooseFS、MogileFS和FastDFS。 1. **CEPH**: Ceph是一款高性能的开源分布式存储系统,其核心特点在于其创新的CRUSH算法。CRUSH(Controlled ...

    【分布式文件系统】FastDFS配置参数详解-存储器配置(storage.conf)

    FastDFS是一款开源的分布式文件系统,广泛应用于互联网领域的文件存储场景。其核心设计思想在于解决大规模文件存储问题,具备高性能、高可靠性的特点。在FastDFS架构中,`storage.conf`配置文件主要负责定义存储节点...

    Laravelfastdfs是分布式文件存储系统FastDFS的通用composer组件

    FastDFS是一款开源的高性能、轻量级的分布式文件系统,它对文件进行管理,包括文件存储、文件同步、文件访问(文件上传、文件下载)等功能,解决了大容量存储和负载均衡的问题。FastDFS设计目标是纯文件存储,不提供...

    分布式文件系统 FastDFS 介绍PPT

    FastDFS 是一款开源的轻量级分布式文件系统,主要用于互联网应用场景,追求高性能与高扩展性。该系统采用纯 C 语言编写,支持 Linux 和 FreeBSD 等 UNIX 类操作系统,并且提供了 C、Java 和 PHP 的 API 接口,方便...

    分布式文件系统-FastDFS

    在centos7上实现fastdfs,一个tracker,一个storage,结合nginx进行显示

    分布式文件系统FastDFS搭建.pdf

    分布式文件系统FastDFS是一种用C语言编写、开源的分布式文件系统,专门为互联网应用量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,追求高可用和高性能的文件存储服务。FastDFS架构由Tracker服务器和...

    【分布式文件系统】FastDFS配置参数详解-客户端配置(client.conf)

    FastDFS是一款开源的分布式文件系统,主要用于海量文件存储与管理场景。本文档将详细介绍FastDFS客户端配置文件(client.conf)中的各项配置参数及其含义,帮助用户更好地理解和配置FastDFS系统。 #### 二、配置参数...

Global site tag (gtag.js) - Google Analytics