高可用fastdfs集群部署

本文详细介绍FastDFS分布式文件系统的集群部署步骤,涵盖tracker、storage的配置,nginx和fastdfs-nginx-module的安装,以及通过keepalived和haproxy实现的负载均衡方案。

1 介绍

1.1 fastdfs概述
FastDFS 是余庆老师开发的一个开源的高性能分布式文件系统(DFS)。 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。
FastDFS 系统有三个角色:跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)。
1.2 模块介绍
Tracker Server: 跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的storage server和group,每个storage在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳。多个Tracker之间是对等关系,不存在单点故障。
Storage Server: 存储服务器,主要提供容量和备份服务;以 group 为单位,每个 group 内可以有多台 storage server,组内的storage server上的数据互为备份。
Client:客户端,上传下载数据的服务器
模块关系:
在这里插入图片描述
下图是实现统一的对外下载访问入口的高可用架构,其中所有的Nginx只做下载用途,上传通过tracker进行上传
在这里插入图片描述

2 fastdfs集群部署

2.1 部署架构设计
在这里插入图片描述
2.2 部署环境规划
操作系统centos7.7
软件版本:

fastdfs-5.12.tar.gz
libfastcommon-1.0.43.tar.gz
fastdfs-nginx-module-1.20.tar.gz
nginx-1.12.2.tar.gz

PS 同一个group里面的两台服务器互为冗余备份,水平扩展group的数量就可以增加整个fastdfs集群的容量

建议架构如下,机器数量不够可以复用。
在这里插入图片描述
2.3 公共模块libfastcommon 安装
在所有的tracker以及storage的机器都需要安装
2.3.1 安装依赖包

yum -y install gcc \
automake \
autoconf \
libtool \
make \
gcc-c++ \
pcre* \
zlib \
openssl \
openssl-devel

2.3.2 编译安装
上传并解压tar -zxvf libfastcommon-1.0.43.tar.gz
在每一台服务器上,解压libfastcommon,进入libfastcommon目录执行

./make.sh
./make.sh install

安装成功后,可以看到libfastcommon.so安装到了/usr/lib64/libfastcommon.so
2.3.2 创建软连接

ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

注:此时libfdfsclient.so文件还未生成,先创建软
2.4 tracker集群安装
两台tracker配置完全一样
2.4.1 安装tracker
在 192.168.2.52,192.168.2.53上面安装FastDFS使用FastDFS_V5.X.tar.gz

tar -zxvf fastdfs-5.12.tar.gz

运行make.sh,确认make成功。期间如果有错误,可能会是缺少依赖的软件包,需安装后再次make。
运行make.sh install,确认install成功。
至此tracker安装完成
2.4.2 修改配置文件
编辑/etc/fdfs目录下的tracker.conf,设置相关信息并保存。

cp tracker.conf.sample tracker.conf

一般只需改动以下几个参数即可:

disabled=false            #false表示有效启用配置文件
port=22122                #设置tracker的端口号
 后面为绑定的IP地址 (经常使用于服务器有多个IP但仅仅希望一个IP提供服务)。
假设不填则表示全部的(一般不填就OK)
bind_addr=
#base_path 文件夹地址(根文件夹必须存在,子文件夹会自己主动创建)
base_path=/data/fastdfs/tracker   #设置tracker的数据文件和日志目录根目录
(需预先创建)
#0: round robin  轮询的上传,交替上传数据
#1: specify group  指定group进行上传
#2: load balance, select the max free space 
group to upload file平衡的去上传,尽量平衡各个节点的容量,默认就是2
store_lookup=2
#which group to upload file
#when store_lookup set to 1, must set store_group to the group name
store_group=group2 #当store_lookup设置成1的时候,这个参数才有效
http.server_port=8080     #设置http端口号
如需要进行性能调优,可以参照附录的配置文件的详细说明

2.4.3 配置启动
在运行tracker之前,先把防火墙对应的端口打开

firewall-cmd --zone=public --add-port=22122/tcp --permanent
firewall-cmd --reload
vim /usr/lib/systemd/system/fastdfs-tracker.service
[Unit]
Description=The FastDFS File server
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
ExecStart=/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
ExecStop=/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf stop
ExecRestart=/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
Restart=on-failure
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable fastdfs-tracker.service
systemctl start fastdfs-tracker.service
netstat -unltp | grep fdfs #查看服务是否启动,端口是否打开

2.4.4 验证
netstat -tulnp #查看服务是否启动,端口是否打开
查看日志有误报错信息

cat /data/fastdfs/tracker/logs/trackerd.log

2.5 storage集群安装
2.5.1 storage安装
首先再fastdfs5 fastdfs6 fastdfs7,fastdfs8 安装FastDFS storage,使用FastDFS_V5.X.tar.gz源代码包。
运行make.sh,确认make成功。期间如果有错误,可能会是缺少依赖的软件包,需安装后再次make。
运行make.sh install,确认install成功。
其实就是上面安装tracker 一样的,两个是在一起的。同时都会安装完成。只是扮演角色
2.5.2 配置group1

vim /etc/fdfs/storage.conf
#在192.168.2.54 以及192.168.2.55上配置
 
#一般只需改动以下几个参数即可:
disabled=false                    #启用配置文件
group_name=group1  #第一组为group1,第二组为group2   
port=23000      #设置storage的端口号
base_path=/data/fastdfs/storage       
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值