当前位置: 首页 > news >正文

keepalive脑裂

keepalive脑裂

调度器的高可用

vip地址主备之间的切换,主在工作时,p地址只在主上,主停止工作,ip飘移到备服务器。

在主备的优先级不变的情况下,主恢复工作,vip会飘回到主服务器。

1、配优先级

2、配置vip和真实服务器

3、主备的id要一致。

4、主备的id要区分。

kedpalive是专门为lvs打造的,但是不是为Ivs专门服务的

keepalive也可以使用nginx,haproxy

192.168.39.30 客户端 test1
192.168.39.40 nginx1 keepalive
192.168.39.50 nginx2 keepalive
监控的脚本,来监控nginx1的状态
如果nginx1挂了,nginx1的keepalive
也要停止,实现vip的飘移。
nginx1
vim /usr/local/nginx/html/index.html
this is nginx1
cd /opt
vim check_nginx.sh
#!/bin/bash
/usr/bin/curl -I http://localhost &> /dev/null
if [ $? -ne 0 ]
thensystemctl stop keepalived
fivim /etc/keepalived/keepalive.conf
! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_01vrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0vrrp_iptables
}
vrrp_script check_nginx {script "/opt/check_nginx.sh"#调用脚本内容,检测nginx状态interval 5#检测的间隔时间是5秒
}
vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 120advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.39.100}track_script {check_nginx}
}
systemctl restart nginx
systemctl restart keepalivenginx2
vim /usr/local/nginx/html/index.html
this is nginx2scp root@192.168.39.40:/etc/keepalived/keepalive.con /etc/keepalivedvim /etc/keepalived/keepalive.conf
修改level等级,和优先级100
systemctl restart nginx
systemctl restart keepalive客户机中
curl 192.168.39.100在nginx1中
ip addr
#查看是否有vip地址192.168.39.100
关闭nginx和keepalive,到nginx2中ip addr查看vip地址是否飘过来
在nginx2中
关闭nginx和keepalive,到nginx1中ip addr查看vip地址是否飘过来

脑裂是什么

HA 高可用架构中的一个特殊现象,只要使用vip地址代理的冗余模式的高可用,都有可能出现脑裂的问题

主和备同时都有vip地址

主和备无法确定各自的身份,同时出现了vip地址,两边都起来了,但是两边都无法使用

原因

1、keepalive的配置文件问题

2、心跳线(网线),断了,老化

3、网卡出问题(硬件),ip地址配置冲突

4、防火墙的策略,iptables的策略,屏蔽了组播的地址广播。屏蔽了vrrp协议的报文

5、两台服务器的时间不同步也可能导致

6、其他的服务配置对心跳线的服务进行干扰

怎么解决

1、查看配置文件中主备名称是否更改,level等级是否更改,优先级是否更改,网卡是否一致

2、更换心跳线,定期检查心跳线

3、更换网卡,查看IP地址是否重复(ifconfig)

4、关闭防火墙,iptables表中,将屏蔽了报文进出的策略关闭,

5、查看服务器的时间是否一致,将两台服务器的时间同步

6、给服务做隔离,配置多个心跳线路或使用独立的网络接口,以减少单一链路问题对整体健康检测的影响。为不同的服务分配不同的资源,以防止某个服务占用过多资源影响心跳检测。使用可靠的集群管理工具

nginx lvs lvs+keepalive keepalive单独配置

web集群

Haproxy负载均衡:

nginx 四层转发,七层代理

Ivs 四层转发 内核转发 用户态

Haproxy 四层转发,七层转发

haproxy的作用和使用场景

1、场景 用于高并发的web,可以支持一万个以上的并发请求,高性能的tcp和http的负载均衡器

工作原理:

提供一个代理地址,访问集群

2、作用:

1、进行四层和七层转发

2、支持https

3、haproxy本身不自带缓存功能,请求当中添加cookie使用缓存

4、支持主备切换(keepalive)

3、特点

可靠性高,稳定性好

可以同时维护40000-50000个并发,单位时间内可以处理的最大请求数20000个(3秒钟)

支持负载均衡算法,虽然不带缓存,但是可以支持会话保持

rr

wrr

lestconn

haproxy负载均衡(高可用)
test1 192.168.39.30
nginx1 192.168.39.40
nginx2 192.168.39.50
关闭所有的防火墙nginx1和nginx2
先配置index.html网页test1
安装haproxy的环境
yum install -y pcre-devel bzip2-devel gcc gcc-c++ make
cd /opt
#将haproxy安装包拖进来
tar -xf haproxy-1.5.19.tar.gz
cd haproxy-1.5.19/
uname -r
#查看内核
make TARGET=linux2628 ARCH=x86_64
#target使用的版本要大于linux.2.60以上的版本
make install
mkdir /etc/haproxy
cd examples/
cp haproxy.cfg /etc/haproxy
cd /etc/haproxy/
vim haproxy.cfg
cd /opt/haproxy-1.5.19/examples/
cp haproxy.init /etc/init.d/haproxy
cd /etc/init.d/
chmod 777 /etc/init.d haproxy
chkconfig --add /etc/init.d/haproxy
cd /usr/local/sbin
ln -s /usr/local/sbin/haproxy /usr/sbin/
systemctl restart haproxy
客户机上 curl 192.168.39.30
vim haproxy.cfg
# this config needs haproxy-1.1.28 or haproxy-1.2.1globallog /dev/log 	local0  infolog /dev/log	local1 notice#log loghost	local0 infomaxconn 4096
# 最大连接数,推荐使用1024#chroot /usr/share/haproxyuid 99gid 99daemonnbproc 6#相当于haproxy的并发的线程数,设置的数量最好是CPU的两倍或保持一致#debug#quietdefaults
#默认参数配置,连接配置,监听配置以及代理配置log	globalmode	httpoption	httplogoption	dontlognullretries	3#检查节点服务器三次,连续三次失败,就认为节点服务器不可用redispatch#服务器负载很高时,自动结束当前结束当前队列处理比较久的连接maxconn	2000#最大连接数,这个数值可以和global中的maxconn保持一致也可以比他小,但是不能超过他
#	contimeout	5000
#	clitimeout	50000
#	srvtimeout	50000timeout http-request 10s#http请求的默认超时时间timeout queue 1m #在队列当中请求的超时时间timeout connect 10s#连接超时时间timeout client 1m#客户端连接超时时间timeout server 1m#服务端的超时时间timeout http-keep-alive 10s#默认长连接的超时时间timeout check 10s#检查后端服务器的超时时间#转发请求的设置,既可以是四层也可以是七层 
#七层配置listen	xy102   0.0.0.0:80option httpchk GET /index.html#设置转发请求的内容balance	static-rr
#默认轮询算法server	rs01 192.168.39.40  check inter 2000  fall 3 weight 2server	rs02 192.168.39.50  check inter 2000  fall 3 weight 3
#server指定真是服务器  
#rs01 自定义后台服务器的名称  
#check intern 2000  启动对后端服务器进行检查,检查的间隔2000毫秒  
#fall 3 连续三次检测不到就是失败#四层转发:
frontend test
bind *:80
mode tcp
default_backend testbackand test
mode tcp
balance roundrobin
server sever1 192.168.39.40:80 check inter 2000  fall 3 weight 2
server sever2 192.168.39.50:80 check inter 2000  fall 3 weight 2
http://www.lryc.cn/news/399160.html

相关文章:

  • STM32Cubemx配置生成 Keil AC6支持代码
  • Perl基础入门指南:从零开始掌握Perl编程
  • Mybatis SQL注解使用场景
  • Dataset for Stable Diffusion
  • 近期matlab学习笔记,学习是一个记录,反复的过程
  • Elasticsearch7.5.2 常用rest api与elasticsearch库
  • Autosar Dcm配置-0x28服务ComControl-基于ETAS软件
  • 平安养老险厦门分公司:提升金融服务,发挥金融力量
  • 【开源合规】开源许可证风险场景详细解读
  • Redis持久化RDB,AOF
  • 【持续集成_03课_Linux部署Sonar+Gogs+Jenkins】
  • mvcc 速读
  • 美容仪维修过程记录
  • STM32入门开发操作记录(一)——新建工程
  • QT实现自定义带有提示信息的透明环形进度条
  • 金币程序题
  • 《Windows API每日一练》9.13资源-鼠标位图和字符串
  • 【保姆级教程】CenterNet的目标检测、3D检测、关键点检测使用教程
  • thinkphp:数据库复合查询-OR的使用
  • 网络安全那些梗
  • 交通气象站:保障道路安全的智慧之眼
  • 【分库】分库的核心原则
  • 【Linux】软件管理工具 yum
  • LangChain —— Prompt Templates
  • Python库 - Scrapy
  • 函数(实参以及形参)
  • ArcGIS Pro SDK (八)地理数据库 8 拓扑
  • uniapp如何发送websocket请求
  • RabbitMQ的工作模式
  • 自建搜索引擎-基于美丽云