前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FastDFS教程IV-文件服务器集群搭建

FastDFS教程IV-文件服务器集群搭建

作者头像
Java架构师必看
发布2022-02-19 10:31:16
1.8K0
发布2022-02-19 10:31:16
举报
文章被收录于专栏:Java架构师必看Java架构师必看

大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说FastDFS教程IV-文件服务器集群搭建,希望能够帮助大家进步!!!

1.简介

代码语言:txt
复制
   本文主要介绍FastDFS文件服务器的集群搭建,在阅读本文之前,您需具备FastDFS文件服务器单节点安装,扩容,迁移等方面的知识。同时,您还需了解Keepalived,nginx方面的知识。阅读本文您可参考如下辅助文章: 
  1. FastDFS文件服务器单节点安装:FastDFS教程Ⅰ-文件服务器安装与Nginx配置
  2. FastDFS文件服务器扩容:FastDFS教程Ⅲ-文件服务器扩容
  3. nginx和keepalived实现nginx高可用:nginx和keepalived实现虚拟ip配置

2.搭建环境

  1. 服务器1:ip 10.63.0.154,在上面安装FastDFS,nginx,keepalived
  2. 服务器2:ip 10.63.0.155,在上面安装FastDFS,nginx,keepalived
代码语言:txt
复制
  本次采用两台服务器,都分别安装完整的单节点文件服务器。安装完成后,设置服务器1和服务器2上面的storage分别属于group1和group2。两个storage的tracker地址设置为两个,具体关系如下:
代码语言:txt
复制
简要说明:
  1. 把服务器1和服务器2利用keepalived做一个虚拟ip:10.63.0.158
  2. 为了便于展示特意把tracker和storage抽象成了两块,其实是在一台服务器上面。10.63.0.155的tracker指向的存储地址为10.63.0.155的storage和10.63.0.154的storage。10.63.0.154上面的tracker指向存储地址同理。
  3. 在服务器上面配置了nginx负载均衡,在服务器1上面的文件可通过服务器1和服务器2的ip访问。在服务器2上面的文件同理可以访问。
  4. 通过虚拟的ip可上传文件到服务器1和服务器2,并可访问。
代码语言:txt
复制
 一个tracker跟踪器配置多个storage的方法参考FastDFS文件服务器扩容文档。分别在服务器1和服务器2上面配置好文件后,启动服务,在两台服务器中输入指令:/usr/bin/fdfs\_monitor /etc/fdfs/storage.conf。截图如下:
代码语言:txt
复制
文件服务器配置好后,利用keepalived做虚拟ip,具体操作请参考nginx和keepalived实现nginx高可用文档,虚拟ip设置成功后访问截图如下:

3.结果展示

代码语言:txt
复制
配置好文件服务器后,程序调用虚拟ip地址10.63.0.158可上传文件,在服务器上面测试时,直接调用文件上传命令如:/usr/bin/fdfs\_upload\_file /etc/fdfs/client.conf /home/1.png 上传文件,在服务器1和服务器2中上传的文件均可通过虚拟ip10.63.0.158访问。演示界面如下:

4.分析说明

代码语言:txt
复制
 仔细梳理整个文件上传,存储流程。在两台服务器上面搭建的这一套文件服务器并不能算一个完整的文件服务器集群。在tracker指向storage的设计模式时,是采用了nginx代理分发的模式。目前一个是自身,一个是另外一台服务器,以后再次扩展存储服务器时,可继续沿用。但是在keepalived做nginx高可用时,并没有做基于tracker的负载分发,笔者也尝试在现有服务器上面做nginx.conf文件配置,但由于本身又设置了tracker到storage的分发,keepalived到tracker的分发并未生效。所以,目前两台文件服务器一个虚拟ip的模式,算是主备的关系。
代码语言:txt
复制
由于设置在服务器10.63.0.154上面的keepalived的优先值高于在10.63.0.155服务器上面的优先值,故当服务器10.63.0.154正常运作时,文件上传只会走服务器10.63.0.154上面的tracker服务,tracker根据配置规则存储文件到group1下面的存储器或group2下面的存储器。当服务器10.63.0.154出现异常时,keepalived已经不可用,文件上传会走备用的服务器10.63.0.155上面的tracker服务存储文件。

文件服务器集群搭建目前需要四台服务器,在上面主备模式基础上,在加上两台服务器可做集群处理。集群关系图如下:

代码语言:txt
复制
额外增加两台服务器,专门做keepalived与nginx的负载高可用,通过nginx管理后面两台服务器的tracker服务,做代理转发。可完成文件服务器集群搭建。其中,在两台新服务器的nginx.conf配置文件如下:
代码语言:javascript
复制
#user  nobody;  
worker_processes  1;  
  
#error_log  logs/error.log;  
#error_log  logs/error.log  notice;  
#error_log  logs/error.log  info;  
  
#pid        logs/nginx.pid;  
  
  
events {  
    worker_connections  1024;  
}  
  
  
http {  
    include       mime.types;  
    default_type  application/octet-stream;  
  
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '  
    #                  '$status $body_bytes_sent "$http_referer" '  
    #                  '"$http_user_agent" "$http_x_forwarded_for"';  
  
    #access_log  logs/access.log  main;  
  
    sendfile        on;  
    #tcp_nopush     on;  
  
    #keepalive_timeout  0;  
    keepalive_timeout  65;  
  
    #gzip  on;  
      
    upstream fastdfs_tracker {  
       server 10.63.0.154:8888 weight=1 max_fails=2 fail_timeout=30s;  
       server 10.63.0.155:8888 weight=1 max_fails=2 fail_timeout=30s;  
    }  
  
    server {  
        listen       8888;  
        server_name  localhost;  
  
        #charset koi8-r;  
  
        #access_log  logs/host.access.log  main;  
  
        location /fastdfs {  
           root html;  
           index index.html index.htm;  
           proxy_pass http://fastdfs_tracker/;  
           proxy_set_header Host $http_host;  
           proxy_set_header Cookie $http_cookie;  
           proxy_set_header X-Real-IP $remote_addr;  
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
           proxy_set_header X-Forwarded-Proto $scheme;  
           client_max_body_size 300m;  
        }  
  
        #error_page  404              /404.html;  
  
        # redirect server error pages to the static page /50x.html  
        #  
        error_page   500 502 503 504  /50x.html;  
        location = /50x.html {  
            root   html;  
        }  
    }  
}  

View Code

在实际使用中,通常是把tracker服务和storage服务安装在不同的服务器上,参考CSDN一位大牛的明细设计方案如下:

设计介绍文档地址:手把手教你搭建FastDFS集群(下) ,该博主一共发布了上中下三篇文章,明确详细的介绍了文件服务器的搭建过程,经过测试可用,可谓是业界良心。在整个方案中,没有涉及到文件服务器迁移模块的知识,没有采用storage_ids.conf的id配置模式,不便迁移。

今天文章到此就结束了,感谢您的阅读,Java架构师必看祝您升职加薪,年年好运。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-02-182,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.简介
  • 2.搭建环境
  • 3.结果展示
  • 4.分析说明
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档