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