FastDFS简介及入门

1、fastDFS简介

FastDFS是一个轻量级的开源分布式文件系统

FastDFS主要解决了大容量的文件存储和高并发访问的问题,文件存取时实现了负载均衡

FastDFS实现了软件方式的RAID,可以使用廉价的IDE硬盘进行存储 支持存储服务器在线扩容 支持相同内容的文件只保存一份,节约磁盘空间

FastDFS只能通过Client API访问,不支持POSIX访问方式

FastDFS特别适合大中型网站使用,用来存储资源文件(如:图片、文档、音频、视频等等)

2、系统架构

只有两部分:tracker和storage

3、文件上传下载

文件上传:

1. client询问tracker上传到的storage,不需要附加参数;

 2. tracker返回一台可用的storage;

 3. client直接和storage通讯完成文件上传

文件下载:

1. client询问tracker下载文件的storage,参数为文件标识(组名和文件名);

 2. tracker返回一台可用的storage;

 3. client直接和storage通讯完成文件下载

4、相关术语

Tracker Server:跟踪服务器,主要做调度工作,在访问上起负载均衡的作用。记录storage server的状态,是连接Client和Storage server的枢纽。  

Storage Server:存储服务器,文件和meta data都保存到存储服务器上  

group:组,也可称为卷。同组内服务器上的文件是完全相同的  文件标识:包括两部分:组名和文件名(包含路径)

 meta data:文件相关属性,键值对(Key Value Pair)方式,如:width=1024,heigth=768

5、数据同步机制

同一组内的storage server之间是对等的,文件上传、删除等操作可以在任意一台storage server上进行;

文件同步只在同组内的storage server之间进行,采用push方式,即源服务器同步给目标服务器;

源头数据才需要同步,备份数据不需要再次同步,否则就构成环路了;

上述第二条规则有个例外,就是新增加一台storage server时,由已有的一台storage server将已有的所有数据(包括源头数据和备份数据)同步给该新增服务器

6、通信协议

 协议包由两部分组成:

header和body  header共10字节,格式如下:

  8 bytes body length

  1 byte command  

  1 byte status

 body数据包格式由取决于具体的命令,body可以为空

7、目录结构

tracker目录:

storage目录:

8、存储方式对比

FastDFS与mogileFS对比:

 

指标

FastDFS

mogileFS

系统简洁性

简洁

只有两个角色:tracker和storage

一般

有三个角色:tracker、storage和存储文件信息的mysql db

系统性能

很高(没有使用数据库,文件同步直接点对点,不经过tracker中转)

高(使用mysql来存储文件索引等信息,文件同步通过tracker调度和中转)

系统稳定性

高(C语言开发,可以支持高并发和高负载)

一般(Perl语言开发,高并发和高负载支持一般)

RAID方式

分组(组内冗余),灵活性较大

动态冗余,灵活性一般

通信协议

专有协议

下载文件支持HTTP

HTTP

技术文档

较详细

较少

文件附加属性(meta data)

支持

不支持

相同内容文件只保存一份

支持

不支持

下载文件时支持文件偏移量

支持

不支持

指标

FastDFS

NFS

集中存储设备

如NetApp、NAS

线性扩容性

文件高并发访问性能

一般

文件访问方式

专有API

POSIX

支持POSIX

硬件成本

较低

中等

相同内容文件只保存一份

支持

不支持

不支持

拓展:

各种分布式文件系统简介及适用场景:https://blog.csdn.net/rickiyeat/article/details/53895987

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值