keepalived高可用 -03

keepalived高可用

一、keepalived 脑裂 (增大服务器压力)
# 由于某些原因,导致两台keepalived高可用服务器在指定时间内,无法检测到对方的心跳,各自取得资源及服务的所有权,而此时的两台高可用服务器又都还活着。

备用节点如何知道主节点是否down机?

备用节点一直在PING挂载在主节点的VIP.主节点的VIP会给备用节点会回复PONG,证明主节点并没有宕机。如果主节点没有回复,则备用节点则会启动自己的VIP。
1.脑裂的故障
1.网线松动,网络故障
2.服务器硬件故障
3.服务器之间开启了防火墙
#脑裂的产生,对于用户端的浏览器,并没有任何影响,影响的是我们后端的服务器,假如keepalived,开启了日志,我们的后端的服务器会产生双倍的日志,占用我们服务器的硬盘空间。
2.脑裂模拟-------(傻子才模拟)
1、开启防火墙
`开启了防火墙,lb01和lb02之间的 keepalived 大家都互相PING不通。所以主节点以及备用节点。都开启了VIP以及VMAC
[root@lb01 ~]# systemctl start firewalld.service 
[root@lb01 ~]# ip addr | grep 10.10.0.102
    inet 10.10.0.102/32 scope global eth0
    
[root@lb02 ~]# systemctl start firewalld
[root@lb02 ~]# ip addr | grep 10.10.0.102
    inet 10.10.0.102/32 scope global eth0
    
2、开启防火墙,单独添加端口开启

`因为开启了firewalld防火墙,默认拒绝所有连接,要开启80端口
[root@lb01 ~]# firewall-cmd --add-service=http
success
[root@lb02 ~]# firewall-cmd --add-service=http
success

`因为开启了firewalld防火墙,默认拒绝所有连接,我们用的是HTTPS,还要开启443端口,要开启80端口
[root@lb01 ~]# firewall-cmd --add-service=https
success
[root@lb02 ~]# firewall-cmd --add-service=https
success

#访问页面没有任何问题  
  10.10.0.102
  
3、关闭防火墙
[root@lb02 ~]# systemctl stop firewalld.service 
[root@lb02 ~]# ip addr | grep 10.10.0.102.0.0.3

[root@lb01 ~]# systemctl stop firewalld.service
[root@lb01 ~]# ip addr | grep 10.10.0.102.0.0.3
 inet 10.10.0.102/32 scope global eth0     #lb01优先级高
3.脑裂解决的办法
#如果发生脑裂,则随机kill杀掉一台即可
#在备上编写检测脚本, 测试如果能ping通主并且备节点还有VIP的话则认为产生了脑裂,
` 因为是大家互PING,所以主节点以及备用节点,都需要编写并执行此脚本。
[root@lb01 ~]# cat check_keepalive.sh 
#!/bin/sh
vip=10.10.0.102
lb02_ip=172.16.1.6
while true;do
    ssh $lb01_ip 'ip addr | grep 10.10.0.102' &>/dev/null
    if [ $? -eq 0 -a `ip add|grep "$vip"|wc -l` -eq 1 ];then
        echo "ha is split brain.warning."
    else
        echo "ha is ok"
    fi
sleep 3
done

[root@lb02 ~]# vim check_keepalive.sh 
#!/bin/sh
vip=10.10.0.102
lb01_ip=172.16.1.5
while true;do
    # ping -c 2 $1b01—ip & /dev/null
     ssh $lb01_ip 'ip addr | grep 10.10.0.102' &>/dev/null            
    if [ $? -eq 0 -a `ip add|grep "$vip"|wc -l` -eq 1 ];then
        echo "ha is split brain.warning."
    else
        echo "ha is ok"
    fi
sleep 3
done

## 免密
[root@lb01 ~]# ssh-keygen  #一路回车
[root@lb01 ~]# ssh-copy-id 172.16.1.6
[root@lb01 ~]# ssh 172.16.1.6 'ip addr | grep 10.10.0.102'

[root@lb02 ~]# ssh-keygen    #一路回车
[root@lb01 ~]# ssh-copy-id 172.16.1.5
[root@lb02 ~]# ssh 172.16.1.5 'ip addr | grep 10.10.0.102'
    inet 10.10.0.102/32 scope global eth0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FikL-09-19

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值