fastdfs集群部署

fastdfs集群部署

参考链接:https://www.cnblogs.com/penngke/p/15396701.html
部署架构如下:

fastdfs集群部署

部署规划

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/

安装步骤

  1. 2台主机上分别先安装依赖 yum install make cmake gcc gcc-c++ -y
  2. 下载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
  3. 安装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
        ...其他信息已省略...

  1. 配置文件上传测试 配置客户端的配置
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  #成功
  1. 最后 最后fastdfs集群搭建完成。客户端或者研发可以任意选择一个fastdfs的节点连接。

遇到的错误

  1. 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/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 接口压测提示redis获取不到连接数,出现timeout waiting for idle object异常问题定位

    博客园 :当前访问的博文已被密码保护 请输入阅读密码: Original: https://www.cnblogs.com/qmfsun/p/11583355.htmlAuthor…

    Linux 2023年5月28日
    094
  • 高等代数:4 矩阵的运算

    4 矩阵的运算 1、数域K上两个矩阵称为 相等,如果它们的行数相等,列数也相等,并且它们的所有元素对应相等。 2、定义1:设(A=(a_{ij}),B=(b_{ij}))都是数域K…

    Linux 2023年6月8日
    097
  • jenkins自动触发构建

    bash;gutter:true; 1. 安装jenkins cat /etc/yum.repos.d/jenkins.repo [jenkins] name=Jenkins ba…

    Linux 2023年6月7日
    077
  • vscode搜索所有文件夹中所有文件的方法

    最近在看opencv相关的内容,看到画图这一部分时,提示我 这些代码都来自OpenCV代码的sample文件夹。 按照他的提示,我打开了相应的文件夹,却发现,so many 文件 …

    Linux 2023年6月14日
    0274
  • 【原创】Linux中断子系统(二)-通用框架处理

    背景 Read the fucking source code! –By 鲁迅 A picture is worth a thousand words. –…

    Linux 2023年6月8日
    099
  • SpringSecurity

    SpringSecurity 11.1 SpringSecurity简介 Spring 是一个非常流行和成功的 Java 应用开发框架。Spring Security 基于 Spr…

    Linux 2023年6月14日
    097
  • Mac远程windows工具

    现在很多小伙伴都是使用MAC系统,但在工作中或多或少会遇到需要远程windows的情况,今天给大家安利一款软件,让你轻轻松松远程windows Microsoft Remote D…

    Linux 2023年6月7日
    0103
  • locate-updatedb命令检索不全

    执行updatedb 命令,用于立刻更新locate 命令所必需的数据库文件,但有些文件可能会在检索过程中被过滤掉。 有时候明明存在的文件,用find 命令都能搜得出来,但用loc…

    Linux 2023年6月13日
    093
  • Android XML: Multiple button layout

    The layout : The xml code : 😃(before using this code, you should create your drawable xml …

    Linux 2023年6月13日
    0105
  • ingress-nginx 部署使用

    安装部署 nginx-ingress-controller 输入下面网址:选择版本 https://github.com/kubernetes/ingress-nginx/blob…

    Linux 2023年6月14日
    096
  • Linux下如何切割与合并大文件

    我们传输一个大文件时,有时网络比较慢,需要花费很长时间才能传输完成,或者传输的过程中,网络不稳定,有可能导致此次传输失败,针对这种情况,我们可以把大文件切分成小文件,再逐个的传输到…

    Linux 2023年6月13日
    0120
  • /dev/null文件的作用以及使用方法

    关于/dev/null,以及如何使用它 今天在看MIT的一个课程时,老师给的程序实例中有一个地方没弄明白: #!/bin/bash echo "Starting prog…

    Linux 2023年6月6日
    0110
  • Python中的对象引用、浅拷贝与深拷贝

    最近项目中遇到一个Python浅拷贝机制引起的bug,由于对于Python中对象引用、赋值、浅拷贝/深拷贝机制没有足够的认识,导致调试了很久才发现问题,这里简单记录一下相关概念。 …

    Linux 2023年6月6日
    085
  • CTF竞赛权威指南(PWN篇)下载地址

    博客网址:www.shicoder.top微信:18223081347欢迎加群聊天 :452380935 这里给大家提供《CTF竞赛权威指南(PWN篇)》的下载地址(不是网上的64…

    Linux 2023年6月13日
    097
  • 【Redis】缓存穿透、缓存击穿、缓存雪崩产生原因及解决方案

    一. 本文对Redis中[缓存穿透]、[缓存击穿]、[缓存雪崩]三种现象产生原因、解决方法进行说明 二. 缓存穿透 1. 原因 2. 解决方法 三. 缓存击穿 1. 原因 2. 解…

    Linux 2023年5月28日
    0108
  • 022.常见硬盘检测方式

    硬盘监测概述 硬盘异常损坏日常相对概率较高,同时不同的文件系统(xfs,reiserfs,ext3)其检测方式不同。建议使用dmesag查看有没有硬件I/O故障的日志,也可使用用f…

    Linux 2023年6月7日
    091
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球