FastDFS集群环境搭建

注:生产环境亲身实践,可复用
参考资料:https://blog.csdn.net/weixin_45422648/article/details/120308274
https://blog.csdn.net/deepking18254382067/article/details/102917823
一.FastDFS分布式存储

当在某一个Group中添加新的Storage服务器的时候,新加入该Group的服务器会自动同步所有数据。当新添加Group的时候,只需要修改处于前端的Nginx服务器即可。要实现主备自动切换还可以加入KeepAlived中间件。

FastDFS服务器通过HTTP提供服务,但是HTTP的性能太弱,所以在V4.05之后的版本中删除了内置的HTTP服务。
FastDFS的Group之间的Storage需要复制数据,如果请求的数据正在复制,由于不是源服务器,那么fastdfs-nginx-module将进行重定向源服务器。
fastdfs-nginx-module支持配置多个组,一个服务器可以配置多个Group不同的Storage。同一个Group的Storage必须端口相同。
Nginx会为FastDFS提供负载均衡和数据缓存的功能。
FastDFS集群的总容量等于全部Group容量之和。一个Group的容量等于最小的Storage服务器容量。
组一般用于隔离不同的数据。

二.机器规划&公共包安装

1.tracker 两台:
172.16.228.133    tracker1
172.16.228.134    tracker2

2.storage 四台:分两组
172.16.228.135    storage1  group1
172.16.228.136    storage2  group1
172.16.228.137    storage3  group2
172.16.228.138    storage4  group2

3.安装Nginx、Fastdfs需要的库依赖(全部安装)
yum install gcc perl openssl openssl-devel pcre pcre-devel zlib zlib-devel libevent libevent-devel -y

4.准备安装包
libfastcommon-master.zip             fastdfs依赖库
FastDFS_v5.08.tar.gz                 fastdfs安装包
fastdfs-nginx-module_v1.16.tar.gz    fastdfs扩展包
nginx-1.16.1.tar.gz                  nginx安装包

5.安装FastDFS及其依赖库(全部安装)
a).解压   libfastcommon-master.zip
    进入:  libfastcommon-master
    编译: ./make.sh
    安装: ./make.sh install	 

b).解压  FastDFS_v5.08.tar.gz
    进入:FastDFS
    编译:./make.sh
  	安装:./make.sh install
  	复制文件:将conf下的 http.conf mime.types 复制到/etc/fdfs/目录下
  	修改配置文件名称:进入到 /etc/fdfs/下 将.sample后缀全部去掉

三.配置tracker(两台,133 134)

1.进入到/etc/fdfs/下 (两台相同操作)
  vim tracker.conf
  base_path=/home/fastdfs/tracker (确保路径存在,不存在先创建)
  
2.配置参数介绍
  reserved_storage_space = 10%
  解释:torage server 上保留的空间,保证系统或其他应用需求空间。只要同组内任一storage server剩余空间小于这个值,就不允许再上传文件
--------------------------------------------------------------------------------------
  负载均衡策略
  0: 轮训,每个组上传一次
  1: 指定组上传
  2: 负载均衡,选择上传文件的最大空闲空间组
  store_lookup=2
  解释:当store_lookup=1时,store_group必须指定组名
  store_group=group2
  
3.安装nginx
a)、tar -zxvf nginx-1.16.1.tar.gz
b)、cd /home/nginx-1.16.1
    ./configure --prefix=/usr/local/nginx (如果没权限执行chmod +x configure)
    make 
    make install
c)、进入/usr/local/nginx/conf 修改nginx配置文件
 	vim nginx.conf
 	配置内容:  
 	upstream fastdfs_group1_server {
        server 172.16.228.135:8888;
        server 172.16.228.136:8888;
    }

    upstream fastdfs_group2_server {
        server 172.16.228.137:8888;
        server 172.16.228.138:8888;
    }

    server{
        listen 8888;
        server_name localhost;
        location ~ /group1/M0[0-9] {
            proxy_pass http://fastdfs_group1_server;
        }

        location ~ /group2/M0[0-9] {
            proxy_pass http://fastdfs_group2_server;
        }
    }

四.配置storage(四台,135 136 137 138)

1.进入到/etc/fdfs/ 下
a)、group1:
  172.16.228.135
  172.16.228.136
  配置:
  tracker_server=172.16.228.133:22122       (配置tracker)
  tracker_server=172.16.228.134:22122
  group_name=group1
  base_path=/home/fastdfs/storage           (确保路径存在,不存在先创建)
  store_path0=/home/fastdfs/storage/data    (确保路径存在,不存在先创建)
--------------------------------------------------------------
b)、group2:
  172.16.228.137
  172.16.228.138
  配置:
  tracker_server=172.16.228.133:22122      (配置tracker)
  tracker_server=172.16.228.134:22122
  group_name=group2
  base_path=/home/fastdfs/storage          (确保路径存在,不存在先创建)
  store_path0=/home/fastdfs/storage/data   (确保路径存在,不存在先创建)

  注释:除了组名称不一样,其余都一样

2.安装nginx及扩展模块fastdfs-nginx-module(四台storage操作相同)
  a)、tar -zxvf nginx-1.16.1.tar.gz
  b)、tar zxf fastdfs-nginx-module_v1.16.tar.gz
      cd fastdfs-nginx-module/src
      vi config
      修改配置文件中第四行,把路径中local去掉。参数是用于配置安装nginx中的FastDFS组件的时候,在什么位置查找FastDFS核心代码
      CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
  c)、cd /home/nginx-1.16.1
      ./configure --prefix=/usr/local/nginx --add-module=/home/fastdfs-nginx-module/src (添加扩展模块,如果没权限执行chmod +x configure)
      make
      make install
  d)、将fastdfs-nginx-module下src目录中的(mod_fastdfs.conf)拷贝到/etc/fdfs/下
  e)、 进入/etc/fdfs修改mod_fastdfs.conf文件
	 配置文件:
	 vim mod_fastdfs.conf
     base_path=/home/fastdfs/mod_fastdfs     #保存日志目录
     tracker_server=172.16.228.133:22122     #tracker服务器的IP地址以及端口号
     tracker_server=172.16.228.134:22122
     group_name=group1                       #当前服务器的group名(135 136 group1,137 138 group2)
     url_have_group_name=true                #文件url中是否有group名
     store_path0=/home/fastdfs/storage/data  #存储路径
     group_count = 2                         #设置组的个数

在末尾增加2个组的具体信息:(有几组就填写几组)
 f)[group1]
	 group_name=group1
	 storage_server_port=23000
	 store_path_count=1
	 store_path0=/home/fastdfs/storage/data

 g)[group2]
	 group_name=group2
	 storage_server_port=23000
	 store_path_count=1
	 store_path0=/home/fastdfs/storage/data
	 
3.进入/usr/local/nginx/conf 修改nginx配置文件
 vim nginx.conf
 配置内容:
 server{
     listen 8888; #storage 配置中, 有http.server_post=8888的配置信息,必须一致
     server_name localhost;
     location ~ /group[1-9]/M0[0-9] {
         ngx_fastdfs_module;
     }
 }

五.启动&开机自动启动

a)启动
tracker(133 134): service fdfs_trackerd start
storage(135 136 137 138): service fdfs_storaged start
nginx: cd /usr/local/nginx/sbin/
	   ./nginx
b)设置开机自动启动
编辑 /etc/rc.d/rc.local 文件,添加如下配置
# fastdfs start
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
# nginx start
/usr/local/nginx/sbin/nginx
在centos7中, /etc/rc.d/rc.local 文件的权限被降低了,需要给rc.local 文件增加可执行的权限
chmod +x /etc/rc.d/rc.local

六.集成SpringBoot
参考https://github.com/tobato/FastDFS_Client

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值