一、FastDFS 简介
FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。
存储节点存储文件,完成文件管理的所有功能:就是这样的存储、同步和提供存取接口,FastDFS同时对文件的metadata进行管理。所谓文件的meta data就是文件的相关属性,以键值对(key valuepair)方式表示,如:width=1024,其中的key为width,value为1024。文件metadata是文件属性列表,可以包含多个键值对。
二、FastDFS 存储策略
为了支持大容量,存储节点(服务器)采用了分卷(或分组)的组织方式。存储系统由一个或多个卷组成,卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容量。一个卷可以由一台或多台存储服务器组成,一个卷下的存储服务器中的文件都是相同的,卷中的多台存储服务器起到了冗余备份和负载均衡的作用。
在卷中增加服务器时,同步已有的文件由系统自动完成,同步完成后,系统自动将新增服务器切换到线上提供服务。当存储空间不足或即将耗尽时,可以动态添加卷。只需要增加一台或多台服务器,并将它们配置为一个新的卷,这样就扩大了存储系统的容量。
三、docker 安装 fastdfs
1. 查找Docker Hub上的fastdfs镜像
执行命令:docker search fastdfs
2.拉取镜像
执行命令:docker pull delron/fastdfs #拉取最新版本
3.查看镜像
执行命令: docker images
4.使用docker镜像构建tracker容器
docker run -dti --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs -v /etc/localtime:/etc/localtime delron/fastdfs tracker
我们将fastDFS tracker运行目录映射到本机的 /var/fdfs/tracker 目录中。
5.使用docker镜像构建storage容器
docker run -dti --network=host --name storage -e TRACKER_SERVER=192.168.1.109:22122 -v /var/fdfs/storage:/var/fdfs -v /etc/localtime:/etc/localtime delron/fastdfs storage
TRACKER_SERVER=本机的ip地址:22122
注:本机ip地址不要使用127.0.0.1
6.storage.conf 修改配置文件
进入storage容器,执行命令:
docker exec -it storage bash
到storage配置文件的 /etc/fdfs 目录下,如图所示:
执行命令: vi storage.conf 配置本机IP地址。
配置http访问的端口:
7. 修改client.conf 配置文件
执行命令:vi client.conf
8.退出容器
执行命令:
exit
9.重启 容器
执行命令:docker restart 容器id
10.错误问题
1. 报错:getStoreStorage fail, errno code :2
这个问题的原因主要有两个
- storage 服务器未启动或启动异常
- 配置文件 storage.conf 中,IP信息错误(多数是因为这个)
解决问题:查看ip是否正确,同时重启配置,执行命令:
/etc/init.d/fdfs_storaged restart #重启 storage 服务