FDFS部署+阿里云服务器+centos7.6+flask(篇一)

先谈谈这几天部署fdfs的感受吧,部署完成感觉也不是特别复杂,但每走一步都是坑坑重重,每次部署也都会遇到很多新的坑,最近在虚拟机上搭了三台服务器,fdfs完美运行,可以leader让部署到阿里云服务器上,部署起来却又遇到了很多问题,比如调试选择内外网ip的问题,部署完成其中一台storage上传文件不成功的问题,其中一台storage不能同步到另一台storage的问题,看了很多网上的教程,也是各自不甚完整,说法也各不相同,接下来,可以直接看重点……

先给一张部署架构

三台服务器fdfs存储架构
我的部署就是按照此图的架构来的,一台tracker(以下简称t),两台storage(以下简称s1,s2),s1与s2为一组,相互备份。

先放一个fdfs的配置安装步骤,以及一些坑,已都在文中说明,后面部署会在篇二中说明

一、FastDFS 的安装(所有跟踪服务器和存储服务器均执行如下操作)

1、编译和安装所需的依赖包:

# yum install make cmake gcc gcc-c++ 

2、安装 libfastcommon:

(1)上传或下载 libfastcommon-master.zip/usr/local/src 目录
(2)解压

# cd /usr/local/src/ 
# unzip libfastcommon-master.zip
# cd libfastcommon-master
  • 注意:unzip不能使用,安装yum install -y zip unzip

(3) 编译、安装

# ./make.sh 
# ./make.sh install 

libfastcommon 默认安装到了 
/usr/lib64/libfastcommon.so 
/usr/lib64/libfdfsclient.so

(4)因为 FastDFS主程序设置的 lib 目录是/usr/local/lib,所以需要创建软链接

# 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

3、安装 FastDFS

(1)上传或下载 FastDFS源码包(FastDFS_v5.05.tar.gz)到 /usr/local/src 目录
(2)解压

# cd /usr/local/src/
# tar -zxvf FastDFS_v5.05.tar.gz 
# cd FastDFS

(3)编译、安装(编译前要确保已经成功安装了 libfastcommon

# ./make.sh 
# ./make.sh install 

采用默认安装的方式安装,安装后的相应文件与目录:
A、服务脚本在:

/etc/init.d/fdfs_storaged 
/etc/init.d/fdfs_tracker 

B、配置文件在(样例配置文件):

/etc/fdfs/client.conf.sample 
/etc/fdfs/storage.conf.sample 
/etc/fdfs/tracker.conf.sample 

C、命令工具在/usr/bin/目录下的:

fdfs_appender_test 
fdfs_appender_test1 
fdfs_append_file 
fdfs_crc32 
fdfs_delete_file 
fdfs_download_file 
fdfs_file_info 
fdfs_monitor 
fdfs_storaged 
fdfs_test 
fdfs_test1 
fdfs_trackerd 
fdfs_upload_appender 
fdfs_upload_file 
stop.sh 
restart.sh 

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

# cd /usr/bin/ 
# ls | grep fdfs 
  • 因此需要修改 FastDFS服务脚本中相应的命令路径,也就是把/etc/init.d/fdfs_storaged/etc/init.d/fdfs_trackerd两个脚本中的/usr/local/bin 修改成/usr/bin
# cd /etc/init.d
# vi fdfs_trackerd
使用查找替换命令进统一修改:%s+/usr/local/bin+/usr/bin 
# vi fdfs_storaged :
使用查找替换命令进统一修改:%s+/usr/local/bin+/usr/bin 

二、配置 FastDFS 跟踪器 Tracker (192.168.119.130)

1、 复制 FastDFS 跟踪器样例配置文件,并重命名:

# cd /etc/fdfs/ 

# cp tracker.conf.sample tracker.conf 

2、 编辑跟踪器配置文件:

# vi /etc/fdfs/tracker.conf 

修改的内容如下: 
disabled=false 
port=22122 
base_path=/fastdfs/tracker 
(其它参数保留默认配置 ) 

3、 创建基础数据目录(参考基础目录 base_path 配置):

# mkdir -p /fastdfs/tracker

4、 防火墙中打开跟踪器端口(默认为 22122):

# vi /etc/sysconfig/iptables

添加如下端口行:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT 

重启防火墙:
# firewall-cmd --reload 

关闭防火墙
# systemctl stop firewalld

查看状态
# firewall-cmd --state    //running 表示运行

5、 启动 Tracker

# /etc/init.d/fdfs_trackerd start 
(初次成功启动,会在/fastdfs/tracker 目录下创建 data、logs 两个目录)可以通过以下两个方法查看 tracker 是否启动成功: 

(1)查看 22122 端口监听情况:netstat -unltp|grep fdfs  

(2)通过以下命令查看 tracker 的启动日志,看是否有错误 
tail -100f  /fastdfs/tracker/logs/trackerd.log

# /etc/init.d/fdfs_trackerd restart  重启

6、 关闭 Tracker:

# /etc/init.d/fdfs_trackerd stop

7、 设置 FastDFS 跟踪器开机启动:

# vi /etc/rc.d/rc.local 

添加以下内容: 
## FastDFS Tracker 
/etc/init.d/fdfs_trackerd start 

三、配置 FastDFS 存储服务器 (192.168.119.131,192.168.119.131)

1、 复制 FastDFS 存储器样例配置文件,并重命名:

# cd /etc/fdfs/
# cp storage.conf.sample storage.conf

2、 编辑存储器样例配置文件:

# vi /etc/fdfs/storage.conf 
  • 修改的内容如下:
disabled=false      #启用配置文件 
group_name=group1        #组名(第一组为 group1,第二组为 group2) 
port=23000      #storage 的端口号,同一个组的 storage 端口号必须相同 
base_path=/fastdfs/storage   #设置 storage 的日志目录 
store_path0=/fastdfs/storage   #存储路径 
store_path_count=1     #存储路径个数,需要和 store_path 个数匹配 
tracker_server=192.168.119.130:22122 #tracker 服务器的 IP 地址和端口 
http.server_port=8888    #设置 http 端口号 
(其它参数保留默认配置,具体配置解释请参考官方文档说明: 
http://bbs.chinaunix.net/thread-1941456-1-1.html )

注意:

报错:[2019-03-27 12:01:48] ERROR - file: tracker_proto.c, line: 48, server: 172.19.247.156:22122, response status 2 != 0
tracker_query_storage fail, error no: 2, error info: No such file or directory

**解决:**查看storage.conf的存储路径设置,是找不到存储路径

(设置文件存储路径,一定要注意路径前面是否取消注释,路径是否写完整,如前面的“/”)

报错:

[2019-03-27 12:01:11] INFO - file: tracker_relationship.c, line: 383, selecting leader…

解决:

systemctl stop firewalld

/etc/init.d/fdfs_trackerd restart # 重启服务

服务器部署:

测试环境:tracker.conf, storage.conf均为公网ip

3、 创建基础数据目录(参考基础目录 base_path 配置):

# mkdir -p /fastdfs/storage 

4、 防火墙中打开存储器端口(默认为 23000):

# vi /etc/sysconfig/iptables
添加如下端口行:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT 

重启防火墙: 
# firewall-cmd --reload

关闭防火墙
# systemctl stop firewalld.service

5、 启动 Storage:

# /etc/init.d/fdfs_storaged start 
(初次成功启动,会在/fastdfs/storage 目录下创建数据目录 data 和日志目录 logs) 
各节点启动动,使用 tail -f /fastdfs/storage/logs/storaged.log 命令监听存储节点日志,可以看到存储节点链接到跟踪器,并提示哪一个为 leader 跟器。同时也会看到同一组中的其他节点加入进来的日志信息。 

查看 23000 端口监听情况:netstat -unltp|grep fdfs 
 
所有 Storage 节点都启动之后,可以在任一 Storage 节点上使用如下命令查看集群信息: 
# /usr/bin/fdfs_monitor /etc/fdfs/storage.conf 

6、 关闭 Storage:

# /etc/init.d/fdfs_storaged stop 

7、 设置 FastDFS 存储器开机启动:

# vi /etc/rc.d/rc.local 
添加:
## FastDFS Storage 
/etc/init.d/fdfs_storaged start 

四、文件上传测试

1、修改 Tracker 服务器中的客户端配置文件

# cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf 
# vi /etc/fdfs/client.conf 
base_path=/fastdfs/tracker 
tracker_server=192.168.119.131:22122 

# tracker_server=多组的话再加ip:port

2、执行如下文件上传命令:

# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/FastDFS_v5.05.tar.gz 

返回 ID 号:
group1/M00/00/00/wKh3g1yQZtKAGvwfAAVFOL7FJU4.tar.gz
 (能返回以上文件 ID,说明文件上传成功) 

# 记得关闭各个ip的防火墙
systemctl stop firewalld.service
发布了20 篇原创文章 · 获赞 30 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/ever_siyan/article/details/88865499