CentOS-6.8系列-FastDFS高可用集群安装指南

本文章也是在参考了网上好多相关文章(主要参考文章见文末)后自学整理的,如有错误之处烦请留言指正。

1.服务器集群IP规划(可自行调整)

Tracker服务器:

    192.168.152.11
    192.168.152.14 

Storage服务器:

    Group1:
    192.168.152.12
    192.168.152.13
    Group2:
    192.168.152.15
    192.168.152.16

这里写图片描述

说明:FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。存储节点存储文件,完成文件管理的所有功能:存储、同步和提供存取接口。

为了支持大容量,存储节点(服务器)采用了分组的组织方式。存储系统由一个或多个卷组成(如上边的Group1与Group2),卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容量(如上述示例的集群的总容量为Group1中的容量最小的那台服务器的容量加上Group2中的容量最小的那台服务器的容量(组内服务器容量取决于容量最小的那台服务器))。一个卷可以由一台或多台存储服务器组成,一个卷下的存储服务器中的文件都是相同的,卷中的多台存储服务器起到了冗余备份和负载均衡的作用。

当存储空间不足或即将耗尽时,可以动态添加卷。只需要增加一台或多台服务器,并将它们配置为一个新的卷(如Group3),这样就扩大了存储系统的容量。

2.安装步骤

以下安装步骤基于服务器及IP规划妥当,本安装指南以上文中规划的IP进行安装,操作系统为Centos6.8。

2.1.安装前准备工作

2.1.1.新建组和用户

若不想使用root用户进行操作,可新建一个组和用户,命令如下:

groupadd fastdfsg
useradd -g fastdfsg fastdfs
passwd fastdfs

2.1.2.防火墙设置

修改防火墙配置文件,tracker服务器开放22122端口,storage服务器开放23000端口以及http访问需要的端口(FastDFS的nginx模块默认端口为8888,本指南使用8888端口,可根据需求改为80或8080等端口)

vi /etc/sysconfig/iptables

tracker服务器添加如下内容:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT

这里写图片描述
storage服务器添加如下内容:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT

这里写图片描述
保存后重启防火墙

service iptables restart

2.1.3.基础软件安装

安装一些软件编译、下载、解压所需的基础软件,安装wget是为了在线下载FastDFS、Nginx等软件(不在线下载时可自行准备好FastDFS、Nginx等安装包,并上传到每个服务器上,本指南使用的目录为/usr/local/src,注:Tracker服务器无需Nginx包,可不上传),本指南采用在线下载解压安装的方式。

#基础软件的安装请执行下述命令
yum install make cmake gcc gcc-c++
yum -y install perl
yum install -y wget
yum install -y unzip zip
#查看是否已安装上述软件使用下边的命令
yum list installed | grep 软件名称

2.2.安装FastDFS

本步骤所有服务器(192.168.152.11,192.168.152.14,192.168.152.12,192.168.152.13,192.168.152.15,92.168.152.16)上均需执行

2.2.1.安装FastDFS的依赖包libfastcommon

按步骤依次执行下述命令

#切换至/usr/local/src目录
cd /usr/local/src
#下载libfastcommon包并重命名
wget https://github.com/happyfish100/libfastcommon/archive/master.zip -O libfastcommon-master.zip
#解压
unzip libfastcommon-master.zip
#切换至libfastcommon-master目录
cd libfastcommon-master
#编译
./make.sh
#安装
./make.sh install

2.2.2.安装FastDfs

按步骤依次执行下述命令

#切换至/usr/local/src目录
cd /usr/local/src
#下载FastDfs包并重命名
wget https://github.com/happyfish100/fastdfs/archive/V5.11.zip -O fastdfs-5.11.zip
#解压
unzip fastdfs-5.11.zip 
#切换至fastdfs-5.11目录
cd fastdfs-5.11
#编译
./make.sh
#安装
./make.sh install

2.3.配置

至此,FastDFS已安装完毕,下面开始针对Tracket服务器(192.168.152.11,192.168.152.14)与Storage服务器(192.168.152.12,192.168.152.13,192.168.152.15,192.168.152.16)分别进行配置

2.3.1.Tracker服务器配置

在192.168.152.11,192.168.152.14两台tracker服务器上均依次执行下述命令即可

#切换至/etc/fdfs/目录
cd /etc/fdfs/
#复制tracker.conf.sample文件并命名为tracker.conf
cp tracker.conf.sample tracker.conf
#修改tracker.conf文件
vi tracker.conf
#修改内容如下:
disabled=false              # 启用配置文件
port=22122                  # tracker服务器端口(默认22122)
base_path=/fastdfs/tracker  # 存储日志和数据的根目录
#创建上述配置文件中配置的/fastdfs/tracker目录
mkdir -p /fastdfs/tracker

2.3.2.Storage服务器配置

在四台storage服务器上均依次执行下述命令即可

#切换至/etc/fdfs/目录
cd /etc/fdfs/
#复制storage.conf.sample文件并命名为storage.conf
cp storage.conf.sample storage.conf
#修改storage.conf文件
vi /etc/fdfs/storage.conf
# 修改的内容如下:
disabled=false                          # 启用配置文件
port=23000                              # storage服务端口
base_path=/fastdfs/storage              # 数据和日志文件存储根目录
store_path0=/fastdfs/storage                # 第一个存储目录
tracker_server=192.168.152.11:22122     # tracker服务器IP和端口
tracker_server=192.168.152.14:22122     # tracker服务器IP和端口
http.server_port=8888                   # http访问文件的端口(可自行修改)
group_name=group1                   #.12和.13服务器写成group1,.15                                          和.16服务器写成group2
#创建上述配置文件中配置的/fastdfs/storage目录
mkdir -p /fastdfs/storage

2.4.服务器启动与关闭

Tracker服务器:

/etc/init.d/fdfs_trackerd start     #启动命令
ps -ef | grep fdfs_trackerd     #查看是否启动
/etc/init.d/fdfs_trackerd stop      #关闭命令

Storage服务器

/etc/init.d/fdfs_storaged start #启动命令
ps -ef | grep fdfs_storaged     #查看是否启动
/etc/init.d/fdfs_storaged stop      #关闭命令

2.5.测试Client

至此FastDFS的集群安装已基本完成,下面用FastDFS自带的client进行文件上传测试。测试成功后,接着在Storage服务器上安装Nginx模块。

2.5.1.client客户端配置

FastDFS自带client测试端,现在在两台Tracker服务器中任选一台服务器,依次执行下述命令:

#切换至/etc/fdfs/目录
cd /etc/fdfs/
#复制client.conf.sample文件并命名为client.conf
cp client.conf.sample client.conf
#修改client.conf文件
vi client.conf
# 修改以下配置,其它保持默认
    base_path=/fastdfs/tracker
    tracker_server=192.168.152.11:22122
    tracker_server=192.168.152.14:22122

2.5.2.上传测试

#新建一个文件,这里建一个示例txt的文件
vi /usr/local/src/test.txt      #随便写点内容,如:Tracker-192.168.152.11
#执行上传命令
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/test.txt
#返回如下信息表示上传成功

记录下返回信息,后续测试会用到
group1/M00/00/00/wKiYDFn8cjiAcwZaAAAAFx6Z3I4714.txt

2.5.3.使用fdfs_monitor查看集群信息

#执行如下命令(在修改了/etc/fdfs/client.conf文件的服务器上执行)
/usr/bin/fdfs_monitor /etc/fdfs/client.conf

控制台显示如下截图内容(集群中tracker与storage节点信息)

这里写图片描述

2.6.Storage服务器安装Nginx模块

注意:只需要在四台storage服务器上安装Nginx模块即可,安装Nginx的作用是fastdfs-nginx-module 可以重定向文件连接到源服务器取文件,避免客户端由于复制延迟导致的文件无法访问错误。
四台storage服务器均需依次执行下述步骤

2.6.1.下载并配置fastdfs-nginx-module模块

#切换到/usr/local/src目录
cd /usr/local/src
#下载fastdfs-nginx-module包并重命名
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/master.zip -O     fastdfs-nginx-module-master.zip
#解压
unzip fastdfs-nginx-module-master.zip
#切换至fastdfs-nginx-module-master/src目录
cd fastdfs-nginx-module-master/src
#修改config文件
vi config#新版本的可能已无需修改CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/" 
    修改为:
    CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

2.6.2.Storage节点安装Nginx

#切换至/usr/local/src目录
cd /usr/local/src
#安装编译 Nginx 所需的依赖包
yum install gcc gcc-c++ make automake autoconf libtool pcre* zlib openssl openssl-devel
#下载nginx安装包
wget http://nginx.org/download/nginx-1.13.6.tar.gz
#解压
tar -zxvf nginx-1.13.6.tar.gz 
#切换至nginx-1.13.6目录
cd nginx-1.13.6
#添加fastdfs-nginx-module模块至Nginx
./configure --add-module=/usr/local/src/fastdfs-nginx-module-master/src
#编译安装
make && make install

2.6.3.Storage节点Nginx相关配置

#复制 fastdfs-nginx-module 源码中的配置文件到/etc/fdfs 目录
cp /usr/local/src/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/
#切换至/etc/fdfs/目录
cd /etc/fdfs/
#修改mod_fastdfs.conf配置文件
vi mod_fastdfs.conf
修改以下配置: 
    connect_timeout=10
    base_path=/tmp
    tracker_server=192.168.152.11:22122
    tracker_server=192.168.152.14:22122
    storage_server_port=23000
    group_name=group1
    url_have_group_name = true
    store_path0=/fastdfs/storage        #.12和.13服务器写成group1,.15和.16服务器写成group2
#切换至/usr/local/src/fastdfs-5.11/conf目录
cd /usr/local/src/fastdfs-5.11/conf
#复制FastDFS 的部分配置文件到/etc/fdfs 目录
cp http.conf mime.types /etc/fdfs/
#在/fastdfs/storage 文件存储目录下创建软连接,将其链接到实际存放数据的目录
ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00
#切换至/usr/local/nginx/conf/目录
cd /usr/local/nginx/conf/
#复制nginx.conf文件(目的是为了备份)
cp nginx.conf nginx.conf.sample
#修改nginx.conf
vi nginx.conf
#修改使用红色部分
user nobody;
        worker_processes 1;
        events {
            worker_connections 1024;
        }
        http {
            include mime.types;
            default_type application/octet-stream;
            sendfile on;
            keepalive_timeout 65;
            server {
                listen 8888;
                server_name localhost;
                location ~/group([0-9])/M00 {
                    ngx_fastdfs_module;
                }
                error_page 500 502 503 504 /50x.html;
                location = /50x.html {
                    root html;
                }
            }
        }
注意:1.8888 端口值是要与/etc/fdfs/storage.conf 中的 http.server_port=8888 相对应, 因为 http.server_port 默认为 8888,如果想改成 80,则要对应修改过来。
2.Storage 对应有多个 group 的情况下,访问路径带 group 名,如/group1/M00/00/00/xxx, 对应的 Nginx 配置为:
location ~/group([0-9])/M00 {
    ngx_fastdfs_module;
}

2.6.4.Nginx启动

#启动Nginx
/usr/local/nginx/sbin/nginx
#重启命令为
/usr/local/nginx/sbin/nginx -s reload

2.7.测试Nginx模块

测试前确保所有Storage服务器上的FastDFS及Nginx已启动,启动完成后,在浏览器地址栏中输入如下地址:
http://[storageIP]:8888/group1/M00/00/00/wKiYDFn8cjiAcwZaAAAAFx6Z3I4714.txt
其中storageIP可以为四台storage服务器中的任何一台的ip,group1/M00/00/00/wKiYDFn8cjiAcwZaAAAAFx6Z3I4714.txt为前文用FastDFS自带的Client测试上传的文件返回的地址。
正常情况下会返回下图内容
这里写图片描述
可以继续尝试更换ip(Storage服务器的ip)、或轮流关闭Tracker服务器、或关闭Storage服务器进行测试。但根据上文测试返回的连接,可以确定text.txt文件存储的实际地方为group1中的两台服务器,因此在做停机测试时要保证group1中的两台Storage服务器(即192.168.152.12,192.168.152.13)至少有一台在正常运行。

2.8.设置FastDFS及storage节点Nginx开机启动

设置开机启动采用修改/etc/rc.d/rc.local文件的方式

vi /etc/rc.d/rc.local
    #Tracker服务器上添加如下内容
    /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

这里写图片描述

#Storage服务器上添加如下内容
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
/usr/local/nginx/sbin/nginx

这里写图片描述

2.9.Tracker节点安装keepalived实现高可用

分别在Tracker节点192.168.152.11及192.168.152.14上安装nginx及keepalived,实现fastdfs的负载均衡及高可用

2.9.1.Tracker节点Nginx相关

2.9.1.1.Tracker节点安装Nginx

#切换至/usr/local/src目录
cd /usr/local/src
#安装编译 Nginx 所需的依赖包
yum install gcc gcc-c++ make automake autoconf libtool pcre* zlib openssl openssl-devel
#下载nginx安装包
wget http://nginx.org/download/nginx-1.13.6.tar.gz
#解压
tar -zxvf nginx-1.13.6.tar.gz 
#切换至nginx-1.13.6目录
cd nginx-1.13.6
#配置
./configure
#编译安装
make && make install

2.9.1.2.Tracker节点Nginx相关配置

#tracker服务器开放8888端口
vi /etc/sysconfig/iptables
#添加如下端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT
#重启网卡 
service network restart
#切换至/usr/local/nginx/conf/目录
cd /usr/local/nginx/conf/
#复制nginx.conf文件(目的是为了备份)
cp nginx.conf nginx.conf.sample
#修改nginx.conf
vi 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;

    #设置 group1 的服务器
    upstream fdfs_group1 {
         server 192.168.152.12:8888 weight=1 max_fails=2 fail_timeout=30s;
         server 192.168.152.13:8888 weight=1 max_fails=2 fail_timeout=30s;
    }

    #设置 group2 的服务器
    upstream fdfs_group2 {
         server 192.168.152.15:8888 weight=1 max_fails=2 fail_timeout=30s;
         server 192.168.152.16: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;


       #设置 group 的负载均衡参数
        location /group1/M00 {
            proxy_pass http://fdfs_group1;
        }

        location /group2/M00 {
            proxy_pass http://fdfs_group2;
        }
        #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;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
       #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
}
上述配置仍然监听为8888端口
启动nginx
/usr/local/nginx/sbin/nginx

2.9.2.Tracker节点keepalived相关

2.9.2.1.Tracker节点keepalived安装

2.9.2.1.1.方法一:yum方式安装

#使用yum方式安装keepalived(自动安装依赖)
yum install -y keepalived ipvsadm

2.9.2.1.2.方法二:本地安装

#安装依赖
yum install -y libnl lm_sensors-libs net-snmp-libs ipvsadm
#切换至/usr/local/src目录
cd /usr/local/src
#下载keepalived
wget http://www.keepalived.org/software/keepalived-1.2.13.tar.gz
#解压
tar -zxvf keepalived-1.2.13.tar.gz
#配置
./configure --prefix=/usr/local/keepalived/
#编译安装
make && make install
#添加keepalived至service
#拷贝可执行文件,没有这一步将会在执行service keepalived start的时候报错:   keepalived: command not found
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
#需要在/etc目录下创建keepalived目录
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
# 创建入口脚本文件,可以接收start| stop | status | restart
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
#拷贝系统配置文件
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
#经过了如上的处理就可以通过以下方式来操作keepalived
service keepalived start | stop | restart | status

2.9.2.2.Tracker节点keepalived配置

#防火墙添加arrp组播规则,或关闭防火墙 
vi /etc/sysconfig/iptables 
-A INPUT -p vrrp -d 224.0.0.18/32 -j ACCEPT
#切换至/etc/keepalived/目录
#注意:采用本地安装时配置文件路径为/usr/local/keepalived/etc/keepalived
cd /etc/keepalived/
#复制keepalived.conf文件
cp keepalived.conf keepalived.conf.sample
#修改keepalived配置文件
vi /etc/keepalived/keepalived.conf
192.168.152.11Tracker节点配置文件如下(注意红色部分):
global_defs {
           router_id nginx_01  #标识本节点的名称,通常为hostname
        }

        ## keepalived会定时执行脚本并对脚本执行的结果进行分析,动态调整vrrp_instance的优先级。
        ##如果脚本执行结果为0,并且weight配置的值大于0,则优先级相应的增加。如果脚本执行结果非0,
        ##并且weight配置的值小于 0,则优先级相应的减少。其他情况,维持原本配置的优先级,即配置文件中priority对应的值。
        vrrp_script chk_nginx {
               script "/etc/keepalived/nginx_check.sh"#注意路径(本地安装时的路径差别)
               interval 2  #每2秒检测一次nginx的运行状态
               weight -20  #失败一次,将自己的优先级-20
        }

        vrrp_instance VI_1 {
            state BACKUP                  # 状态,主节点为MASTER,备份节点为BACKUP(抢占模式可设置一个为MSTER)
            interface eth1              # 绑定VIP的网络接口,通过ifconfig查看自己的网络接口
            virtual_router_id 51          # 虚拟路由的ID号,两个节点设置必须一样,可选IP最后一段使用,相同的VRID为一个组,他将决定多播的MAC地址
            mcast_src_ip 192.168.152.11    # 本机IP地址
            priority 100                  # 节点优先级,值范围0~254,MASTER要比BACKUP高
            advert_int 1                  # 组播信息发送时间间隔,两个节点必须设置一样,默认为1秒
            nopreempt
            # 设置验证信息,两个节点必须一致
            authentication {
                auth_type PASS
                auth_pass 1111
            }
            # 虚拟IP,两个节点设置必须一样。可以设置多个,一行写一个
            virtual_ipaddress {
                192.168.152.20
            }

            track_script {
               chk_nginx  # nginx存活状态检测脚本
            }
        }
192.168.152.14racker节点配置文件如下:
global_defs {
           router_id nginx_02
        }

        vrrp_script chk_nginx {
            script "/etc/keepalived/nginx_check.sh"
            interval 2
            weight -20
        }

        vrrp_instance VI_1 {
            state BACKUP
            interface eth2
            virtual_router_id 51
            mcast_src_ip 192.168.152.14
            priority 90
            advert_int 1
            nopreempt
            authentication {
                auth_type PASS
                auth_pass 1111
            }
            virtual_ipaddress {
                192.168.152.20
            }

            track_script {
               chk_nginx
            }
        }
注意:上述配置为keepalived的非抢占模式的配置
非抢占模式的配置与抢占模式的配置的区别为:
1.在vrrp_instance块下两个节点各增加了nopreempt指令,表示不争抢vip
2.节点的state都为BACKUP(抢占模式有一个设置为MASTER)(两个keepalived   节点都启动后,默认都是BACKUP状态,双方在发送组播信息后,会根据优先级来  选举一个MASTER出来。由于两者都配置了nopreempt,所以MASTER从故障中恢    复后,不会抢占vip。这样会避免VIP切换可能造成的服务延迟。)
#创建nginx服务检测脚本
#分别在主备服务器/etc/keepalived目录下创建nginx_check.sh脚本,并为其添加执行权限chmod +x /etc/keepalived/nginx_check.sh。用于keepalived定时检测nginx的服务状态,如果nginx停止了,会尝试重新启动nginx,如果启动失败,会将keepalived进程杀死,将vip漂移到备份机器上。
cd /etc/keepalived
vi nginx_check.sh
#!/bin/bash
A=`ps -C nginx --no-header | wc -l`
if [ $A -eq 0 ];then
    /opt/nginx/sbin/nginx #尝试重新启动nginx
    sleep 2  #睡眠2秒
    if [ `ps -C nginx --no-header | wc -l` -eq 0 ];then
        killall keepalived #启动失败,将keepalived服务杀死。将vip漂移到其它备份节点
    fi
Fi

2.9.2.3.Tracker节点启动keepalived

#启动keepalived
service keepalived start
注意:本地安装的启动方式如下示例
/usr/local/keepalived/sbin/keepalived -f /usr/local/keepalived/etc/keepalived/keepalived.conf
#检查是否启动
ps -ef | grep keepalived
#查看vip绑定情况
ip addr

这里写图片描述

2.9.3.设置tracker节点keepalived与nginx开机启动

设置开机启动采用修改/etc/rc.d/rc.local文件的方式
vi /etc/rc.d/rc.local
#Tracker服务器上添加如下内容
/usr/local/nginx/sbin/nginx
service keepalived start

2.9.4.Keepalived测试

Keepalived测试可结合ip addr命令在关闭或开启tracker节点的情况下查看vip的绑定情况,及用vip即192.168.152.20访问应用,进行文件的上传下载操作,完成综合测试。

3.扩展

3.1.Storage同组内节点扩容

在不添加组的情况下进行FastDFS的扩容,可增加磁盘,配置中添加store_path[x]参数即可,
注意:同组内的所有机器都要扩容
参考下述步骤

3.1.1.同一组内所有Storage节点挂载磁盘

3.1.2.FastDFS及Nginx相关配置文件修改

#修改tracker.conf(Tracker节点)配置文件
vi /etc/fdfs/tracker.conf
将 store_path=0 修改为 store_path=2
从轮询的方式改为存储负载均衡的方式(即选择剩余空间最大的目录存放文件)
#修改storage.conf(Storage节点)配置文件
vi /etc/fdfs/storage.conf
将 store_path_count=1 改为 store_path_count=2
增加store_path1=/fdfs/storage1
#修改mod_fastdfs.conf(Storage节点)配置文件
将store_path_count=1 改为 store_path_count=2
在 store_path0=/fastdfs/storage 下面增加一行store_path1=/fastdfs2/storage
同一节点上分配多个组的话,在该配置文件最下边依据规律做相应的修改
#建立软连接
ln -s /fastdfs2/storage/data/ /fastdfs2/storage/data/M01
#修改nginx.conf(Storage节点)配置文件
将location ~/group([0-9])/M00 {
            ngx_fastdfs_module;
        }
修改为location ~/group([0-9])/M0[0-1] {
            ngx_fastdfs_module;
        }
#重启tracker、storage、nginx
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
/usr/local/nginx/sbin/nginx -s reload
注意:若http的形式无法访问的话执行下述命令尝试
Killall nginx
/usr/local/nginx/sbin/nginx

注意:原文写的时候为word格式,文中出现的颜色区分的地方没有相应效果,勿怪^_^

主要参考文章
FastDFS集群部署 - 孟凡柱的专栏 - 博客园
分布式文件管理系统_FastDFS集群 - 啥也不懂的新同学 - 博客园
FastDFS 配置文件详解(修订版1) - 分布式文件系统(FastDFS)-ChinaUnix.net
FastDFS+Nginx(单点部署)事例 - 孟凡柱的专栏 - 博客园
FastDFS单台服务器一个tracker多个storage - CSDN博客
nginx配置location [=|~|~*|^~] /uri/ { … }用法 - CSDN博客
CentOS 6.3(64) —> fastdfs_v4.07 / 实现多服务器 - shking的个人页面
FastDFS增加存储路径配置 - CSDN博客
nginx系列(二十)nginx的缓存清理模块ngx_cache_purge - 猫头哥(朴海林)_QQ:85977328 - ITeye博客
FastDFS的配置、部署与API使用解读(1)Get Started with FastDFS - 麦克船长的技术笔记 - CSDN博客

Linux 高可用(HA)集群之keepalived详解-Share your knowledge …-51CTO博客
keepalived工作原理和配置说明 - 为程序员服务
Keepalived安装与配置 - CSDN博客
Keepalived+Nginx实现高可用(HA) - CSDN博客
Linx下Keepalived做成服务 - 下士闻道 - 博客园
Keepalived系列一:安装Keepalived - 艾森豪威迩 - 博客园

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值