设计理念
轻量级
Tracker Server 核心功能是管理 Storage Server 的分组和状态信息,仅将这些关键信息缓存在内存中。
分块存储
FastDFS 采用分组存储方式,集群由一个或者多个组构成。
- 一个组由一台或者多台存储服务器组成
- 同组内多台 Storage Server 之间是对等的互备关系
对等结构
Tracker Server 可以部署多台实例,节点之间完全对等,没有主从之分。
功能原理
文件上传
- 客户端首先连接到 Tracker Server 获取可用的 Storage Server 地址
- 客户端直接与指定的 Storage Server 建立连接并上传文件数据
- Storage Server 为文件分配存储路径,生成唯一的文件ID
文件ID格式
文件ID采用”组名/两级目录结构/文件名”的格式:
group1/M00/00/01/wKjHhGZxHr-ACpFXAAABg7VdQ7U123.jpg
storage 同步原理
每个 storage 写文件后,同时会写一篇 binlog,storage 会记录向 group 内其他的 storage 同步的进度。