tracker server是FastDFS文件系统的协调者,其主要作用是负载均衡和调度。Tracker server在内存中记录分组和Storage server的状态等信息,
不记录文件索引信息,占用的内存量很少。另外,客户端(应用)和Storage server访问Tracker server时,Tracker server扫描内存中的分组和
Storage server信息,然后给出应答。由此可以看出Tracker server非常轻量化,不会成为系统瓶颈。
FastDFS集群中的Tracker server可以有多台,Tracker server和Storage server均不存在单点问题。Tracker server之间是对等关系,组内的
Storage server之间也是对等关系。传统的Master-Slave结构中的Master是单点,写操作仅针对Master。如果Master失效,需要将Slave提升为Master,
实现逻辑会比较复杂。和Master-Slave结构相比,对等结构中所有结点的地位是相同的,每个结点都是Master,不存在单点问题。
FastDFS系统结构
从上图中可以看出,Tracker server之间相互独立,不存在直接联系。每次客户端client不管是上传、下载还是删除,首先
都要请求Tracker server,Tracker server通过负载均衡返回指定组类的最优的Storage server,然后后client再调用Storage
server进行上传、下载和删除功能。
在fastdfs系统中,客户端clinet和Storage server主动连接Tracker server。Storage server主动向Tracker server报告其状态信息,包括磁盘剩
余空间、文件同步状况、文件上传下载次数等统计信息。Storage server会连接整个集群中所有的Tracker server,向他们报告自己的状态。
Storage server启动一个单独的线程来完成对一台Tracker server的连接和定时报告。需要特别说明的是,一个组包含的Storage server不是通
过配置文件设定的,而是通过Tracker server获取到的。
从
上面的描述我们可以看出
Tracker server
是整个系统的调度者和负载均衡者,同时也收集各个组的健康状态。它很像nginx+keeplive的集
合体,有了
Tracker server
使得整个fastdfs系统性能更优,健壮性也更强。所以它在整个系统中是非常重要的。
注
:部分描述参考网上相关资料