CentOS6系列-FastDFS高可用集群安装指南-含keepalived  

近期项目需要,文件尺寸范围大概2M~10M之间,将来可能150M单文件左右。考虑到项目模式和存储模式的匹配,放弃了hdfs采用fastdfs。以下是网上找的一份资料,大部分功能基本一次配置成功,格式简单调整,如需原文请查看:https://blog.csdn.net/plholx/article/details/78416017,
本文章也是在参考了网上好多相关文章(主要参考文章见文末)后自学整理的,如有错误之处烦请留言指正。

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 – 艾森豪威迩 – 博客园

PS:有坑的地方

1.无论哪个集群,如果还没有配置相应服务器,即使服务启动成功,访问时也会出现status n!=0的错误

2.fastdfs总存储量以存储量最小的storage服务器为准

3.如果项目应用不需要多group可以只1个,但是建议保留group访问的配置写法

4.实际生产中大多数采用虚拟化,所以storage需要n>=2,tracker只要n=1即可

5.tracker和storage即使服务挂了,nginx直接访问文件的方式也是没错的

6.IO比较大的情况下可以考虑优化,有个例子懒得贴过来了  https://blog.csdn.net/u010820702/article/details/79630115

 

欢迎大佬支持本博客的发展 -- Donate --

本文链接:CentOS6系列-FastDFS高可用集群安装指南-含keepalived

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:三十岁,谢谢!^^


分享到:          
  1. 没有评论

  1. 没有通告