首页 > 运维 > FastDFS > FastDFS高可用集群架构配置搭建
2019
12-10

FastDFS高可用集群架构配置搭建

一、基本模块及高可用架构

FastDFS 是余庆老师开发的一个开源的高性能分布式文件系统(DFS)。 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。 
FastDFS 系统有三个角色:跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)。

  • Tracker Server: 跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的storage server和group,每个storage在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳。多个Tracker之间是对等关系,不存在单点故障。
  • Storage Server: 存储服务器,主要提供容量和备份服务;以 group 为单位,每个 group 内可以有多台 storage server,组内的storage server上的数据互为备份。
  • Client:客户端,上传下载数据的服务器 
    模块之间的主要关系如下: 

二、环境准备工作

说明:本人使用的是docker 我先将所有基础软件安装到一个空白系统里,然后提交为一个基础镜像,然后以这个基础镜像为基本,启动多个容器来完成的此次试验

首先来配置2个Tracker机器

1.安装编译环境

2. 安装libfastcommon

3. 安装FastDFS

因为FastDFS服务脚本设置的bin目录是/usr/local/bin,但实际命令安装在/usr/bin,可以进入/user/bin目录使用以下命令查看fdfs的相关命令:

复制FastDFS跟踪器样例配置文件,并重命名
防火墙中打开跟踪器端口(默认为22122):
启动Tracker:
关闭Tracker:
启动后不报错为正常
设置FastDFS跟踪器开机启动:

到此trackerd机器配置完成,另一台trackerd机器也相同配置就好。

——————————————fastDFS存储配置—————————————

三、配置FastDFS存储 ( 接下来配置storage 存储节点。)

继续接以tracker配置继续配置storage(你可以把上面的tracker打包成一个镜像,然后启动,在他的基础上继续配置storage,也可以把storage配置完后再打包成镜像,然后启动各自使用各自功能就好,当然你也可以新开一台机器,再次安装FastDFS然后再配置storage)

复制FastDFS存储器样例配置文件,并重命名:
创建基础数据目录(参考基础目录base_path配置):
防火墙中打开存储器端口(默认为23000):
启动Storage:

配置完storage后,我把当前配置打包成docker镜像,分别启动2台作为tracker,并启动tracker服务,然后再分别启动4台作为storage并启动storage服务

于是当前我相当于有了6台服务器,2个tracker服务器,4台storage服务器

设置FastDFS(storage)存储器开机启动:

所有Storage节点都启动之后,可以在任意Storage节点上使用如下命令查看集群信息:

四.文件上传测试 (注意是在Tracker服务器中进行测试)

修改Tracker服务器中的客户端配置文件(2台都配置下):
执行如下文件上传命令

因为采用的是轮询算法。所以group1 和 group2 会轮流。 如果group1组里有2个节点那么这2个节点的storage中文件时保持一致的。

关于tracker轮询算法修改:

tarcker文件详细解析:

如此说明已经上传成功了

可以看到group1组内2个节点文件是相同的
group2组内2个节点的文件是相同的
给各个存储节点(storaged)安装nginx的 fastdfs-nginx-module

nginx源码安装过程看这里 这里不赘述了

fastdfs-nginx-module作用说明
上传fastdfs-nginx-module_v1.20.tar.gz到/usr/local/src
修改fastdfs-nginx-module的config配置文件

/usr/local/src/fastdfs-nginx-module/src/config 完整配置

编译安装Nginx(添加fastdfs-nginx-module模块 )
安装成功
复制fastdfs-nginx-module源码中的配置文件到/etc/fdfs目录,并修改

第一组Storage的mod_fastdfs.conf修改配置如下:

使用scp 命令将这个修改的配置文件复制到其他节点上
命令:scp mod_fastdfs.conf ip:/etc/fdfs/

在/fastdfs/storage文件存储目录下创建软连接,将其链接到实际存放数据的目录(4台机器都要执行)
配置Nginx,简洁版nginx配置样例:
启动Nginx(4台机器都要启动,最好设置成开机启动)
启动或者重启nginx
重启看到这个说明重启成功了(我只有2台机器)
防火墙中打开Nginx的8081端口

再次在tracker跟踪机上client上传个文件

在storage机器通过下载访问测试时上传的文件(自行测试)

———————————————————————————————————

在跟踪器Tracker(172.18.0.4、172.18.0.5)上安装Nginxngx_cache_purge(2台都要安装)

在跟踪器tracker上安装的nginx主要为了提供http访问的反向代理、负载均衡以及缓存服务。

配置Nginx,设置负载均衡以及缓存

正常启动后会发现有 cache manager这个进程,worker进程是另一个模块的不用看
系统防火墙打开对应的端口
启动Nginx

文件访问测试

五:使用Keepalived + Nginx组成的高可用负载均衡集群做两个Tracker节点中Nginx的负载均衡(172.18.0.2,172.18.0.3)

关于keepalived+nginx的安装 请看这里 传送门

在Keepalived+Nginx实现高可用负载均衡集群中配置Tracker节点中Nginx的负载均衡反向代理(172.18.0.2和172.18.0.3中的Nginx执行相同的配置,你也可以装在tracker机器上都行)

vim /usr/local/nginx/conf/nginx.conf

重启172.18.0.2和 172.18.0.3的Nginx
下载成功

到此整个过程已完结,整个配置起来要细心。不是很难,但是不能马虎。

最后编辑:
作者:shooter
这个作者貌似有点懒,什么都没有留下。