文件服务器高可用群集,fastDFS文件服务器(三):集群和高可用环境篇
解决两个组轮询存储文件问题
上篇文章中我们搭建了单机版的fastDFS,其中storage有两个group,分别为head和other,我们在测试的时候发现文件每次上传都会到head目录下,如果你希望other和head目录存文件的几率是一样的,那么我们需要修改tracker.conf文件
vi /etc/fdfs/tracker.conf
store_lookup=0
#选择组的方法上传文件
#0:轮转
# 1:指定组
# 2:负载平衡,选择最大的自由空间群上传文件
修改为0后重启tracker服务
/usr/local/fastDFS/FastDFS/tracker/fdfs_trackerd /etc/fdfs/tracker.conf restart
再多次上传文件,则发现head和other的机会是均等的了
轮询后
storage集群环境
实际上在正式的生产环境中,如果只有一台机器是storage,那么当这台机器出现故障 时会影响整个系统都不能存储和访问文件,所以需要再另一台机器上也有同样的storage,
两台机器组成集群环境。
1、环境准备
虚拟机环境
liunx服务器(三):192.168.31.130
2、在192.168.31.130上安装storage
按照上篇文章中安装对应storage及其相关依赖包
安装成功后启动head和other
/usr/local/fastDFS/FastDFS/storage/fdfs_storaged /etc/fdfs/storage.conf restart
/usr/local/fastDFS/FastDFS/storage/fdfs_storaged /etc/fdfs/storage_other.conf restart
查看/fdfs/head/data和/fdfs/other/data生成的目录
256个子目录
3、在192.168.31.130上安装nginx
按照上篇文章中按照nginx及其相关插件包
安装和配置完成后需要修改192.168.31.128中nginx配置文件
vi /usr/local/fastDFS/trackerNginx/conf/nginx.conf
替换之前的这里的信息
#设置head的服务器
upstream fdfs_head {
server 192.168.31.129:8080 weight=1 max_fails=2 fail_timeout=10s;
server 192.168.31.130:8080 weight=1 max_fails=2 fail_timeout=10s;
}
#设置other的服务器
upstream fdfs_other {
server 192.168.31.129:8080 weight=1 max_fails=2 fail_timeout=10s;
server 192.168.31.130:8080 weight=1 max_fails=2 fail_timeout=10s;
}
重启nginx
4、测试文件存储
此时在tracker中上传两次文件
/usr/local/fastDFS/FastDFS/client/fdfs_upload_file /etc/fdfs/client.conf /home/test.png
执行两次上面的命令,如下图所示
上传文件
在192.168.31.129中查看对应head和other目录下文件信息
OK
在192.168.31.130中查看对应head和other目录下文件信息
image.png
OK
清除缓存,停掉129上的storage
缓存清除
http://192.168.31.128:8888/purge/head/M00/00/00/wKgfgVrGEtyANsiaAAENlfmOar0820.JPG
缓存清除
停掉129上storage
ps -ef | grep storage
kill掉对应进程
停止成功
再次访问,任然成功
OK
tracker高可用问题
在实际生产环境中,tracker也是成对出现的,既可以保证tracker的高可用性,也可以起到分流、实现负载均衡。
环境准备
虚拟机环境
liunx服务器(四):192.168.31.131
首先按照上一篇文章中的tracker安装步骤安装好tracker和对应的nginx
1、修改client.conf配置文件
修改四台机器的client.conf配置文件
#之前的基础上修改tracker_server为两个即可
tracker_server=192.168.31.128:22122
tracker_server=192.168.31.131:22122
2、修改/etc/fdfs下面的storage中storage.conf和storage_other.conf
vi /etc/fdfs/storage.conf
#只需要修改下面tracker_server部分即可
tracker_server=192.168.31.128:22122
tracker_server=192.168.31.131:22122
vi /etc/fdfs/storage_other.conf
#只需要修改下面tracker_server部分即可
tracker_server=192.168.31.128:22122
tracker_server=192.168.31.131:22122
3、修改/etc/fdfs下面的mod_fastdfs.conf
vi /etc/fdfs/mod_fastdfs.conf
#只需要修改下面tracker_server部分即可
tracker_server=192.168.31.128:22122
tracker_server=192.168.31.131:22122
4、重启tracker和storage测试文件上传
我们分别重启四台机器上对于的tracker和storage及其nginx
确认都重启成功后,我们进行测试
在128上上传文件如下图所示,分别上传到storage的head和other中
128文件上传
然后在131上传文件如下图所示,分别上传到storage的head和other中
131文件上传
我们到129和130两台storage中都可以找到上面的四张图片
129上的文件
130上的文件
129和130中storage的other下面的文件此处不再截图展示了。
此时停止掉128上的tracker进程,我们会看到131中的日志信息,131的tracker成为了新的leader
131中tracker日志
此时再次上传文件,会发现128中任然可以成功,131中也可以成功,因为client.conf文件中配置了两个tracker服务器,由于我们停止了128中tracker,所以这里会报错
仍然OK
下篇文章中将会结合代码进行文件上传。
文件服务器高可用群集,fastDFS文件服务器(三):集群和高可用环境篇相关推荐
- nginx两台文件服务器集群,keepalived结合nginx状态检测脚本实现对web服务器集群的高可用...
实验环境 两台CentOS-7.5虚拟机 web1:10.0.11.203 web2:10.0.11.204 VIP :10.0.11.210 web类型:nginx 客户端:自用笔记本(win10) ...
- kubeadm部署k8s_(Ansible)三分钟部署一套高可用/可扩展的kubeadm集群
介绍 容器的兴起改变了我们开发,部署和维护软件的方式.容器使我们能够将构成应用程序的不同服务打包到单独的容器中,并在一组虚拟机和物理机上部署这些容器.这就产生了容器编排工具,可以自动执行基于容器的应用 ...
- 高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群
高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群 libnet软件包<-依赖-heartbeat(包含ldirectord插件(需要perl-MailTools的rpm包)) l ...
- 2.redis高可用-持久化-主从复制-哨兵-cluster集群概述与部署,内容依旧多看完直接通透!
文章目录 一,Redis 高可用 1.持久化 2.主从复制 3.哨兵 4.集群(cluster) 二,Redis 持久化方式 1.持久化的功能 2.持久化的方式 三, RDB 持久化 1.触发条件 2 ...
- Redis创建高可用集群教程【Windows环境】
模仿的过程中,加入自己的思考和理解,也会有进步和收获. 在这个互联网时代,在高并发和高流量可能随时爆发的情况下,单机版的系统或者单机版的应用已经无法生存,越来越多的应用开始支持集群,支持分布式部署了. ...
- 【带你重拾Redis】Redis 哨兵集群实现高可用
Redis 哨兵集群实现高可用 哨兵的介绍 sentinel,中文名是哨兵.哨兵是 Redis 集群架构中非常重要的一个组件,主要有以下功能: 集群监控:负责监控 Redis master 和 sla ...
- ActiveMQ的集群与高可用
ActiveMQ的集群与高可用 针对大量的消息吞吐量.对MQ可用性要求非常严格的场景.或者非常复杂的消息处理关系情况下,单个MQ实例通常已经无法满足我们的需要,这时候ActiveMQ的集群和高可用方案 ...
- 蚂蚁集团万级规模 k8s 集群 etcd 高可用建设之路
蚂蚁集团运维着可能是全球最大的 k8s 集群:k8s 官方以 5k node 作为 k8s 规模化的顶峰,而蚂蚁集团事实上运维着规模达到 10k node 规模的 k8s 集群.一个形象的比喻就是,如 ...
- K8S集群Master高可用实践
本文将在前文基础上介绍k8s集群的高可用实践,一般来讲,k8s集群高可用主要包含以下几个内容: 1.etcd集群高可用 2.集群dns服务高可用 3.kube-apiserver.kube-contr ...
最新文章
- 如何动态添加菜单/菜单项、子菜单、右键菜单
- 【面试题】python怎么合并两个字典
- 树莓派进阶之路 (037) - 设置树莓派3 B+的静态IP
- MATLAB自定义函数及局部变量
- Eclipse中看java源代码
- angularjs探秘五 举足轻重的scope
- 域名是如何被墙的_如何快速搭建属于自己的个性网站?
- js密码强度正则表达式_知道这20个前端正则表达式,能让你做项目时少写1000行甚至一万行
- 【牛客 - 370 I 】Rinne Loves Xor(按位前缀和,异或)
- python中itsdangerous模块
- android jni java调用c,Android与JNI(一) ---- Java调用C 静态调用
- WPF入门教程系列(二) 深入剖析WPF Binding的使用方法
- Typename和Class在声明模板时的区别
- java 排序 内存_Java内存模型(二)——重排序
- Boost C++ 智能指针
- HCNA 认证课程笔记(1)
- 数据库mysql表常见字段大小_常用数据库的字段类型及大小
- 杭电CTF 练习题RE WP
- 手机修图软件测试,10款好用的手机图片编辑器软件排行榜
- 颜色格式转换: FFmpeg源代码简单分析:libswscale的sws_getContext()