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

时间:2022-01-20 22:36:33

1.简介

    本文主要介绍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

本次采用两台服务器,都分别安装完整的单节点文件服务器。安装完成后,设置服务器1和服务器2上面的storage分别属于group1和group2。两个storage的tracker地址设置为两个,具体关系如下:

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

简要说明:

  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,并可访问。

一个tracker跟踪器配置多个storage的方法参考FastDFS文件服务器扩容文档。分别在服务器1和服务器2上面配置好文件后,启动服务,在两台服务器中输入指令:/usr/bin/fdfs_monitor /etc/fdfs/storage.conf。截图如下:

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

文件服务器配置好后,利用keepalived做虚拟ip,具体操作请参考nginx和keepalived实现nginx高可用文档,虚拟ip设置成功后访问截图如下:

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

3.结果展示

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

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

4.分析说明

仔细梳理整个文件上传,存储流程。在两台服务器上面搭建的这一套文件服务器并不能算一个完整的文件服务器集群。在tracker指向storage的设计模式时,是采用了nginx代理分发的模式。目前一个是自身,一个是另外一台服务器,以后再次扩展存储服务器时,可继续沿用。但是在keepalived做nginx高可用时,并没有做基于tracker的负载分发,笔者也尝试在现有服务器上面做nginx.conf文件配置,但由于本身又设置了tracker到storage的分发,keepalived到tracker的分发并未生效。所以,目前两台文件服务器一个虚拟ip的模式,算是主备的关系。

由于设置在服务器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服务存储文件。

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

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

额外增加两台服务器,专门做keepalived与nginx的负载高可用,通过nginx管理后面两台服务器的tracker服务,做代理转发。可完成文件服务器集群搭建。其中,在两台新服务器的nginx.conf配置文件如下:

#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;
}
}
}

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

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

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

FastDFS教程IV-文件服务器集群搭建的更多相关文章

  1. Solr集群搭建详细教程(一)

    一.Solr集群的系统架构 注:欢迎大家转载,非商业用途请在醒目位置注明本文链接和作者名dijia478,商业用途请联系本人dijia478@163.com. SolrCloud(solr 云)是So ...

  2. 一张图讲解最少机器搭建FastDFS高可用分布式集群安装说明

     很幸运参与零售云快消平台的公有云搭建及孵化项目.零售云快消平台源于零售云家电3C平台私有项目,是与公司业务强耦合的.为了适用于全场景全品类平台,集团要求项目平台化,我们抢先并承担了此任务.并由我来主 ...

  3. Solr集群搭建详细教程(二)

    注:欢迎大家转载,非商业用途请在醒目位置注明本文链接和作者名dijia478,商业用途请联系本人dijia478@163.com. 之前步骤:Solr集群搭建详细教程(一) 三.solr集群搭建 注意 ...

  4. springCloud系列教程01:Eureka 注册中心集群搭建

    springCloud系列教程包含如下内容: springCloud系列教程01:Eureka 注册中心集群搭建 springCloud系列教程02:ConfigServer 配置中心server搭建 ...

  5. fastdfs集群版搭建(一)- storage集群搭建与统一入口访问

    前言 接着上篇博客:详细的最新版fastdfs单机版搭建,今天来讲讲fastdfs的集群搭建,限于篇幅,今天先搭建stoarge集群,并实现统一的http访问方式: 没看我上篇博客的小伙伴,最好先去瞅 ...

  6. 【运维技术】Zookeeper单机以及集群搭建教程

    Zookeeper单机以及集群搭建教程 单机搭建 单机安装以及启动 安装zookeeper的前提是必须有java环境 # 选择目录进行下载安装 cd /app # 下载zk,可以去官方网站下载,自己上 ...

  7. kubernetes(K8S)快速安装与配置集群搭建图文教程

    kubernetes(K8S)快速安装与配置集群搭建图文教程 作者: admin 分类: K8S 发布时间: 2018-09-16 12:20 Kubernetes是什么? 首先,它是一个全新的基于容 ...

  8. RabbitMQ入门教程(十四):RabbitMQ单机集群搭建

    原文:RabbitMQ入门教程(十四):RabbitMQ单机集群搭建 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://b ...

  9. mysql集群搭建教程-基础篇

           计算机一级考试系统要用集群,目标是把集群搭建起来,保证一个库dang了,不会影响程序的运行.于是在孟海滨师哥的带领下开始了我的第一次搭建mysql集群,首先看了一些关于集群的资料,然后根 ...

随机推荐

  1. 如何换ionic里面的图标

    (转自http://www.zcool.com.cn/article/ZMTM4NDQw.html) 第一步,你把你的项目的SVG文件跟你自己做的图标的SVG文件都上到icomoon.io/app(上 ...

  2. Oracle 分页原理

    oracle rownum 及分页处理的使用方法 在实际应用中我们经常碰到这样的问题,比如一张表比较大,我们只要其中的查看其中的前几条数据,或者对分页处理数据.在这些情况下我们都需要用到rownum. ...

  3. mysql查看数据库

    进入MySQL Command line client下查看当前使用的数据库: mysql>select database(); mysql>status; mysql>show t ...

  4. java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@450b2f48 异常处理

    晕死的错误,改了半天也没想到是这样的原因,基础正要呀... 先看一下警告信息: 07-07 08:32:19.540: WARN/WindowManager(74): Failed looking u ...

  5. Access和Sql区别

    假设表game有一字段为gameYuiJian为bit字段(SQL SERVER 20005)和"是/否"字段(ACCSS数据库),在编写脚本文件时,如下才能正确执行 SQL st ...

  6. visio 2013 破解工具 - KMSpico

    背景:环境是 win7, 64 bit装了 visio 2013 , 可以却不能用它来画图,在网上找了一些破解工具,大都不能解决问题.网上不靠谱的广告型文章太多了,比较头痛. 所幸,终于找到正确的破解 ...

  7. Android采用Application总结一下

    什么是 Application Application和Activity,Service由于是android框架的一个系统组件,当android程序启动时系统会创建一个 application对象.用 ...

  8. MAC下的Intellij IDEA常用快捷键

    MAC下的Intellij IDEA常用快捷键 alt+f7 : 查找在哪里使用 相当于eclipse的ctrl+shift+G command+alt+f7 : 这个是查找选中的字符在工程中出现的地 ...

  9. 70、django之Ajax初识

    Ajax准么说是用于Javascript与服务器端进行交互的,我们之前呢没有了解ajax也同样可以完成与服务器的交互,那么ajax的优势在哪里?首先ajax是异步交互的也就是说我们基本不会遇到卡顿现象 ...

  10. SharePoint 2013 Workflow Manager 1.0 卸载

    一:环境 Window server 2012 r2 Standard SharePoint Server 2013 with sp1 二:开始菜单---Workflow Manager 配置---退 ...