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

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

被折叠的 条评论
为什么被折叠?



