zoukankan      html  css  js  c++  java
  • 高可用的脑裂现象

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

    1.脑裂的原因

    1.服务器网线松动等网络故障
    2.服务器硬件故障发生损坏现象而崩溃
    3.主备都开启firewalld防火墙

    2.故障演示

    1)开启防火墙

    [root@lb01 ~]# systemctl start firewalld
    [root@lb02 ~]# systemctl start firewalld

    2)查看两个节点

    [root@lb01 ~]# ip addr | grep 10.0.0.3
        inet 10.0.0.3/32 scope global eth0
        
    [root@lb02 ~]# ip addr | grep 10.0.0.3
        inet 10.0.0.3/32 scope global eth0

    3)访问项目页面

    #拒绝访问,需要配置防火墙规则
    [root@lb01 ~]# firewall-cmd --add-service=http
    success
    [root@lb02 ~]# firewall-cmd --add-service=https
    success
    
    #访问页面正常

    3.解决脑裂的办法

    #如果发生脑裂,则随机kill掉一台即可
    #在备节点上编写检测脚本, 测试如果能ping通主,并且备节点还有VIP的话则认为产生了脑裂
    [root@lb02 ~]# vim /scripts/check_split_brain.sh 
    #!/bin/sh
    vip=10.0.0.3
    lb01_ip=10.0.0.4
    lb02_vip=$(ip add|grep "$vip"|wc -l)
    while true;do
        ssh $lb01_ip "ip add|grep $vip" &>/dev/null
        if [ $? -eq 0 -a $lb02_vip -eq 1 ];then
            echo "ha is split brain.warning."
        else
            echo "ha is ok"
        fi
    sleep 5
    done
    
    -eq        #等于
    -ne        #不等于
    -lt        #小于
    -gt        #大于
    -le        #小于等于
    -ge        #大于等于
  • 相关阅读:
    转发 GSLB概要和实现原理
    通过openresty && tengine && nginx 动态添加资源到 html 页面
    Terraform 多云管理工具
    vault key 管理工具
    fabio
    keycloak 了解
    访问交换机的三种方式
    LAN、WAN、WLAN的区别
    浅谈团队贡献分如何分配
    Java程序性能分析工具Java VisualVM(Visual GC)—程序员必备利器
  • 原文地址:https://www.cnblogs.com/chenlifan/p/13652539.html
Copyright © 2011-2022 走看看