FastDFS 介绍
一、介绍
- FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
- FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
- FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。
- 跟踪器主要做调度工作,在访问上起负载均衡的作用。
- 存储节点存储文件,完成文件管理的所有功能:就是这样的存储、同步和提供存取接口,FastDFS同时对文件的metadata进行管理。
- 跟踪器和存储节点都可以由一台或多台服务器构成。跟踪器和存储节点中的服务器均可以随时增加或下线而不会影响线上服务。其中跟踪器中的所有服务器都是对等的,可以根据服务器的压力情况随时增加或减少。
- 当存储空间不足或即将耗尽时,可以动态添加卷。只需要增加一台或多台服务器,并将它们配置为一个新的卷,这样就扩大了存储系统的容量。
- FastDFS 系统有三个角色:跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)。
- Tracker Server:跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的 storage server和 group,每个 storage 在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳。
- Storage Server:存储服务器,主要提供容量和备份服务;以 group 为单位,每个 group 内可以有多台 storage server,数据互为备份。
- Client:客户端,上传下载数据的服务器,也就是我们自己的项目所部署在的服务器。
二、交互过程
- 上传的交互过程
- client询问tracker上传到的storage,不需要附加参数;
- tracker返回一台可用的storage;
- client直接和storage通讯完成文件上传。
- 下载的交互过程
- client询问tracker下载文件的storage,参数为文件标识(卷名和文件名);
- tracker返回一台可用的storage;
- client直接和storage通讯完成文件下载。
三、安装
- 注意修改IP
# 如果已经安装,需要先停止,再删除
[root@localhost ~]# docker ps -a
[root@localhost ~]# docker stop storage
storage
[root@localhost ~]# docker rm storage
storage
[root@localhost ~]# docker stop tracker
tracker
[root@localhost ~]# docker rm tracker
tracker
# 运行tracker
[root@localhost ~]# docker run -d --name tracker --net=host docker.io/morunchang/fastdfs sh tracker.sh
# 运行storage
[root@localhost ~]# docker run -d --name storage --net=host -e TRACKER_IP=192.168.120.132:22122 -e GROUP_NAME=group1 docker.io/morunchang/fastdfs sh storage.sh
# 使用的网络模式是--net=host
# TRACKER_IP 是宿主机IP
# group1 是组名,如果想要新增服务器,可以重复执行该命令,记得修改组名和IP
# 修改容器总是随着docker重启
[root@localhost ~]# docker update --restart=always tracker
tracker
[root@localhost ~]# docker update --restart=always storage
storage
# 这个配置文件可以看出8080端口被占用了,且访问的地址
root@localhost:/# cat /etc/nginx/conf/nginx.conf
location ~ /M00 {
root /data/fast_data/data;
ngx_fastdfs_module;
}
世界上没有什么事情是跑步解决不了的,如果有,那就再跑一会!