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

龙城网站建设外包网

龙城网站建设,外包网,如何创建微网站,海南网站建设hnycbd1、什么是脑裂 脑裂(split-brain):指在一个高可用(HA)系统中,当联系着的两个节点断开联系时,本来为一个整体的系统,分裂为两个独立节点,这时两个节点开始争抢共享资源&am…

1、什么是脑裂

    脑裂(split-brain):指在一个高可用(HA)系统中,当联系着的两个节点断开联系时,本来为一个整体的系统,分裂为两个独立节点,这时两个节点开始争抢共享资源,结果会导致系统混乱,数据损坏。

    对于无状态服务的HA,无所谓脑裂不脑裂;但对有状态服务(比如MySQL)的HA,必须要严格防止脑裂。

2、解决keepalived脑裂问题

    检测思路:正常情况下keepalived的VIP地址是在主节点上的,如果在从节点发现了VIP,就设置报警信息。脚本(在从节点上)如下:

vim split-brainc_check.sh

#!/bin/bash

# 检查脑裂的脚本,在备节点上进行部署

LB01_VIP=192.168.1.229

LB01_IP=192.168.1.129

LB02_IP=192.168.1.130

while true

do

  ping -c 2 -W 3 $LB01_VIP &>/dev/null

    if [ $? -eq 0 -a `ip add|grep "$LB01_VIP"|wc -l` -eq 1 ];then

        echo "ha is brain."

    else

        echo "ha is ok"

    fi

    sleep 5

done

3、曾经碰到的一个keepalived脑裂的问题(如果启用了iptables,不设置"系统接收VRRP协议"的规则,就会出现脑裂)

    曾经在做keepalived+Nginx主备架构的环境时,当重启了备用机器后,发现两台机器都拿到了VIP。这也就是意味着出现了keepalived的脑裂现象,检查了两台主机的网络连通状态,发现网络是好的。然后在备机上抓包:

# tcpdump -i eth0|grep VRRP 

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode 

listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 

22:10:17.146322 IP 192.168.1.54 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 160, authtype simple, intvl 1s, length 20 

22:10:17.146577 IP 192.168.1.96 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 50, authtype simple, intvl 1s, length 20 

22:10:17.146972 IP 192.168.1.54 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 160, authtype simple, intvl 1s, length 20 

22:10:18.147136 IP 192.168.1.96 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 50, authtype simple, intvl 1s, length 20 

    抓包发现备机能接收到master发过来的VRRP广播,那为什么还会有脑裂现象?

    接着发现iptables开启着,检查了防火墙配置。发现系统不接收VRRP协议。于是修改iptables,添加允许系统接收VRRP协议的配置:

    -A INPUT -i lo -j ACCEPT  

    -----------------------------------------------------------------------------------------

    自己添加了下面的iptables规则:

    -A INPUT -s 192.168.1.0/24 -d 224.0.0.18 -j ACCEPT       #允许组播地址通信

    -A INPUT -s 192.168.1.0/24 -p vrrp -j ACCEPT             #允许VRRP(虚拟路由器冗余协)通信

    -----------------------------------------------------------------------------------------

    最后重启iptables,发现备机上的VIP没了。

    虽然问题解决了,但备机明明能抓到master发来的VRRP广播包,却无法改变自身状态。只能说明网卡接收到数据包是在iptables处理数据包之前。

4、预防keepalived脑裂问题

(1)可以采用第三方仲裁的方法。由于keepalived体系中主备两台机器所处的状态与对方有关。如果主备机器之间的通信出了网题,就会发生脑裂,此时keepalived体系中会出现双主的情况,产生资源竞争。

(2)一般可以引入仲裁来解决这个问题,即每个节点必须判断自身的状态。最简单的一种操作方法是,在主备的keepalived的配置文件中增加check配置,服务器周期性地ping一下网关,如果ping不通则认为自身有问题 。

(3)最容易的是借助keepalived提供的vrrp_script及track_script实现。如下所示:

#vim /etc/keepalived/keepalived.conf

   ......

   vrrp_script check_local {

    script "/root/check_gateway.sh"

    interval 5

    }

   ...... 

   track_script {    

   check_local                  

   }

   脚本内容:

   # cat /root/check_gateway.sh

   #!/bin/sh

   VIP=$1

   GATEWAY=192.168.1.1

   /sbin/arping -I em1 -c 5 -s $VIP $GATEWAY &>/dev/null  

   check_gateway.sh 就是我们的仲裁逻辑,发现ping不通网关,则关闭keepalived。

5、推荐自己写脚本

    写一个while循环,每轮ping网关,累计连续失败的次数,当连续失败达到一定次数则运行service keepalived stop关闭keepalived服务。

如果发现又能够ping通网关,再重启keepalived服务。最后在脚本开头再加上脚本是否已经运行的判断逻辑,将该脚本加到crontab里面。

 

转载于:https://www.cnblogs.com/xihuineng/p/10526386.html

http://www.lbrq.cn/news/2504989.html

相关文章:

  • 有什么好的网站做旅行计划seo工具包括
  • 简繁英3合1企业网站生成管理系统V1.6常见的网络营销工具
  • 企业微信网站建设方案百度招商加盟
  • 网站备案审核需要多久网站需要改进的地方
  • 哪里网站建设联系重庆网站设计
  • 网站模板怎么设计软件怎样和政府交换友链
  • 深圳网站托管宁波seo教程行业推广
  • 做网站信科网站建设英文seo是什么意思
  • wordpress 三款站群插件之比较seo免费
  • 济南企业建站营销软件网
  • 重庆网站建设行业新闻网页自动点击软件
  • 付费链接生成平台网站优化排名软件
  • 锦州网站建设新闻软文营销的概念
  • 安徽马鞍山人才网重庆seo公司排名
  • 杭州品牌网站建设推广域名解析ip地址
  • 广州市国外网站建设平台百度快速收录软件
  • 石油 技术支持 东莞网站建设百度搜索技巧
  • 武汉品牌网站建设公司哪家好北京百度推广电话
  • 网站怎么做限时抢购江苏网站建设推广
  • 哪个网站做批发最便宜吗网页制作软件哪个好
  • 做网站申请域名大概花费多少it培训机构出来能找到工作吗
  • 珠海中企网站建设网络推广员每天的工作是什么
  • 巨野菏泽网站建设安卓手机优化软件排名
  • 北京做家政网站有哪些平台app拉新推广平台渠道
  • 安徽省住房和城乡建设厅证件查询保定seo外包服务商
  • 免费外贸电商平台seo专业培训学费多少钱
  • 微信企业app下载安装seo成功案例分析
  • 网站描述标签怎么写做网页怎么做
  • 网站域名注册费用优化网站收费标准
  • 做网站游戏怎么挣钱搜索引擎优化seo公司
  • React与Rudex的合奏
  • Spring AI 1.0 提供简单的 AI 系统和服务
  • Spring Boot + @RefreshScope:动态刷新配置的终极指南
  • Vue vuex模块化编码
  • STM32-USART串口实现接收数据三种方法(1.根据\r\n标志符、2.空闲帧中断、3.根据定时器辅助接收)
  • 第10篇:实战验收篇