FastFDS集群配置说明

FastFDS集群配置说明

1.   集群方案设计图

 

 

1.1.  设计图的说明

 

节点名称

节点IP

端口

作用简述

PMS-HA(虚拟)

192.168.6.40

外部访问入口

负载均衡节点1

192.168.6.41

80

调节数据存储

负载均衡节点2

192.168.6.42

80

调节数据存储

跟踪服务器1

192.168.6.43

8000

监控存储器

跟踪服务器2

192.168.6.44

8000

监控存储器

存储服务器1

192.168.6.45

8888

存储数据

存储服务器2

192.168.6.46

8888

存储数据

存储服务器3

192.168.6.47

8888

存储数据

存储服务器4

192.168.6.48

8888

存储数据

 

1.2.  创建集群节点步骤:

1.2.1.   连接服务器

打开vSphere Client,连接到192.168.6.77

1.2.2.   部署模板

进入如下界面后,点击图中FastDFS_cluster-->文件-->部署OVF模板

 

1.2.3.   选择模板

在如下图中点击“浏览”,选择ova模板

 

 

 

1.2.4.   部署完成

选择后点击“下一步”直到出现下图界面,在输入框内输入要创建的节点名称,输入后一直点击“下一步”直到出现“完成”按钮,点击“完成”即创建成功。

 

 

1.2.5.   修改信息

创建成功后开启虚拟机并登录,用户名和密码均为root,登录成功后在命令行输入如下命令:

“vi /etc/sysconfig/network-scripts/ifcfg-enoXXXXX”("XXXXX"可输入en按Tab键提示),修改IPADDR的值为创建的IP地址,如下图:

 

1.2.6.   重启网卡

输入如下命令重启网卡:

/etc/init.d/network restart

1.2.7.   查看网卡信息

输入ip addr命令查看网卡信息,此时已变为更改后的网址

1.2.8.   创建其他节点

重复以上方法创建出41--48节点并按1.1的节点说明取相同的名称

2.   安装集群节点

说明:在43--48节点执行以下操作:

2.1.  安装所需依赖包

 yum install make cmake gcc gcc-c++

 yum install php-devel php-pear httpd-devel

2.2.  安装libfastcommon

 cd /usr/local/src

[root@localhost  src]#  unzip  libfastcommon-master.zip

[root@localhost  src]#  cd libfastcommon-master

[root@localhost  libfastcommon-master]# ./make.sh

[root@localhost  libfastcommon-master]# ./make.sh install

2.3.  安装FastDFS

cd /usr/local/src

unzip fastdfs-master-V5.05.zip

cd fastdfs-master

./make.sh

./make.sh install

3.   配置跟踪节点(Tracker43-44)

3.1.  创建配置文件

输入如下命令复制tracker样例配置文件,并重新命名

 cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf

3.2.  修改配置文件

 vi /etc/fdfs/tracker.conf

修改以下3个选项,完成后保存退出:

disabled=false

port=22122

base_path=/fastdfs/tracker

3.3.  创建目录

创建配置文件中base_path指定的目录

mkdir  -p  /fastdfs/tracker

3.4.  防火墙设置

防火墙中打开tracker服务器端口,操作如下:

设置端口 firewall-cmd --zone=public --add-port=22122/tcp --permanent

重启防火墙 systemctl restart firewalld.service

查询端口 firewall-cmd  --query-port=22122/tcp

 

3.5.  启动tracker服务器

输入 ps  -ef|grep fdfs_trackerd查看FastDFS Tracker Server启动情况,信息如下则启动成功:

 

启动成功后,会在fastdfs/tracker目录下生成data、logs两个目录:

 

3.6.  停止tracker服务器

输入如下命令,出现如图中“确定”则成功停止tracker服务器

/etc/init.d/fdfs_trackerd stop

 

3.7.  设置tracker服务器开机启动

输入如下命令设置服务器开机启动,不报错则设置成功:

 

  chkconfig  fdfs_trackerd  on

4.   配置存储节点(Storage45-48)

group1:192.168.6.45, 192.168.6.46      group2:192.168.6.47, 192.168.6.48

说明:此处配置是在节点完成了上述(2.安装集群节点)的基础上进行的

4.1.  创建配置文件

复制storage样例配置文件,并重命名,见下图:

  cp /etc/fdfs/storage.conf.sample  /etc/fdfs/storage.conf

 

 

4.2.  编辑配置文件

vi /etc/fdfs/storage.conf

只修改如下内容,其他保留默认配置:

disabled=false                    

port=23000                         

group_name=group1

base_path=/fastdfs/storage

store_path0=/fastdfs/storage       

store_path_count=1                  

tracker_server=192.168.0.200:22122 

tracker_server=192.168.0.201:22122 

http.server_port=8888

4.3.  创建存放数据的目录     

mkdir -p /fastdfs/storage

4.4.  防火墙设置

设置端口 firewall-cmd --zone=public --add-port=23000/tcp --permanent

重启防火墙 systemctl restart firewalld.service

查询端口 firewall-cmd  --query-port=23000/tcp

出现如下图所示则设置成功:

 

4.5.   启动storage服务器

/etc/init.d/fdfs_storaged start

输入如下命令,执行成功会在fastdfs/storage目录下生成data、logs两个目录

 

检查FastDFS Tracker Server是否启动成功:

ps -ef|grep fdfs_storaged

输入以上命令,如出现下图界面则启动成功:

 

节点启动后,可以用如下命令监听存储节点的日志:

  tail -f  /fastdfs/storage/logs/storaged.log

所有存储节点启动后,可以在任一存储节点用如下命令查看集群状态信息:

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

4.6.  停止storage服务器

/etc/init.d/fdfs_storaged stop

输入以上命令,出现如下图界面则服务器停止

 

4.7.   设置storage服务开机启动

输入以下命令设置storage服务器开机启动

chkconfig fdfs_storaged on

5.   文件上传测试

5.1.   修改配置文件

复制修改tracker服务器client.conf配置文件,输入如下命令:

cp /etc/fdfs/client.conf.sample  /etc/fdfs/client.conf

vi /etc/fdfs/client.conf

修改如下信息,其他默认:

tracker_server=192.168.6.43:22122

tracker_server=192.168.6.44:22122

5.2.  上传文件测试

执行如下文件上传命令(红色部分为要上传的文件):

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/nginx-1.10.0.tar.gz

 

返回如下图则上传文件成功:

 

6.   安装Nginx和fastdfs-nginx-module模块

说明:每个存储节点(45-48)执行相同的操作

6.1.   模块说明

FastDFS 通过 Tracker 服务器,将文件放在 Storage 服务器存储,但是同组存储服务器之间需要进入文件复制流程,有同步延迟的问题。假设 Tracker 服务器将文件上传到了 192.168.6.45,上传成功后文件 ID已经返回给客户端。此时 FastDFS 存储集群机制会将这个文件同步到同组存储 192.168.6.46,在文件还没有复制完成的情况下,客户端如果用这个文件 ID 在 192.168.6.46上取文件,就会出现文件无法访问的错误。而 fastdfs-nginx-module 可以重定向文件连接到源服务器(192.168.6.45)上取文件,避免客户端由于复制延迟导致的文件无法访问错误。

6.2.  安装nginx和fastdfs-nginx-module模块

输入如下命令安装nginx所需的依赖包:

  yum install gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel

 

在以上界面输入"y",出现如下界面则安装成功:

 

进入usr/local/src目录并输入: tar -zxvf nginx-1.10.0.tar.gz

unzip fastdfs-nginx-module-master.zip

cd nginx-1.10.0

 ./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx --add-module=/usr/local/src/fastdfs-nginx-module-master/src

 make && make install

6.3.  修改配置文件

复制 fastdfs-nginx-module 源码中的配置文件到/etc/fdfs 目录,并修改

cp /usr/local/src/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/

[root@localhost src]# vi /etc/fdfs/mod_fastdfs.conf

第一组存储服务器的mod_fastdfs.conf配置:

connect_timeout=10

base_path=/tmp

tracker_server=192.168.1.200:22122

tracker_server=192.168.1.201:22122

storage_server_port=23000

group_name=group1                      

url_have_group_name=true

store_path0=/fastdfs/storage

group_count=2

 (以下部分要放开注释并修改)

[group1]

group_name=group1

storage_server_port=23000

store_path_count=1

store_path0=/fastdfs/storage

[group2]

group_name=group2

storage_server_port=23000

store_path_count=1

store_path0=/fastdfs/storage

第二组存储服务器的mod_fastdfs.conf配置:与第一组存储服务器的mod_fastdfs.conf配置相同,只有group_name不同:

group_name=group2

6.4.  复制目录 

复制FastDFS源文件目录中HTTP相关的配置文件到/etc/fdfs目录

cd /usr/local/src/fastdfs-master/conf

cp http.conf  mime.types  /etc/fdfs/

6.5.  创建连接

创建数据存放目录的软链接,输入如下命令:

ln -s /fastdfs/storage/data/  /fastdfs/storage/data/M00

 

6.6.  配置nginx.conf

输入以下命令进入配置文件,将server下的listen 值改为:8888

vi /opt/nginx/conf/nginx.conf

6.7.  修改端口

输入如下命令修改端口,将Nginx的防火墙端口为8888并重启防火墙

 

firewall-cmd --zone=public --add-port=8888/tcp --permanent

systemctl restart firewalld.service

6.8.  启动Nginx

输入如下命令,启动Nginx

/usr/bin/nginx

启动nginx后,打印ngx_http_fastdfs_set pid=xxx,表示fastdfs-nginx-module模块加载成功了

 

7.   跟踪节点安装Nginx和ngx_cache_purge

tracker节点:192.168.6.43  192.168.6.44执行相同操作

7.1.   安装Nginx所需的依赖包

输入如下命令:yum install gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel

7.2.   安装nginx和ngx_cache_purge模块

执行如下操作:

cd /usr/local/src

tar -zxvf  nginx-1.10.0.tar.gz

tar -zxvf ngx_cache_purge-2.3.tar.gz

cd nginx-1.10.0

cd nginx-1.10.0

./configure--prefix=/opt/nginx--sbin-path=/usr/bin/nginx--add-module=/usr/local/src/ngx_cache_purge-2.3

# make && make install

7.3.   配置Nginx,设置tracker负载均衡以及缓存

输入如下命令:vi /opt/nginx/conf/nginx.conf

进入如下界面,将框内信息修改与现红色框内一致:

 

 

必需加上红色框(以下红色部分代码)中这部分,否则会报错:

proxy_cache_path /fastdfs/cache/nginx/proxy_cache/path levels=1:2

keys_zone=cache_one:100m inactive=7d max_size=1000g;

根据以上 nginx 配置文件的要求,创建对应的缓存目录:

mkdir -p /fastdfs/cache/nginx/proxy_cache

mkdir -p /fastdfs/cache/nginx/proxy_cache/tmp

7.4.  设置防火墙

设置端口 firewall-cmd --zone=public --add-port=8000/tcp --permanent

重启防火墙 systemctl restart firewalld.service

7.5.   启动nginx

输入命令启动nginx: /usr/bin/nginx

7.6.  设置nginx开机启动

输入如下命令修改配置文件:

vi /opt/nginx/conf/nginx.conf

在配置文件中加入如图红色框内代码:

 

输入chmod +x /etc/rc.local设置完成

注:如果同一组(如tracker-1和tracker-2),其中tracker-2是由tracker-1的模板生成的,那么生成后要修改相应的IP并重新启动虚拟机,否则将无法访问

8.   配置服务器高可用、反向代理与负载均衡

8.1.   安装keepalived与Nginx

分别在192.168.6.41和192.168.6.42两个节点安装Keepalived与Nginx。

Nginx的安装及设置同Storage节点的Nginx的安装和设置。

keepalived的安装步骤如下:

安装keepalived所需的依赖包:yum install -y net-tools psmisc

安装Keepalived:yum install -y ipvsadm keepalived

启动keepalived:systemctl  start  keepalived

设置开机启动:systemctl  enable  keepalived

输入 ps -ef|grep keepalived,出现如下界面则安装成功:

 

8.2.    配置nginx对tracker节点的负载均衡

shell> vi /opt/nginx/conf/nginx.conf

user  root;

worker_processes  1;

events {

    worker_connections  1024;

    use epool;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

 

    ## FastDFS Tracker Proxy

    upstream fastdfs_tracker {

         server 192.168.1.200:8000 weight=1 max_fails=2 fail_timeout=30s;

         server 192.168.1.201:8000 weight=1 max_fails=2 fail_timeout=30s;

    }

server {

        listen       80;

        server_name  localhost;

        location / {

            root html;

            index  index.html index.htm;

        }

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root html;

        }

 

        ## FastDFS Proxy

        location /dfs {

            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;

        }

    }

}

8.3.   抢占模式配置

keepalived的HA分为抢占模式和非抢占模式,抢占模式即MASTER从故障中恢复后,会将VIP从BACKUP节点中抢占过来,这里我们配置为抢占模式。

修改配置文件(其中一个节点为MASTER,另一个为BACKUP):

vi /etc/keepalived/keepalived.conf

下图为MASTER节点:

 

将上图红色框内信息修改为自己创建的节点信息。

 

下图为BACKUP节点,其中virtual_ipaddress必须与MASTER的一致:

 

8.4.   创建nginx服务检测脚本

分别在MASTER/BACKUP服务器/etc/keepalived目录下创建nginx_check.sh脚本,并为其添加执行权限。

touch nginx_check.sh            

chmod +x /etc/keepalived/nginx_check.sh

将以下代码输入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

8.5.    启动keepalived服务

输入如下命令启动keepalived服务:

systemctl start keepalived

输入ps -ef|grep keepalived,如果出现如下界面则启动成功:

 

8.6.   配置nginx对tracker节点的负载均衡

2个节点(41-42)的Nginx配置相同,如下所示:

 

 

注意修改红色框内信息,务必一致!

 

8.7.   重启192.168.6.41 和 192.168.6.42 中的Nginx

/usr/bin/nginx -s reload

posted @ 2017-05-27 14:00  腹有诗书  阅读(670)  评论(0编辑  收藏  举报