FastDFS概述

FastDFS是什么

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

–类google FS,不是通用的文件系统,只能通过专有API访问,目前提供了C、Java和PHP API
–纯C实现,支持Linux、FreeBSD等UNIX系统
–FastDFS可以看做是基于文件的key value pair存储系统,称作分布式文件存储服务更为合适
–为互联网应用量身定做,解决大容量文件存储问题,追求高性能和高扩展性

FastDFS架构示意图

FastDFS架构解读

•只有两个角色,tracker server和storageserver,不需要存储文件索引信息
•所有服务器都是对等的,不存在Master-Slave关系
•存储服务器采用分组方式,同组内存储服务器上的文件完全相同(RAID 1)
•不同组的storage server之间不会相互通信
•由storage server主动向trackerserver报告状态信息,tracker server之间通常不会相互通信


FastDFS提供的API

•upload:上传普通文件,包括主文件
•upload_appender:上传appender文件,后续可以对其进行append、modify和truncate操作
•upload_slave:上传从文件
•download:下载文件
•delete:删除文件
•append:在appender文件后追加内容
•modify:appender文件修改
•set_metadata:设置文件附加属性
•get_metadata:获取文件附加属性

FastDFS主要操作流程

FastDFS上传文件流程图

1. client询问tracker上传到的storage

2. tracker返回一台可用的storage

3. client直接和storage通信完成文件上传,storage返回文件ID


FastDFS下载文件流程图

1. client询问tracker可以下载指定文件的storage,参数为文件ID(组名和文件名);

2. tracker返回一台可用的storage

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



FastDFS的特点


•不需要传统的name server
•分组存储,灵活简单
•对等结构,不存在单点
•和流行的web server无缝衔接
•中小型文件均可以很好支持,支持海量小文件存储
•支持多块磁盘,支持单盘数据恢复
•支持相同文件内容只保存一份,节省空间

FastDFS同步机制

•采用binlog文件记录文件上传、删除等操作,根据binlog进行文件同步
•binlog中只记录文件名,不记录文件内容
•增量同步方式,记录已同步的位置到.mark文件中
•同组内的storage server之间是对等的,文件上传、删除等操作可以在任意一台storage server上进行
•文件同步只在同组内的storage server之间进行,采用push方式,即源头服务器同步给目标服务器

FastDFS如何做到无索引服务器?

•上传文件时,文件ID由storageserver生成并返回给client
•文件ID包含了组名和文件名,storage server可以直接根据该文件名定位到文件
•一个文件ID示例:



已知使用FastDFS的用户




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值