FastDFS分布式文件管理系统

1 FastDFS

1.1 FastDFS简介

FastDFS是一个开源的轻量级[分布式文件系统],它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

1.1.1 FastDFS体系结构

FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

FastDFS 架构包括 Tracker server 和 Storage server。客户端请求 Tracker server 进行文件上传、下载,通过Tracker server 调度最终由 Storage server 完成文件上传和下载。

Tracker server 作用是负载均衡和调度,通过 Tracker server 在文件上传时可以根据一些策略找到Storage server 提供文件上传服务。可以将 tracker 称为追踪服务器或调度服务器。Storage server 作用是文件存储,客户端上传的文件最终存储在 Storage 服务器上,Storageserver 没有实现自己的文件系统而是利用操作系统的文件系统来管理文件。可以将storage称为存储服务器。
2.1两个重要组件
Tracker -负载均衡,控制中心(注册中心)
Storage -文件上传 文件下载 文件删除 文件修改.
在这里插入图片描述
在这里插入图片描述
2.2上传流程
在这里插入图片描述

上传的流程就是:
1.当用户点击请求上传
2.请求转发到tracker
3.tracker请求到 Storage
4.Storage找正空闲的组
5.找到空闲的组后 返回 trackerIP地址 端口号
6.用户在上传到返回的指定组中去

注意:上图分别是集群和主从备份的意思

3.FastDFS的安装

在这里 我是基于docker自动拉取安装的
拉取fastdfs

 docker pull morunchang/fastdfs

在这里插入图片描述

启动:tracker

docker run -d --name tracker --net=host morunchang/fastdfs sh tracker.sh

启动:storage

docker run -d --name storage --net=host -e TRACKER_IP=192.168.1.7:22 -e GROUP_NAME=group1 morunchang/fastdfs sh storage.sh
使用的网络模式是–net=host, 192.168.1.7是宿主机的IP
group1是组名,即storage的组
如果想要增加新的storage服务器,再次运行该命令,注意更换 新组名

配置Nginx

Nginx在这里主要提供对FastDFS图片访问的支持,Docker容器中已经集成了Nginx,我们需要修改nginx的配置,进入storage的容器内部,修改nginx.conf

docker exec -it storage  /bin/bash

进入后

vi /etc/nginx/conf/nginx.conf

添加以下内容

location ~ /M00 {
     root /data/fast_data/data;
     ngx_fastdfs_module;
}

禁止缓存:

add_header Cache-Control no-store;

退出容器

exit

重启storage容器

docker restart storage

查看启动容器

docker ps

9f2391f73d97 morunchang/fastdfs “sh storage.sh” 12 minutes ago Up 12 seconds storage
e22a3c7f95ea morunchang/fastdfs “sh tracker.sh” 13 minutes ago Up 13 minutes tracker

开启启动设置

docker update --restart=always tracker
docker update --restart=always storage
发布了76 篇原创文章 · 获赞 9 · 访问量 6755

猜你喜欢

转载自blog.csdn.net/qq_37870369/article/details/104751793