fastdfs集群部署
参考链接:https://www.cnblogs.com/penngke/p/15396701.html
部署架构如下:
部署规划
2台主机,数据存储节点共1个group组,每个组里面有2个storage节点互为主备,这样就能保证一定高可用。角色分配如下:
ps:之前准备利用3台服务器分三组多实例部署,fastdfs不支持同角色多实例部署。
ip地址 角色1 角色2 192.168.0.77 Tracker1 Storage-group1-1 192.168.0.89 Tracker2 Storage-group1-2
数据路径:/data/fastdfs/
安装步骤
- 2台主机上分别先安装依赖
yum install make cmake gcc gcc-c++ -y
- 下载fastdfs软件包: 依赖包libfastcommon链接:https://github.com/happyfish100/libfastcommon/releases FastDFS包链接:https://github.com/happyfish100/fastdfs/releases 下载命令:
wget https://codeload.github.com/happyfish100/libfastcommon/tar.gz/refs/tags/V1.0.53 -O /opt/libfastcommon-1.0.53.tar.gz
wget https://codeload.github.com/happyfish100/fastdfs/tar.gz/refs/tags/V6.07 -O /opt/fastdfs-6.07.tar.gz
- 安装libfastcommon
cd /opt
tar -zxvf libfastcommon-1.0.53.tar.gz
cd libfastcommon-1.0.53/
./make.sh
./make.sh install
等待安装完成。
4. 安装fastdfs
cd /opt
tar -zxvf fastdfs-6.07.tar.gz
cd fastdfs-6.07/
./make.sh
./make.sh install
等待安装完成
5. 配置2台主机上的trcker服务
#1. 复制配置文件
cd /etc/fdfs/
cp tracker.conf.sample tracker.conf
vim tracker.conf
#修改如下内容:
配置文件是否不生效,false 为生效
disabled=false
提供服务的端口
port=22122
Tracker 数据和日志目录地址(根目录必须存在,子目录会自动创建)
base_path=/data/fastdfs/tracker
HTTP 服务端口 默认8080 ,
http.server_port=8080 #这端口没什么用,4以上版本已经不在启动网络服务了
bind_addr = 192.168.0.77 #2台独自改为自己ip
创建tracker的数据和日志目录: mkdir -p /data/fastdfs/tracker
6. 启动2台的tracker服务
service fdfs_trackerd start
/sbin/chkconfig fdfs_trackerd on
检查端口22122是否存在: netstat -tunlp | grep 22122
7. 配置2台主机上storage服务
#1. 复制配置文件
cd /etc/fdfs/
cp storage.conf.sample storage.conf
vim storage.conf
#修改以下内容
Storage 数据和日志目录地址(根目录必须存在,子目录会自动生成) (注 :这里不是上传的文件存放的地址,之前版本是的,在某个版本后更改了)
base_path=/data/fastdfs/storage
逐一配置 store_path_count 个路径,索引号基于 0。
如果不配置 store_path0,那它就和 base_path 对应的路径一样。
store_path0=/data/fastdfs/storage_data/
group_name = group1 #由于我只有1个组,只需配置一个,storage配置相同的group_name则代表同一组,互相互为主备。
tracker_server 的列表 ,会主动连接 tracker_server
有多个 tracker server 时,每个 tracker server 写一行
tracker_server = 192.168.0.77:22122
tracker_server = 192.168.0.89:22122
访问端口 默认80 建议修改 防止冲突
http.server_port=80 #这端口没什么用,4以上版本已经不在启动网络服务了
bind_addr = 192.168.0.77 #2台独自改为自己ip
创建日志目录: mkdir -p /data/fastdfs/storage
创建数据目录: mkdir -p /data/fastdfs/storage_data/
8. 启动2台主机上的storage服务
service fdfs_storaged start
systemctl start fdfs_storaged #centos7 推荐
systemctl enable fdfs_storaged #设置开机启动
/sbin/chkconfig fdfs_storaged on #设置开机启动
检查端口23000是否存在: netstat -tunlp | grep 23000
9. 集群检测
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
输出的结果看到存储节点状态为 ACTIVE 则表示已生效。
Storage 1:
id = 192.168.0.77
ip_addr = 192.168.0.77 ACTIVE
http domain =
version = 6.07
...其他信息已省略...
Storage 2:
id = 192.168.0.89
ip_addr = 192.168.0.89 ACTIVE
http domain =
version = 6.07
...其他信息已省略...
- 配置文件上传测试 配置客户端的配置
cd /etc/fdfs
cp client.conf.sample client.conf
vim client.conf
#修改一下配置,其他默认
Client 的数据和日志目录
base_path=/data/fastdfs/client
Tracker端口
tracker_server=192.168.0.77:22122
tracker_server=192.168.0.89:22122
创建client的日志目录: mkdir -p /data/fastdfs/client
分别在2台客户端上传一个文件试试:
cd /tmp
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /tmp/peng-test1.png
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /tmp/peng-test2.png
#返回文件ID号说明集群搭建成功
[root@ecs-192_168_0_89 tmp]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /tmp/peng2.png
group1/M00/00/00/wKgATWFk85SARmKvAAA7rh9qvEI417.png #成功
- 最后 最后fastdfs集群搭建完成。客户端或者研发可以任意选择一个fastdfs的节点连接。
遇到的错误
- libfastcommon编译错误
[root@ecs-192_168_0_77 libfastcommon-1.0.53]# ./make.sh
gcc -Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -g -O3 -c -o hash.o hash.c
In file included from /usr/include/errno.h:35:0,
from hash.c:19:
/usr/include/bits/errno.h:24:26: fatal error: linux/errno.h: No such file or directory
# include
^
compilation terminated.
make: *** [hash.o] Error 1
解决: yum install kernel-headers -y
Original: https://www.cnblogs.com/penngke/p/15396720.html
Author: penngke
Title: fastdfs集群部署
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/586018/
转载文章受原作者版权保护。转载请注明原作者出处!