FastDFS:高效的轻量级的分布式文件系统,可以进行各种文件上传,删除,下载,追加等操作,适合以文件为载体的在线服务。
FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。
存储节点存储文件,完成文件管理的所有功能:存储、同步和提供存取接口,FastDFS同时对文件的metadata进行管理。所谓文件的meta data就是文件的相关属性,以键值对(key valuepair)方式表示,如:width=1024,其中的key为width,value为1024。文件metadata是文件属性列表,可以包含多个键值对。
跟踪器和存储节点都可以由一台或多台服务器构成。跟踪器和存储节点中的服务器均可以随时增加或下线而不会影响线上服务。其中跟踪器中的所有服务器都是对等的,可以根据服务器的压力情况随时增加或减少。
FastDFS系统结构如下图所示:
FastDFS中的文件标识分为两个部分:卷名和文件名,二者缺一不可。
上传文件交互过程:
1. client询问tracker上传到的storage,不需要附加参数;
2. tracker返回一台可用的storage;
3. client直接和storage通讯完成文件上传。
下载文件交互过程:
1. client询问tracker下载文件的storage,参数为文件标识(卷名和文件名);
2. tracker返回一台可用的storage;
3. client直接和storage通讯完成文件下载。
需要说明的是,client为使用FastDFS服务的调用方,client也应该是一台服务器,它对tracker和storage的调用均为服务器间的调用。
FastDFS服务器启动方法(cd /usr/local/bin):
tracker:./fdfs_trackerd /etc/fdfs/tracker.conf
storage:./fdfs_storaged /etc/fdfs/storage.conf
客户端可以是自己写的程序。
将上传到FastDFS中的文件信息存储在mysq中:
mysql服务器启动方法:
sudo /etc/init.d/mysql start
客户端启动方法:
sudo /usr/local/mysql/bin/mysql -uroot -p
FastDFS系统结构如下图所示:
![](http://cn.yimg.com/ncp28/content/08195_487b02ea16406_655_644_135_132.jpg)
FastDFS中的文件标识分为两个部分:卷名和文件名,二者缺一不可。
上传文件交互过程:
1. client询问tracker上传到的storage,不需要附加参数;
2. tracker返回一台可用的storage;
3. client直接和storage通讯完成文件上传。
下载文件交互过程:
1. client询问tracker下载文件的storage,参数为文件标识(卷名和文件名);
2. tracker返回一台可用的storage;
3. client直接和storage通讯完成文件下载。
需要说明的是,client为使用FastDFS服务的调用方,client也应该是一台服务器,它对tracker和storage的调用均为服务器间的调用。
FastDFS服务器启动方法(cd /usr/local/bin):
tracker:./fdfs_trackerd /etc/fdfs/tracker.conf
storage:./fdfs_storaged /etc/fdfs/storage.conf
客户端可以是自己写的程序。
将上传到FastDFS中的文件信息存储在mysq中:
mysql服务器启动方法:
sudo /etc/init.d/mysql start
客户端启动方法:
sudo /usr/local/mysql/bin/mysql -uroot -p