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

keepalived双机热备 (四十五)

一、概述

      Keepalived 是一个基于 VRRP 协议来实现的 LVS 服务高可用方案,可以解决静态路由出现的单点故障问题。
    原理
        在一个 LVS 服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但
是对外表现为一个虚拟 IP,主服务器会发送 VRRP 通告信息给备份服务器,当备份服务器收不到 VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟 IP,继续提供服务,从而保证了高可用性。
    解决单点故障问题

二、安装

  yum install -y keepalived


    配置文件
        /etc/keepalived/keepalived.conf
    配置项

global_defs {notification_email {      #故障发生时给谁发邮件通知acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.loc    ##通知邮件从哪个地址发出smtp_server 192.168.200.1                                ##通知邮件的smtp地址。smtp_connect_timeout 30                        ##连接smtp服务器的超时时间router_id LVS_DEVEL          #标识这台机器ID,默认情况下是主机名,可以配置成主机名vrrp_skip_check_adv_addr     #所有报文都检查比较消耗性能,此配置为如果收到的报文和上一个报文是同一个路由器则跳过检查报文中的源地址vrrp_strict                  #严格遵守VRRP协议,不允许状况:1,没有VIP地址,2.配置了单播邻居,3.在VRRP版本2中有IPv6地址vrrp_garp_interval 0         #ARP报文发送延迟vrrp_gna_interval 0          #消息发送延迟#vrrp_mcast_group4 224.0.0.18 #指定组播IP地址,默认值:224.0.0.18 范围:224.0.0.0到239.255.255.255#vrrp_iptables                #避免生成iptables input链 规则,sip any 拒绝 dip any
}

        router_id 1
            定义节点id
        state MASTER|BACKUP
            定义节点主从状态
        interface ens33
            配置监听的网卡
        virtual_router_id 51
            同一个热备组要保持一致
        priority 100
            节点优先级
        advert_int 1
            多少秒进行一次心跳检测
        authentication {
        auth_type PASS
        auth_pass 1111
    }
            keepalived节点的认证方式,
同一个keepalived双机热备组一定要保持一致
        virtual_ipaddress 
            配置VIP,即漂移地址
        vrrp

vrrp_script chk_nginx_server {script "/etc/keepalived/chk_nginx.sh "interval 1weight -2
}vrrp_instance VI_1 {      #虚拟路由器名称,在一个keepalived可以启多个虚拟路由器,每个虚拟路由器的名字都不一样state MASTER          #当前节点在此虚拟路由器上的初始状态,状态为MASTER或者BACKUP,一般都是配置backup,该值无法决定身份,最终还是通过比较priorityinterface eth0        #绑定为当前虚拟路由器使用的物理接口,如:ens32,eth0,bond0,br0virtual_router_id 51  #每个虚拟路由器惟一标识,范围:0-255,同一组虚拟路由器的vrid必须一致priority 100          #当前物理节点在此虚拟路由器的优先级,范围:1-254,每个keepalived主机节点此值不同advert_int 1          #vrrp通告的时间间隔,默认1snopreempt            #当master宕机恢复之后不抢占masterauthentication {      #认证机制 auth_type PASS    #AH(不推荐)或PASSauth_pass 1111    #预共享密钥,仅前8位有效,同一个虚拟路由器的多个keepalived节点必须一样}virtual_ipaddress {                      #虚拟IP10.0.0.100                           #指定VIP,不指定网卡,默认为eth0,注意:不指定/prefix,默认为/3210.0.0.101/24 dev eth1               #指定VIP的网卡10.0.0.102/24 dev eth2 label eth2:1  #指定VIP的网卡label}track_script {chk_nginx_server }}

三、功能模块

 core 主进程启动
 vrrp vrrp协议:热备份路由协议
check 健康状态检测

四、配置双机热备

master

vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.156.200192.168.156.201192.168.156.202}
}

backup

global_defs {router_id LVS_DEVEL
}vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 51priority 90advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.156.200}
}

五、验证

   ping验证
        ping 192.168.156.200 


    服务验证
        分别在两台主机中安装nginx

  测试


  
  停掉master的服务,再次访问 

六、双机热备的脑裂现象

   Keepalived配置里同一 VRRP实例
如果 virtual_router_id两端参数配置不一致也会导致裂脑问题发生。
    vrrp实例名字不一致、优先级一致
    防火墙打开,导致心跳无法正常通信
    网卡故障
        网卡进行多路复用 

VIP无法通信
    注释:vrrp_strict

总结

Keepalived是一种用于实现双机热备的工具。它可以通过VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)来实现服务器的高可用性。

在双机热备模式下,Keepalived可以将多个服务器组成一个虚拟的路由器,其中一个服务器作为主服务器处理请求,其他服务器作为备份服务器。如果主服务器发生故障,备份服务器会接管主服务器的工作,确保系统的持续可用性。

    

http://www.lryc.cn/news/138063.html

相关文章:

  • SpringBoot整合阿里云OSS,实现图片上传
  • Dynaminc Programming相关
  • 使用 Elasticsearch 轻松进行中文文本分类
  • MNN学习笔记(八):使用MNN推理Mediapipe模型
  • 主力吸筹指标及其分析和使用说明
  • Python高光谱遥感数据处理与高光谱遥感机器学习方法教程
  • 【洛谷】P1678 烦恼的高考志愿
  • 开机自启CPU设置定频
  • 嵌入式Linux开发实操(十二):PWM接口开发
  • 消息中间件介绍
  • [Unity] 基础的编程思想, 组件式开发
  • SVN 项目管理笔记
  • Android获取手机已安装应用列表JAVA实现
  • 【校招VIP】有一个比赛获奖项目和参与的开源小项目,秋招项目竞争力够不够?三个标准,自己都可以估算
  • 量化开发学习入门-概念篇
  • 【草稿】关于文本句子分割(中文+英文)以及向量处理
  • 【瑞吉外卖】所遇问题及解决方法
  • 【Hugo入门】基础用法
  • Java实现一个简单的图书管理系统(内有源码)
  • 网络安全等级保护2.0
  • 【sql】MongoDB 增删改查 高级用法
  • 怎么做才能有效更新和优化产品手册文档
  • #P0867. 小武老师的烤全羊
  • 视频汇聚/视频云存储/视频监控管理平台EasyCVR提升网络稳定小tips来啦!
  • C 语言学习
  • TCP网络连接异常情况的处理
  • 单片机之从C语言基础到专家编程 - 4 C语言基础 - 4.10语句
  • Windows 通过服务名称搜索软件启动路径启动软件
  • 如何更高效的写出更健全的代码,一篇文章教会你如何拥有一个良好的代码风格
  • Java如何调用接口API并返回数据(两种方法)