FastDFS概述
- 阿里巴巴开源的一套轻量级,天生就是分布式设计的文件系统
- FastDFS的源代码由C语言开发,目前可运行在Linux,FreeBSD,Unix等类操作系统上
- FastDFS解决了大数据量文件存储
- 适合存储4KB~500MB之间的小文件,如图片网站、短视频网站、文档、app下载站等。
FastDFS主要特性
- 为互联网量身定制,海量数据文件存储
- 高可用(同组备份机制)
- FastDFS不是通用的文件系统,只能通过api来访问,目前提供c,java,php客户端。phtyon由第三方开发者提供
- FastDFS可以看作是基于key/value pair存储系统,也许称为分布式文件存储服务更合适。
- 支持高并发(这个好像没体现出支持什么高并发,这个是nginx的功劳吧)
主要用户
京东 ,UC ,支付宝
FastDFS提供的功能
- upload 上传文件
- download 下载文件
- delete 删除文件
- append:在已有文件后追加内容
- set_metadata:设置文件附加属性
- get_metadata:获取文件附加属性
FastDFS 两个角色
1 - 跟踪器
跟踪器主要做调度工作,在访问上负载均衡的作用
2 - 存储节点
1.存储节点存储文件,完成文件管理的所有功能,
2.FastDFS 同时对文件的 metadata 进行管理,
3.metadata: 就是文件的相关属性,以建值对(key value)方式表示
4.比如: width = 1024 (width是key 1024是value)
跟踪器和存储节点
1.跟踪器和存储节点 都可以有多台服务器构成,两个角色可以随时增加或者下线
2.而不会影响线上服务,可以根据服务器的压力情况增加,减小
分卷(分组)
1.为了支持大容量,存储节点(服务器)用了分卷(分组),的组织方式
2.存储系统由一个或者多个卷组成,卷与卷之间的文件相互独立,
3.所有卷的文件容量 累加 就是 整个系统的容量
4.一个卷可以由一台或者多台存服务器组成
FastDFS 中的文件表示名 分为两个不分 : 卷名 和 文件名 (两个缺-不可)
架构图
FastDFS 结构
- 发送文件 通过追踪器分配节点
- 获取时 直接节点中获取
上传文件
下载图片
术语
TracKerServer
跟踪服务器:主要做调度工作,在访问上负载均衡的作用
Storage Server
存储服务器 : 文件和meta data 都保存到 存储服务器上
grop
组:为称为卷。同组内服务器上的文件是完全相同的
文件标识
包括两部分: 组名和文件名 (包含路径)
meta data
文件相关属性,键值对方式