设计理念

轻量级

Tracker Server 核心功能是管理 Storage Server 的分组和状态信息,仅将这些关键信息缓存在内存中。

分块存储

FastDFS 采用分组存储方式,集群由一个或者多个组构成。

  • 一个组由一台或者多台存储服务器组成
  • 同组内多台 Storage Server 之间是对等的互备关系

对等结构

Tracker Server 可以部署多台实例,节点之间完全对等,没有主从之分。

功能原理

文件上传

  1. 客户端首先连接到 Tracker Server 获取可用的 Storage Server 地址
  2. 客户端直接与指定的 Storage Server 建立连接并上传文件数据
  3. Storage Server 为文件分配存储路径,生成唯一的文件ID

文件ID格式

文件ID采用”组名/两级目录结构/文件名”的格式:

group1/M00/00/01/wKjHhGZxHr-ACpFXAAABg7VdQ7U123.jpg

storage 同步原理

每个 storage 写文件后,同时会写一篇 binlog,storage 会记录向 group 内其他的 storage 同步的进度。